diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md deleted file mode 100644 index a498694d2..000000000 --- a/.github/ISSUE_TEMPLATE.md +++ /dev/null @@ -1,29 +0,0 @@ -#### Submission type - - - [ ] Bug report - - [ ] Feature Request - - -#### Info regarding which version of Calamares is used, which Distribution - -> … - -#### Provide information on how the disks are set up, in detail, with full logs of commands issued - -> … - -#### What do you expect to have happen when Calamares installs? - -> … - -#### Describe the issue you encountered - -> … - -#### Steps to reproduce the problem - -> … - -#### Include the installation.log (usually ~/Calamares/Calamares/Calamares.log, of the user Calamares runs as): - -> … diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 000000000..9a2204613 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,26 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +> Hi! Thank you for helping improve Calamares. If you are seeing a problem in installing a specific distribution, you should **probably** report the problem in the distribution's bug tracker, first. That helps filter out issues with packaging, mis-configuration, etc. that Calamares has no control over. If you are a distribution packager or maintainer, this page is for you. + +**Describe the bug** +A clear and concise description of what the bug is. Please include 32/64 bit machine details, EFI/BIOS details, and disk setup. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots and Logs** +If applicable, add screenshots to help explain your problem. Calamares has an installation log (usually `~/.cache/calamares/session.log`), please check it for confidential information and attach it if possible. + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 000000000..066b2d920 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/.gitignore b/.gitignore index d67fee190..2f36a5de6 100644 --- a/.gitignore +++ b/.gitignore @@ -21,6 +21,7 @@ __pycache__ *.pro.user *.pro.user.* *.moc +*.qmlc moc_*.cpp qrc_*.cpp ui_*.h diff --git a/CHANGES b/CHANGES new file mode 100644 index 000000000..6bcb46e72 --- /dev/null +++ b/CHANGES @@ -0,0 +1,52 @@ +This is the changelog for Calamares. For each release, the major changes and +contributors are listed. Note that Calamares does not have a historical +changelog -- this log starts with version 3.2.0. The release notes on the +website will have to do for older versions. + += 3.2.2 (unreleased) = + +== Core == + + * Contributions from the following people (alphabetically by first name): + - artoo@cromnix.org + - Caio Carvalho + * Example configurations are **no longer installed** by default. + The default setting for *INSTALL_CONFIG* has changed. Distributions + are strongly encouraged to write their own configuration files and + not rely on the example configuration files. Example configurations + may change unpredictably. + * It is now possible to express module dependencies through the + *requiredModules* key in `module.desc`. All of the required modules + for a given module must occur in the sequence **before** the module + requiring them. None of the core modules use this facility. + * The search paths for QML files, branding descriptors and module + descriptors have been revamped and now self-document in the log. + * A new `ci/RELEASE.sh` script has been added to streamline releases; + it is not guaranteed to work anywhere in particular though. + +== Modules == + + * When multiple modules are mutually exclusive, or don't make sense + to enable concurrectly, a new `USE_` framework has been added + to CMake to simplify the selection of modules. This is in addition + to the existing `SKIP_MODULES` mechanism. + * Various off-by-one-sector errors in the automatic partitioning + mode have been corrected. In addition, swap space is calculated + a little more conservatively. + * A new module has been added to the core which can configure openrc + services. To make services configuration consistent: + - The *services* module has been **renamed** *services-systemd*, + - The openrc module is named *services-openrc*, + - At CMake time, it is possible to select all of the services modules, + or one specific one, by setting the *USE_services* CMake variable. + By default, all of the modules are built and installed. + * The systemd-services module can now disable targets and mask both + targets and services (which will allow you to break the system with + a bad configuration). The configuration is a little more flexible + because a service (or target) name can be used on its own with + sensible defaults. + +**3.2.1** (2018-06-25) + + +**3.2.0** (2018-05-17) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5f8c96777..183bc93f3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -28,17 +28,99 @@ # Example usage: # # cmake . -DSKIP_MODULES="partition luksbootkeycfg" +# +# One special target is "show-version", which can be built +# to obtain the version number from here. 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" OFF ) +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 ) + +### USE_* +# +# By convention, when there are multiple modules that implement similar +# functionality, and it only makes sense to have **at most one** of them +# enabled at any time, those modules are named -. +# For example, services-systemd and services-openrc. +# +# Setting up SKIP_MODULES to ignore "the ones you don't want" can be +# annoying and error-prone (e.g. if a new module shows up). The USE_* +# modules provide a way to do automatic selection. To pick exactly +# one of the implementations from group , set USE_ to the +# name of the implementation. If USE_ is unset, or empty, then +# all the implementations are enabled (this just means they are +# **available** to `settings.conf`, not that they are used). +# +# Currently, no USE_ variables exist. +set( USE_services "" CACHE STRING "Select the services module to use" ) + +### 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 2 ) +set( CALAMARES_VERSION_RC 1 ) + +### 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 ca zh_TW hr cs_CZ da et fr id it_IT lt pl pt_PT es_MX tr_TR ) +set( _tx_good sq de pt_BR zh_CN ja ro es sk ) +set( _tx_ok hu ru he nl bg uk ast is ko ar sv el gl en_GB + th fi_FI hi eu nb sr sl sr@latin mr es_PR kn kk be ) +set( _tx_bad fr_CH gu lo fa ur uz eo ) + + +### 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.55.0 ) + + +### CMAKE SETUP +# +set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/CMakeModules" ) # CMake 3.9, 3.10 compatibility if( POLICY CMP0071 ) @@ -52,6 +134,15 @@ if(NOT CMAKE_VERSION VERSION_LESS "3.10.0") ) endif() + +### 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" ) @@ -121,28 +212,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)." OFF ) -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 ) @@ -152,7 +248,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." @@ -162,7 +258,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." @@ -185,71 +281,46 @@ if( NOT PYTHONLIBS_FOUND OR NOT PYTHONQT_FOUND ) set( WITH_PYTHONQT OFF ) endif() -### -### 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 ar ast bg ca cs_CZ da de el en en_GB es_MX es eu fr he hi hr hu id is it_IT ja lt mr nl pl pt_BR pt_PT ro ru sk sq sv th tr_TR zh_CN zh_TW ) - -### Bump version here -set( CALAMARES_VERSION_MAJOR 3 ) -set( CALAMARES_VERSION_MINOR 2 ) -set( CALAMARES_VERSION_PATCH 0 ) -set( CALAMARES_VERSION_RC 3 ) - -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() +### Transifex Translation status +# +# 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. +# +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 ) + # Gone in new list + foreach( l ${prev_tx} ) + list( FIND curr_tx ${l} p_l ) + if( p_l EQUAL -1 ) + message(WARNING "Language ${l} was present in previous translations and is now absent.") + endif() + endforeach() -# 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() + # New in list + foreach( l ${curr_tx} ) + list( FIND prev_tx ${l} p_l ) + if( p_l EQUAL -1 ) + message(WARNING "Language ${l} is new.") + endif() + set( p_l "lang/calamares_${l}.ts" ) + if( NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/${p_l} ) + message(WARNING "Language ${l} has no .ts file yet.") + endif() + endforeach() - include( CMakeVersionSource ) - if( CMAKE_VERSION_SOURCE ) - set( CALAMARES_VERSION ${CALAMARES_VERSION}-${CMAKE_VERSION_SOURCE} ) - endif() + unset( p_l ) + unset( l ) endif() +unset( prev_tx ) +unset( curr_tx ) -# enforce using constBegin, constEnd for const-iterators -add_definitions( "-DQT_STRICT_ITERATORS" ) +set( CALAMARES_TRANSLATION_LANGUAGES en ${_tx_complete} ${_tx_good} ${_tx_ok} ) +list( SORT CALAMARES_TRANSLATION_LANGUAGES ) -# 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}" ) +add_subdirectory( lang ) # i18n tools -# 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 # @@ -302,7 +373,67 @@ 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() + +# Special target for not-RC (e.g. might-be-release) builds. +# This is used by the release script to get the version. +if ( CALAMARES_VERSION_RC EQUAL 0 ) + add_custom_target(show-version + ${CMAKE_COMMAND} -E echo CALAMARES_VERSION=${CALAMARES_VERSION_SHORT} + USES_TERMINAL + ) +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") @@ -310,14 +441,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}" ) @@ -371,12 +494,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 @@ -402,3 +527,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} ) diff --git a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake index bc2f6f9c9..f4eb349f2 100644 --- a/CMakeModules/CalamaresAddBrandingSubdirectory.cmake +++ b/CMakeModules/CalamaresAddBrandingSubdirectory.cmake @@ -1,43 +1,151 @@ +# === This file is part of Calamares - === +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# +# Support macros for creating Calamares branding components. +# +# Calamares branding components have two parts: +# - a branding.desc file that tells Calamares how to describe the product +# (e.g. strings like "Generic GNU/Linux") and the name of a QML file +# (the "slideshow") that is displayed during installation. +# - the QML files themselves, plus supporting images etc. +# +# Branding components can be created inside the Calamares source tree +# (there is one example the `default/` branding, which is also connected +# to the default configuration shipped with Calamares), but they can be +# built outside of, and largely independently of, Calamares by using +# these CMake macros. +# +# See the calamares-examples repository for more examples. +# +include( CMakeParseArguments) + include( CMakeColors ) -function( calamares_add_branding_subdirectory ) - set( SUBDIRECTORY ${ARGV0} ) +# Usage calamares_add_branding( [DIRECTORY ] [SUBDIRECTORIES ...]) +# +# Adds a branding component to the build: +# - the component's top-level files are copied into the build-dir; +# CMakeLists.txt is excluded from the glob. +# - the component's top-level files are installed into the component branding dir +# +# The branding component lives in if given, otherwise the +# current source directory. The branding component is installed +# with the given , which is usually the name of the +# directory containing the component, and which must match the +# *componentName* in `branding.desc`. +# +# If SUBDIRECTORIES are given, then those are copied (each one level deep) +# to the installation location as well, preserving the subdirectory name. +function( calamares_add_branding NAME ) + cmake_parse_arguments( _CABT "" "DIRECTORY" "SUBDIRECTORIES" ${ARGN} ) + if (NOT _CABT_DIRECTORY) + set(_CABT_DIRECTORY ".") + endif() - if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" ) - add_subdirectory( $SUBDIRECTORY ) - message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" ) + set( SUBDIRECTORY ${_CABT_DIRECTORY} ) + set( _brand_dir ${_CABT_DIRECTORY} ) - elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" ) - set( BRANDING_DIR share/calamares/branding ) - set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${SUBDIRECTORY} ) + set( BRANDING_DIR share/calamares/branding ) + set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} ) - if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" ) - message( "-- ${BoldYellow}Warning:${ColorReset} branding component ${BoldRed}${SUBDIRECTORY}${ColorReset} has a translations subdirectory but no CMakeLists.txt." ) - message( "" ) - return() - endif() - - # We glob all the files inside the subdirectory, and we make sure they are - # synced with the bindir structure and installed. - file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY} "${SUBDIRECTORY}/*" ) + foreach( _subdir "" ${_CABT_SUBDIRECTORIES} ) + file( GLOB BRANDING_COMPONENT_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/${_brand_dir} "${_brand_dir}/${_subdir}/*" ) foreach( BRANDING_COMPONENT_FILE ${BRANDING_COMPONENT_FILES} ) - if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ) - configure_file( ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} ${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} COPYONLY ) + set( _subpath ${_brand_dir}/${BRANDING_COMPONENT_FILE} ) + if( NOT IS_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/${_subpath} ) + configure_file( ${_subpath} ${_subpath} COPYONLY ) - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${BRANDING_COMPONENT_FILE} - DESTINATION ${BRANDING_COMPONENT_DESTINATION} ) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${_subpath} + DESTINATION ${BRANDING_COMPONENT_DESTINATION}/${_subdir}/ ) endif() endforeach() + endforeach() + + message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${NAME}${ColorReset}" ) + if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" ) + message( " ${Green}TYPE:${ColorReset} branding component" ) + message( " ${Green}BRANDING_COMPONENT_DESTINATION:${ColorReset} ${BRANDING_COMPONENT_DESTINATION}" ) + endif() +endfunction() + +# Usage calamares_add_branding_translations( [DIRECTORY ]) +# +# Adds the translations for a branding component to the build: +# - the component's lang/ directory is scanned for .ts files +# - the component's translations are installed into the component branding dir +# +# Translation files must be called calamares-_.ts . Optionally +# the lang/ dir is found in the given instead of the current source +# directory. +function( calamares_add_branding_translations NAME ) + cmake_parse_arguments( _CABT "" "DIRECTORY" "" ${ARGN} ) + if (NOT _CABT_DIRECTORY) + set(_CABT_DIRECTORY ".") + endif() + + set( SUBDIRECTORY ${_CABT_DIRECTORY} ) + set( _brand_dir ${_CABT_DIRECTORY} ) + + set( BRANDING_DIR share/calamares/branding ) + set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} ) + + file( GLOB BRANDING_TRANSLATION_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${SUBDIRECTORY}/lang/calamares-${NAME}_*.ts" ) + if ( BRANDING_TRANSLATION_FILES ) + qt5_add_translation( QM_FILES ${BRANDING_TRANSLATION_FILES} ) + add_custom_target( branding-translation-${NAME} ALL DEPENDS ${QM_FILES} ) + install( FILES ${QM_FILES} DESTINATION ${BRANDING_COMPONENT_DESTINATION}/lang/ ) + list( LENGTH BRANDING_TRANSLATION_FILES _branding_count ) + message( " ${Green}BRANDING_TRANSLATIONS:${ColorReset} ${_branding_count} language(s)" ) + endif() +endfunction() - message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" ) - if( NOT CMAKE_BUILD_TYPE STREQUAL "Release" ) - message( " ${Green}TYPE:${ColorReset} branding component" ) -# message( " ${Green}FILES:${ColorReset} ${BRANDING_COMPONENT_FILES}" ) - message( " ${Green}BRANDING_COMPONENT_DESTINATION:${ColorReset} ${BRANDING_COMPONENT_DESTINATION}" ) - message( "" ) +# Usage calamares_add_branding_subdirectory( [NAME ] [SUBDIRECTORIES ...]) +# +# Adds a branding component from a subdirectory: +# - if there is a CMakeLists.txt, use that (that CMakeLists.txt should +# call suitable calamares_add_branding() and other macros to install +# the branding component). +# - otherwise assume a "standard" setup with top-level files and a lang/ +# subdirectory for translations. +# +# If NAME is given, this is used instead of as the name of +# the branding component. This is needed if is more than +# one level deep, or to rename a component as it gets installed. +# +# If SUBDIRECTORIES are given, they are relative to , and are +# copied (one level deep) to the install location as well. +function( calamares_add_branding_subdirectory SUBDIRECTORY ) + cmake_parse_arguments( _CABS "" "NAME" "SUBDIRECTORIES" ${ARGN} ) + if (NOT _CABS_NAME) + set(_CABS_NAME "${SUBDIRECTORY}") + endif() + + if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" ) + add_subdirectory( ${SUBDIRECTORY} ) + elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" ) + calamares_add_branding( ${_CABS_NAME} DIRECTORY ${SUBDIRECTORY} SUBDIRECTORIES ${_CABS_SUBDIRECTORIES} ) + if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" ) + calamares_add_branding_translations( ${_CABS_NAME} DIRECTORY ${SUBDIRECTORY} ) endif() else() message( "-- ${BoldYellow}Warning:${ColorReset} tried to add branding component subdirectory ${BoldRed}${SUBDIRECTORY}${ColorReset} which has no branding.desc." ) - message( "" ) endif() + message( "" ) endfunction() diff --git a/CMakeModules/CalamaresAddLibrary.cmake b/CMakeModules/CalamaresAddLibrary.cmake index f183277c8..f6e96d12a 100644 --- a/CMakeModules/CalamaresAddLibrary.cmake +++ b/CMakeModules/CalamaresAddLibrary.cmake @@ -1,3 +1,25 @@ +# === This file is part of Calamares - === +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# +# Support functions for building plugins. + include( CMakeParseArguments ) function(calamares_add_library) @@ -64,7 +86,7 @@ function(calamares_add_library) endif() # add link targets - target_link_libraries(${target} + target_link_libraries(${target} LINK_PUBLIC ${CALAMARES_LIBRARIES} Qt5::Core Qt5::Gui diff --git a/CMakeModules/CalamaresAddModuleSubdirectory.cmake b/CMakeModules/CalamaresAddModuleSubdirectory.cmake index 32d9ea952..0b417bdf3 100644 --- a/CMakeModules/CalamaresAddModuleSubdirectory.cmake +++ b/CMakeModules/CalamaresAddModuleSubdirectory.cmake @@ -1,3 +1,26 @@ +# === This file is part of Calamares - === +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# +# Function and support code for adding a Calamares module (either a Qt / C++ plugin, +# or a Python module, or whatever) to the build. +# include( CalamaresAddTranslations ) set( MODULE_DATA_DESTINATION share/calamares/modules ) @@ -62,9 +85,11 @@ function( calamares_add_module_subdirectory ) configure_file( ${SUBDIRECTORY}/${MODULE_FILE} ${SUBDIRECTORY}/${MODULE_FILE} COPYONLY ) get_filename_component( FLEXT ${MODULE_FILE} EXT ) - if( "${FLEXT}" STREQUAL ".conf" AND INSTALL_CONFIG) - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${MODULE_FILE} - DESTINATION ${MODULE_DATA_DESTINATION} ) + if( "${FLEXT}" STREQUAL ".conf" ) + if( INSTALL_CONFIG ) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${MODULE_FILE} + DESTINATION ${MODULE_DATA_DESTINATION} ) + endif() list( APPEND MODULE_CONFIG_FILES ${MODULE_FILE} ) else() install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/${MODULE_FILE} @@ -79,10 +104,11 @@ function( calamares_add_module_subdirectory ) message( " ${Green}MODULE_DESTINATION:${ColorReset} ${MODULE_DESTINATION}" ) if( MODULE_CONFIG_FILES ) if ( INSTALL_CONFIG ) - message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${MODULE_CONFIG_FILES} => ${MODULE_DATA_DESTINATION}" ) + set( _destination "${MODULE_DATA_DESTINATION}" ) else() - message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${MODULE_CONFIG_FILES} => [Skipping installation]" ) + set( _destination "[Build directory only]" ) endif() + message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${MODULE_CONFIG_FILES} => ${_destination}" ) endif() message( "" ) endif() diff --git a/CMakeModules/CalamaresAddPlugin.cmake b/CMakeModules/CalamaresAddPlugin.cmake index 658fd364a..1bf20e4ca 100644 --- a/CMakeModules/CalamaresAddPlugin.cmake +++ b/CMakeModules/CalamaresAddPlugin.cmake @@ -1,3 +1,23 @@ +# === This file is part of Calamares - === +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# # Convenience function for creating a C++ (qtplugin) module for Calamares. # This function provides cmake-time feedback about the plugin, adds # targets for compilation and boilerplate information, and creates @@ -18,6 +38,7 @@ # RESOURCES resource-file # [NO_INSTALL] # [SHARED_LIB] +# [EMERGENCY] # ) include( CMakeParseArguments ) @@ -27,7 +48,7 @@ include( CMakeColors ) function( calamares_add_plugin ) # parse arguments ( name needs to be saved before passing ARGN into the macro ) set( NAME ${ARGV0} ) - set( options NO_INSTALL SHARED_LIB ) + set( options NO_INSTALL SHARED_LIB EMERGENCY ) set( oneValueArgs NAME TYPE EXPORT_MACRO RESOURCES ) set( multiValueArgs SOURCES UI LINK_LIBRARIES LINK_PRIVATE_LIBRARIES COMPILE_DEFINITIONS ) cmake_parse_arguments( PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) @@ -45,17 +66,18 @@ function( calamares_add_plugin ) message( " ${Green}TYPE:${ColorReset} ${PLUGIN_TYPE}" ) message( " ${Green}LINK_LIBRARIES:${ColorReset} ${PLUGIN_LINK_LIBRARIES}" ) message( " ${Green}LINK_PRIVATE_LIBRARIES:${ColorReset} ${PLUGIN_LINK_PRIVATE_LIBRARIES}" ) -# message( " ${Green}SOURCES:${ColorReset} ${PLUGIN_SOURCES}" ) -# message( " ${Green}UI:${ColorReset} ${PLUGIN_UI}" ) -# message( " ${Green}EXPORT_MACRO:${ColorReset} ${PLUGIN_EXPORT_MACRO}" ) -# message( " ${Green}NO_INSTALL:${ColorReset} ${PLUGIN_NO_INSTALL}" ) message( " ${Green}PLUGIN_DESTINATION:${ColorReset} ${PLUGIN_DESTINATION}" ) if( PLUGIN_CONFIG_FILES ) - if ( INSTALL_CONFIG ) - message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => ${PLUGIN_DATA_DESTINATION}" ) + set( _destination "(unknown)" ) + if ( INSTALL_CONFIG AND NOT PLUGIN_NO_INSTALL ) + set( _destination "${PLUGIN_DATA_DESTINATION}" ) + elseif( NOT PLUGIN_NO_INSTALL ) + # Not INSTALL_CONFIG + set( _destination "[Build directory only]" ) else() - message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => [Skipping installation]" ) + set( _destination "[Skipping installation]" ) endif() + message( " ${Green}CONFIGURATION_FILES:${ColorReset} ${PLUGIN_CONFIG_FILES} => ${_destination}" ) endif() if( PLUGIN_RESOURCES ) message( " ${Green}RESOURCES:${ColorReset} ${PLUGIN_RESOURCES}" ) @@ -72,7 +94,7 @@ function( calamares_add_plugin ) set( target_type "SHARED" ) endif() - list( APPEND calamares_add_library_args + set( calamares_add_library_args "${target}" "EXPORT_MACRO" "${PLUGIN_EXPORT_MACRO}" "TARGET_TYPE" "${target_type}" @@ -95,9 +117,14 @@ function( calamares_add_plugin ) list( APPEND calamares_add_library_args "COMPILE_DEFINITIONS" ${PLUGIN_COMPILE_DEFINITIONS} ) endif() - list( APPEND calamares_add_library_args "NO_VERSION" ) + if ( PLUGIN_NO_INSTALL ) + list( APPEND calamares_add_library_args "NO_INSTALL" ) + endif() - list( APPEND calamares_add_library_args "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" ) + list( APPEND calamares_add_library_args + "NO_VERSION" + "INSTALL_BINDIR" "${PLUGIN_DESTINATION}" + ) if( PLUGIN_RESOURCES ) list( APPEND calamares_add_library_args "RESOURCES" "${PLUGIN_RESOURCES}" ) @@ -112,16 +139,22 @@ function( calamares_add_plugin ) set( _type ${PLUGIN_TYPE} ) file( WRITE ${_file} "# AUTO-GENERATED metadata file\n# Syntax is YAML 1.2\n---\n" ) file( APPEND ${_file} "type: \"${_type}\"\nname: \"${PLUGIN_NAME}\"\ninterface: \"qtplugin\"\nload: \"lib${target}.so\"\n" ) + if ( PLUGIN_EMERGENCY ) + file( APPEND ${_file} "emergency: true\n" ) + endif() endif() - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE} - DESTINATION ${PLUGIN_DESTINATION} ) + if ( NOT PLUGIN_NO_INSTALL ) + install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_DESC_FILE} + DESTINATION ${PLUGIN_DESTINATION} ) - if ( INSTALL_CONFIG ) foreach( PLUGIN_CONFIG_FILE ${PLUGIN_CONFIG_FILES} ) configure_file( ${PLUGIN_CONFIG_FILE} ${PLUGIN_CONFIG_FILE} COPYONLY ) - install( FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE} - DESTINATION ${PLUGIN_DATA_DESTINATION} ) + if ( INSTALL_CONFIG ) + install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${PLUGIN_CONFIG_FILE} + DESTINATION ${PLUGIN_DATA_DESTINATION} ) + endif() endforeach() endif() endfunction() diff --git a/CMakeModules/CalamaresAddTranslations.cmake b/CMakeModules/CalamaresAddTranslations.cmake index b0a623908..4892cc0f9 100644 --- a/CMakeModules/CalamaresAddTranslations.cmake +++ b/CMakeModules/CalamaresAddTranslations.cmake @@ -1,5 +1,61 @@ +# === This file is part of Calamares - === +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### +# +# This file has not yet been documented for use outside of Calamares itself. + include( CMakeParseArguments ) +if( NOT _rcc_version_support_checked ) + set( _rcc_version_support_checked TRUE ) + + # Extract the executable name + get_property( _rcc_executable + TARGET ${Qt5Core_RCC_EXECUTABLE} + PROPERTY IMPORTED_LOCATION + ) + if( NOT _rcc_executable ) + # Weird, probably now uses Qt5::rcc which is wrong too + set( _rcc_executable ${Qt5Core_RCC_EXECUTABLE} ) + endif() + + # Try an empty RCC file with explicit format-version + execute_process( + COMMAND echo "" + COMMAND ${Qt5Core_RCC_EXECUTABLE} --format-version 1 --list - + RESULT_VARIABLE _rcc_version_rv + ERROR_VARIABLE _rcc_version_dump + ) + if ( _rcc_version_rv EQUAL 0 ) + # Supported: force to the reproducible version + set( _rcc_version_support --format-version 1 ) + else() + # Older Qt versions (5.7, 5.8) don't support setting the + # rcc format-version, so won't be reproducible if they + # default to version 2. + set( _rcc_version_support "" ) + endif() + unset( _rcc_version_rv ) + unset( _rcc_version_dump ) +endif() + + # Internal macro for adding the C++ / Qt translations to the # build and install tree. Should be called only once, from # src/calamares/CMakeLists.txt. @@ -39,7 +95,7 @@ macro(add_calamares_translations language) add_custom_command( OUTPUT ${trans_outfile} COMMAND "${Qt5Core_RCC_EXECUTABLE}" - ARGS ${rcc_options} -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} ) diff --git a/CMakeModules/GNUInstallDirs.cmake b/CMakeModules/GNUInstallDirs.cmake deleted file mode 100644 index a114dcb2e..000000000 --- a/CMakeModules/GNUInstallDirs.cmake +++ /dev/null @@ -1,182 +0,0 @@ -# - Define GNU standard installation directories -# Provides install directory variables as defined for GNU software: -# http://www.gnu.org/prep/standards/html_node/Directory-Variables.html -# Inclusion of this module defines the following variables: -# CMAKE_INSTALL_ - destination for files of a given type -# CMAKE_INSTALL_FULL_ - corresponding absolute path -# where is one of: -# BINDIR - user executables (bin) -# SBINDIR - system admin executables (sbin) -# LIBEXECDIR - program executables (libexec) -# SYSCONFDIR - read-only single-machine data (etc) -# SHAREDSTATEDIR - modifiable architecture-independent data (com) -# LOCALSTATEDIR - modifiable single-machine data (var) -# LIBDIR - object code libraries (lib or lib64) -# INCLUDEDIR - C header files (include) -# OLDINCLUDEDIR - C header files for non-gcc (/usr/include) -# DATAROOTDIR - read-only architecture-independent data root (share) -# DATADIR - read-only architecture-independent data (DATAROOTDIR) -# INFODIR - info documentation (DATAROOTDIR/info) -# LOCALEDIR - locale-dependent data (DATAROOTDIR/locale) -# MANDIR - man documentation (DATAROOTDIR/man) -# DOCDIR - documentation root (DATAROOTDIR/doc/PROJECT_NAME) -# Each CMAKE_INSTALL_ value may be passed to the DESTINATION options of -# install() commands for the corresponding file type. If the includer does -# not define a value the above-shown default will be used and the value will -# appear in the cache for editing by the user. -# Each CMAKE_INSTALL_FULL_ value contains an absolute path constructed -# from the corresponding destination by prepending (if necessary) the value -# of CMAKE_INSTALL_PREFIX. - -#============================================================================= -# Copyright 2011 Nikita Krupen'ko -# Copyright 2011 Kitware, Inc. -# -# Distributed under the OSI-approved BSD License (the "License"); -# see accompanying file Copyright.txt for details. -# -# This software is distributed WITHOUT ANY WARRANTY; without even the -# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. -# See the License for more information. -#============================================================================= -# (To distribute this file outside of CMake, substitute the full -# License text for the above reference.) - -# Installation directories -# -if(NOT DEFINED CMAKE_INSTALL_BINDIR) - set(CMAKE_INSTALL_BINDIR "bin" CACHE PATH "user executables (bin)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_SBINDIR) - set(CMAKE_INSTALL_SBINDIR "sbin" CACHE PATH "system admin executables (sbin)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_LIBEXECDIR) - set(CMAKE_INSTALL_LIBEXECDIR "libexec" CACHE PATH "program executables (libexec)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_SYSCONFDIR) - set(CMAKE_INSTALL_SYSCONFDIR "etc" CACHE PATH "read-only single-machine data (etc)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_SHAREDSTATEDIR) - set(CMAKE_INSTALL_SHAREDSTATEDIR "com" CACHE PATH "modifiable architecture-independent data (com)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_LOCALSTATEDIR) - set(CMAKE_INSTALL_LOCALSTATEDIR "var" CACHE PATH "modifiable single-machine data (var)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_LIBDIR) - set(_LIBDIR_DEFAULT "lib") - # Override this default 'lib' with 'lib64' iff: - # - we are on Linux system but NOT cross-compiling - # - we are NOT on debian - # - we are on a 64 bits system - # reason is: amd64 ABI: http://www.x86-64.org/documentation/abi.pdf - # Note that the future of multi-arch handling may be even - # more complicated than that: http://wiki.debian.org/Multiarch - if(CMAKE_SYSTEM_NAME MATCHES "Linux" - AND NOT CMAKE_CROSSCOMPILING - AND NOT EXISTS "/etc/debian_version") - if(NOT DEFINED CMAKE_SIZEOF_VOID_P) - message(AUTHOR_WARNING - "Unable to determine default CMAKE_INSTALL_LIBDIR directory because no target architecture is known. " - "Please enable at least one language before including GNUInstallDirs.") - else() - if("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") - set(_LIBDIR_DEFAULT "lib64") - endif() - endif() - endif() - set(CMAKE_INSTALL_LIBDIR "${_LIBDIR_DEFAULT}" CACHE PATH "object code libraries (${_LIBDIR_DEFAULT})") -endif() - -if(NOT DEFINED CMAKE_INSTALL_INCLUDEDIR) - set(CMAKE_INSTALL_INCLUDEDIR "include" CACHE PATH "C header files (include)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_OLDINCLUDEDIR) - set(CMAKE_INSTALL_OLDINCLUDEDIR "/usr/include" CACHE PATH "C header files for non-gcc (/usr/include)") -endif() - -if(NOT DEFINED CMAKE_INSTALL_DATAROOTDIR) - set(CMAKE_INSTALL_DATAROOTDIR "share" CACHE PATH "read-only architecture-independent data root (share)") -endif() - -#----------------------------------------------------------------------------- -# Values whose defaults are relative to DATAROOTDIR. Store empty values in -# the cache and store the defaults in local variables if the cache values are -# not set explicitly. This auto-updates the defaults as DATAROOTDIR changes. - -if(NOT CMAKE_INSTALL_DATADIR) - set(CMAKE_INSTALL_DATADIR "" CACHE PATH "read-only architecture-independent data (DATAROOTDIR)") - set(CMAKE_INSTALL_DATADIR "${CMAKE_INSTALL_DATAROOTDIR}") -endif() - -if(NOT CMAKE_INSTALL_INFODIR) - set(CMAKE_INSTALL_INFODIR "" CACHE PATH "info documentation (DATAROOTDIR/info)") - set(CMAKE_INSTALL_INFODIR "${CMAKE_INSTALL_DATAROOTDIR}/info") -endif() - -if(NOT CMAKE_INSTALL_LOCALEDIR) - set(CMAKE_INSTALL_LOCALEDIR "" CACHE PATH "locale-dependent data (DATAROOTDIR/locale)") - set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_DATAROOTDIR}/locale") -endif() - -if(NOT CMAKE_INSTALL_MANDIR) - set(CMAKE_INSTALL_MANDIR "" CACHE PATH "man documentation (DATAROOTDIR/man)") - set(CMAKE_INSTALL_MANDIR "${CMAKE_INSTALL_DATAROOTDIR}/man") -endif() - -if(NOT CMAKE_INSTALL_DOCDIR) - set(CMAKE_INSTALL_DOCDIR "" CACHE PATH "documentation root (DATAROOTDIR/doc/PROJECT_NAME)") - set(CMAKE_INSTALL_DOCDIR "${CMAKE_INSTALL_DATAROOTDIR}/doc/${PROJECT_NAME}") -endif() - -#----------------------------------------------------------------------------- - -mark_as_advanced( - CMAKE_INSTALL_BINDIR - CMAKE_INSTALL_SBINDIR - CMAKE_INSTALL_LIBEXECDIR - CMAKE_INSTALL_SYSCONFDIR - CMAKE_INSTALL_SHAREDSTATEDIR - CMAKE_INSTALL_LOCALSTATEDIR - CMAKE_INSTALL_LIBDIR - CMAKE_INSTALL_INCLUDEDIR - CMAKE_INSTALL_OLDINCLUDEDIR - CMAKE_INSTALL_DATAROOTDIR - CMAKE_INSTALL_DATADIR - CMAKE_INSTALL_INFODIR - CMAKE_INSTALL_LOCALEDIR - CMAKE_INSTALL_MANDIR - CMAKE_INSTALL_DOCDIR - ) - -# Result directories -# -foreach(dir - BINDIR - SBINDIR - LIBEXECDIR - SYSCONFDIR - SHAREDSTATEDIR - LOCALSTATEDIR - LIBDIR - INCLUDEDIR - OLDINCLUDEDIR - DATAROOTDIR - DATADIR - INFODIR - LOCALEDIR - MANDIR - DOCDIR - ) - if(NOT IS_ABSOLUTE ${CMAKE_INSTALL_${dir}}) - set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_${dir}}") - else() - set(CMAKE_INSTALL_FULL_${dir} "${CMAKE_INSTALL_${dir}}") - endif() -endforeach() diff --git a/CalamaresConfig.cmake.in b/CalamaresConfig.cmake.in index 5d1b0635f..6d32410c6 100644 --- a/CalamaresConfig.cmake.in +++ b/CalamaresConfig.cmake.in @@ -1,8 +1,16 @@ -# - Config file for the Calamares package +# Config file for the Calamares package +# # It defines the following variables # CALAMARES_INCLUDE_DIRS - include directories for Calamares # CALAMARES_LIBRARIES - libraries to link against -# CALAMARES_EXECUTABLE - the bar executable +# CALAMARES_USE_FILE - name of a convenience include +# CALAMARES_APPLICATION_NAME - human-readable application name +# +# Typical use is: +# +# find_package(Calamares REQUIRED) +# include("${CALAMARES_USE_FILE}") +# # Compute paths get_filename_component(CALAMARES_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) @@ -18,4 +26,7 @@ include("${CALAMARES_CMAKE_DIR}/CalamaresLibraryDepends.cmake") # These are IMPORTED targets created by CalamaresLibraryDepends.cmake set(CALAMARES_LIBRARIES calamares) + +# Convenience variables set(CALAMARES_USE_FILE "${CALAMARES_CMAKE_DIR}/CalamaresUse.cmake") +set(CALAMARES_APPLICATION_NAME "Calamares") diff --git a/CalamaresUse.cmake.in b/CalamaresUse.cmake.in index 474704ec1..00f3c968d 100644 --- a/CalamaresUse.cmake.in +++ b/CalamaresUse.cmake.in @@ -20,7 +20,7 @@ if( NOT CALAMARES_CMAKE_DIR ) endif() set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CALAMARES_CMAKE_DIR} ) -find_package( Qt5 @QT_VERSION@ CONFIG REQUIRED Core Widgets ) +find_package( Qt5 @QT_VERSION@ CONFIG REQUIRED Core Widgets LinguistTools ) include( CalamaresAddLibrary ) include( CalamaresAddModuleSubdirectory ) diff --git a/Dockerfile b/Dockerfile index d6ca0926d..2c8be23a0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,2 +1,2 @@ -FROM kdeneon/all -RUN sudo apt-get update && sudo apt-get -y install build-essential cmake extra-cmake-modules gettext libatasmart-dev libboost-python-dev libkf5config-dev libkf5coreaddons-dev libkf5i18n-dev libkf5parts-dev libkf5service-dev libkf5widgetsaddons-dev libkpmcore-dev libparted-dev libpolkit-qt5-1-dev libqt5svg5-dev libqt5webkit5-dev libyaml-cpp-dev os-prober pkg-config python3-dev qtbase5-dev qtdeclarative5-dev qttools5-dev qttools5-dev-tools +FROM kdeneon/all:user +RUN sudo apt-get update && sudo apt-get -y install build-essential cmake extra-cmake-modules gettext kio-dev libatasmart-dev libboost-python-dev libkf5config-dev libkf5coreaddons-dev libkf5i18n-dev libkf5iconthemes-dev libkf5parts-dev libkf5service-dev libkf5solid-dev libkpmcore-dev libparted-dev libpolkit-qt5-1-dev libqt5svg5-dev libqt5webkit5-dev libyaml-cpp-dev os-prober pkg-config python3-dev qtbase5-dev qtdeclarative5-dev qttools5-dev qttools5-dev-tools diff --git a/README.md b/README.md index a41ae6f7a..f35b012c8 100644 --- a/README.md +++ b/README.md @@ -15,11 +15,12 @@ Main: * Compiler with C++11 support: GCC >= 4.9.0 or Clang >= 3.5.1 * CMake >= 3.2 -* Qt >= 5.6 +* Qt >= 5.7 * yaml-cpp >= 0.5.1 -* Python >= 3.3 -* Boost.Python >= 1.55.0 -* extra-cmake-modules (recommended; required for some modules) +* Python >= 3.3 (required for some modules) +* Boost.Python >= 1.55.0 (recommended, or PythonQt; one is required for some modules) +* PythonQt (recommended, or Boost.Python; one is required for some modules) +* extra-cmake-modules >= 5.18 (recommended; required for some modules) Modules: * welcome: @@ -38,6 +39,6 @@ Modules: ### Building See [wiki](https://github.com/calamares/calamares/wiki) for up to date -[building](https://github.com/calamares/calamares/wiki/Developer's-Guide) -and [deployment](https://github.com/calamares/calamares/wiki/Deployer's-Guide) +[building](https://github.com/calamares/calamares/wiki/Develop-Guide) +and [deployment](https://github.com/calamares/calamares/wiki/Deploy-Guide) instructions. diff --git a/calamares.desktop b/calamares.desktop index fb7647a47..9c865b60b 100644 --- a/calamares.desktop +++ b/calamares.desktop @@ -1,7 +1,7 @@ [Desktop Entry] Type=Application Version=1.0 -Name=Calamares +Name=Install System GenericName=System Installer Keywords=calamares;system;installer TryExec=calamares @@ -11,139 +11,166 @@ Icon=calamares Terminal=false StartupNotify=true Categories=Qt;System; +X-AppStream-Ignore=true - - - - - - - - - - - -Name[ca]=Calamares +Name[ar]=نظام التثبيت +Icon[be]=calamares +GenericName[be]=Усталёўшчык сістэмы +Comment[be]=Calamares — усталёўшчык сістэмы +Name[be]=Усталяваць сістэму +Icon[bg]=calamares +GenericName[bg]=Системен Инсталатор +Comment[bg]=Calamares — Системен Инсталатор +Name[bg]=Инсталирай система Icon[ca]=calamares GenericName[ca]=Instal·lador de sistema Comment[ca]=Calamares — Instal·lador de sistema -Name[da]=Calamares +Name[ca]=Instal·la el sistema Icon[da]=calamares GenericName[da]=Systeminstallationsprogram Comment[da]=Calamares — Systeminstallationsprogram -Name[de]=Calamares +Name[da]=Installér system Icon[de]=calamares GenericName[de]=Installation des Betriebssystems Comment[de]=Calamares - Installation des Betriebssystems -Name[el]=Calamares +Name[de]=System installieren Icon[el]=calamares GenericName[el]=Εγκατάσταση συστήματος Comment[el]=Calamares — Εγκατάσταση συστήματος -Name[en_GB]=Calamares +Name[el]=Εγκατάσταση συστήματος Icon[en_GB]=calamares GenericName[en_GB]=System Installer Comment[en_GB]=Calamares — System Installer -Name[es]=Calamares +Name[en_GB]=Install System Icon[es]=calamares GenericName[es]=Instalador del Sistema Comment[es]=Calamares — Instalador del Sistema -Name[fr]=Calamares +Name[es]=Instalar Sistema +Icon[et]=calamares +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 GenericName[fr]=Installateur système Comment[fr]=Calamares - Installateur système -Name[he]=קלמארס -Icon[he]=קלמארס +Name[fr]=Installer le système +Name[gl]=Instalación do Sistema +Icon[he]=calamares GenericName[he]=אשף התקנה -Comment[he]=קלמארס - אשף התקנה -Name[hr]=Calamares +Comment[he]=Calamares - אשף התקנה +Name[he]=התקנת מערכת +Icon[hi]=calamares +GenericName[hi]=सिस्टम इंस्टॉलर +Comment[hi]=Calamares — सिस्टम इंस्टॉलर +Name[hi]=सिस्टम इंस्टॉल करें Icon[hr]=calamares GenericName[hr]=Instalacija sustava Comment[hr]=Calamares — Instalacija sustava -Name[hu]=Calamares +Name[hr]=Instaliraj sustav Icon[hu]=calamares GenericName[hu]=Rendszer Telepítő Comment[hu]=Calamares — Rendszer Telepítő -Name[id]=Calamares +Name[hu]=Rendszer telepítése Icon[id]=calamares GenericName[id]=Pemasang Comment[id]=Calamares — Pemasang Sistem -Name[is]=Calamares +Name[id]=Instal Sistem Icon[is]=calamares GenericName[is]=Kerfis uppsetning Comment[is]=Calamares — Kerfis uppsetning -Name[cs_CZ]=Calamares +Name[is]=Setja upp kerfið Icon[cs_CZ]=calamares GenericName[cs_CZ]=Instalátor systému Comment[cs_CZ]=Calamares – instalátor operačních systémů -Name[ja]=Calamares +Name[cs_CZ]=Nainstalovat Icon[ja]=calamares GenericName[ja]=システムインストーラー Comment[ja]=Calamares — システムインストーラー -Name[lt]=Calamares +Name[ja]=システムをインストール +Icon[ko]=깔라마레스 +GenericName[ko]=시스템 설치 관리자 +Comment[ko]=깔라마레스 — 시스템 설치 관리자 +Name[ko]=시스템 설치 Icon[lt]=calamares GenericName[lt]=Sistemos diegimas į kompiuterį Comment[lt]=Calamares — Sistemos diegimo programa -Name[it_IT]=Calamares +Name[lt]=Įdiegti Sistemą Icon[it_IT]=calamares -GenericName[it_IT]=Programma di installazione -Comment[it_IT]=Calamares — Installare il Sistema -Name[nb]=Calamares +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 -Name[nl]=Calamares +Name[nb]=Installer System Icon[nl]=calamares GenericName[nl]=Installatieprogramma Comment[nl]=Calamares — Installatieprogramma -Name[pl]=Calamares +Name[nl]=Installeer systeem Icon[pl]=calamares GenericName[pl]=Instalator systemu Comment[pl]=Calamares — Instalator systemu -Name[pt_BR]=Calamares +Name[pl]=Zainstaluj system Icon[pt_BR]=calamares GenericName[pt_BR]=Instalador de Sistema Comment[pt_BR]=Calamares — Instalador de Sistema -Name[ro]=Calamares +Name[pt_BR]=Sistema de Instalação Icon[ro]=calamares GenericName[ro]=Instalator de sistem Comment[ro]=Calamares — Instalator de sistem -Name[ru]=Calamares +Name[ro]=Instalează sistemul Icon[ru]=calamares GenericName[ru]=Установщик системы Comment[ru]=Calamares - Установщик системы -Name[sk]=Calamares +Name[ru]=Установить систему Icon[sk]=calamares GenericName[sk]=Inštalátor systému Comment[sk]=Calamares — Inštalátor systému -Name[sq]=Calamares +Name[sk]=Inštalovať systém +Name[sl]=Namesti sistem Icon[sq]=calamares GenericName[sq]=Instalues Sistemi Comment[sq]=Calamares — Instalues Sistemi -Name[fi_FI]=Calamares +Name[sq]=Instalo Sistemin Icon[fi_FI]=calamares GenericName[fi_FI]=Järjestelmän Asennusohjelma Comment[fi_FI]=Calamares — Järjestelmän Asentaja -Name[sv]=Calamares +Name[fi_FI]=Asenna Järjestelmä +Name[sr@latin]=Instaliraj sistem +Name[sr]=Инсталирај систем Icon[sv]=calamares GenericName[sv]=Systeminstallerare Comment[sv]=Calamares — Systeminstallerare -Name[zh_CN]=Calamares +Name[sv]=Installera system +Name[th]=ติดตั้งระบบ +Name[uk]=Встановити Систему Icon[zh_CN]=calamares GenericName[zh_CN]=系统安装程序 Comment[zh_CN]=Calamares — 系统安装程序 -Name[zh_TW]=Calamares +Name[zh_CN]=安装系统 Icon[zh_TW]=calamares GenericName[zh_TW]=系統安裝程式 Comment[zh_TW]=Calamares ── 系統安裝程式 -Name[ast]=Calamares +Name[zh_TW]=安裝系統 Icon[ast]=calamares GenericName[ast]=Instalador del sistema Comment[ast]=Calamares — Instalador del sistema -Name[pt_PT]=Calamares +Name[ast]=Instalar sistema +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 Comment[pt_PT]=Calamares - Instalador de Sistema -Name[tr_TR]=Calamares +Name[pt_PT]=Instalar Sistema Icon[tr_TR]=calamares GenericName[tr_TR]=Sistem Yükleyici Comment[tr_TR]=Calamares — Sistem Yükleyici +Name[tr_TR]=Sistemi Yükle diff --git a/calamares.desktop.in b/calamares.desktop.in new file mode 100644 index 000000000..0c4041bcb --- /dev/null +++ b/calamares.desktop.in @@ -0,0 +1,15 @@ +[Desktop Entry] +Type=Application +Version=1.0 +Name=Install System +GenericName=System Installer +Keywords=calamares;system;installer +TryExec=calamares +Exec=pkexec /usr/bin/calamares +Comment=Calamares — System Installer +Icon=calamares +Terminal=false +StartupNotify=true +Categories=Qt;System; +X-AppStream-Ignore=true + diff --git a/ci/HACKING.md b/ci/HACKING.md index dfc768be9..ca3901f07 100644 --- a/ci/HACKING.md +++ b/ci/HACKING.md @@ -44,7 +44,7 @@ it's just a typo-fix which might not be copyrightable in all jurisdictions). Formatting C++ -------------- This formatting guide applies to C++ code only; for Python modules, we use -[pycodestyle][https://github.com/PyCQA/pycodestyle] to apply a check of +[pycodestyle](https://github.com/PyCQA/pycodestyle) to apply a check of some PEP8 guidelines. * Spaces, not tabs. diff --git a/ci/RELEASE.sh b/ci/RELEASE.sh new file mode 100644 index 000000000..142d6b0c0 --- /dev/null +++ b/ci/RELEASE.sh @@ -0,0 +1,93 @@ +#! /bin/sh +# +# Release script for Calamares +# +# This attempts to perform the different steps of the RELEASE.md +# document automatically. It's not tested on other machines or +# setups other than [ade]'s development VM. +# +# Assumes that the version in CMakeLists.txt has been bumped, +# and that a release of that version is desired. +# +# None of the "update stuff" is done by this script; in preparation +# for the release, you should have already done: +# - updating the version +# - pulling translations +# - updating the language list +# - switching to the right branch + +test -d .git || { echo "Not at top-level." ; exit 1 ; } +test -d src/modules || { echo "No src/modules." ; exit 1 ; } + +which cmake > /dev/null 2>&1 || { echo "No cmake(1) available." ; exit 1 ; } + +### Build with default compiler +# +# +BUILDDIR=$(mktemp -d --suffix=-build --tmpdir=.) +rm -rf "$BUILDDIR" +mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; } +( cd "$BUILDDIR" && cmake .. && make -j4 ) || { echo "Could not perform test-build." ; exit 1 ; } +( cd "$BUILDDIR" && make test ) || { echo "Tests failed." ; exit 1 ; } + +### Build with clang +# +# +if which clang++ > /dev/null 2>&1 ; then + # Do build again with clang + rm -rf "$BUILDDIR" + mkdir "$BUILDDIR" || { echo "Could not create build directory." ; exit 1 ; } + ( cd "$BUILDDIR" && CC=clang CXX=clang++ cmake .. && make -j4 ) || { echo "Could not perform test-build." ; exit 1 ; } + ( cd "$BUILDDIR" && make test ) || { echo "Tests failed." ; exit 1 ; } +fi + +### Get version number for this release +# +# +V=$( cd "$BUILDDIR" && make show-version | grep ^CALAMARES_VERSION | sed s/^[A-Z_]*=// ) +test -n "$V" || { echo "Could not obtain version." ; exit 1 ; } + +### Create signed tag +# +# This is the signing key ID associated with the GitHub account adriaandegroot, +# which is used to create all "verified" tags in the Calamares repo. +KEY_ID="128F00873E05AF1D" +git tag -u "$KEY_ID" -m "Release v$V" "v$V" || { echo "Could not sign tag v$V." ; exit 1 ; } + +### Create the tarball +# +# +TAR_V="calamares-$V" +TAR_FILE="$TAR_V.tar.gz" +git archive -o "$TAR_FILE" --prefix "$TAR_V/" "v$V" || { echo "Could not create tarball." ; exit 1 ; } +test -f "$TAR_FILE" || { echo "Tarball was not created." ; exit 1 ; } +SHA256=$(sha256sum "$TAR_FILE" | cut -d" " -f1) + +### Build the tarball +# +# +D=$(date +%Y%m%d-%H%M%S) +TMPDIR=$(mktemp -d --suffix="-calamares-$D") +test -d "$TMPDIR" || { echo "Could not create tarball-build directory." ; exit 1 ; } +tar xzf "$TAR_FILE" -C "$TMPDIR" || { echo "Could not unpack tarball." ; exit 1 ; } +test -d "$TMPDIR/$TAR_V" || { echo "Tarball did not contain source directory." ; exit 1 ; } +( cd "$TMPDIR/$TAR_V" && cmake . && make -j4 && make test ) || { echo "Tarball build failed." ; exit 1 ; } + +### Cleanup +# +rm -rf "$BUILDDIR" # From test-builds +rm -rf "$TMPDIR" # From tarball + +### Print subsequent instructions +# +# +cat < calamares.desktop.new + mv calamares.desktop.new calamares.desktop +} + +drop_language es_ES +drop_language pl_PL + +# Also fix the .desktop file, which has some fields removed by Transifex. +# +{ cat calamares.desktop.in ; grep "\\[[a-zA-Z_@]*]=" calamares.desktop ; } > calamares.desktop.new +mv calamares.desktop.new calamares.desktop + ### COMMIT TRANSLATIONS # # Produce multiple commits (for the various parts of the i18n diff --git a/ci/txpush.sh b/ci/txpush.sh index fe6d7170f..cf1c3b883 100755 --- a/ci/txpush.sh +++ b/ci/txpush.sh @@ -33,7 +33,10 @@ fi # sources, then push to Transifex export QT_SELECT=5 -lupdate src/ -ts -no-obsolete lang/calamares_en.ts +# Don't pull branding translations in, +# those are done separately. +_srcdirs="src/calamares src/libcalamares src/libcalamaresui src/modules src/qml" +lupdate $_srcdirs -ts -no-obsolete lang/calamares_en.ts tx push --source --no-interactive -r calamares.calamares-master tx push --source --no-interactive -r calamares.fdo diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt new file mode 100644 index 000000000..65c0c4ca2 --- /dev/null +++ b/lang/CMakeLists.txt @@ -0,0 +1,24 @@ +# === This file is part of Calamares - === +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . +# +# SPDX-License-Identifier: GPL-3.0+ +# License-Filename: LICENSE +# +### + +find_package( Qt5 ${QT_VERSION} CONFIG REQUIRED Xml ) + +add_executable(txload txload.cpp) +target_link_libraries(txload Qt5::Xml) diff --git a/lang/calamares_ar.ts b/lang/calamares_ar.ts index 5958f541f..8fccafc0e 100644 --- a/lang/calamares_ar.ts +++ b/lang/calamares_ar.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install ثبت @@ -105,7 +113,7 @@ Calamares::JobThread - + Done انتهى @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 شغّل الأمر 1% 2% - + Running command %1 %2 يشغّل الأمر 1% 2% @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. يشغّل عمليّة %1. - + Bad working directory path مسار سيء لمجلد العمل - + Working directory %1 for python job %2 is not readable. لا يمكن القراءة من مجلد العمل %1 الخاص بعملية بايثون %2. - + Bad main script file ملفّ السّكربت الرّئيس سيّء. - + Main script file %1 for python job %2 is not readable. ملفّ السّكربت الرّئيس %1 لمهمّة بايثون %2 لا يمكن قراءته. - + Boost.Python error in job "%1". خطأ Boost.Python في العمل "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &رجوع - + + &Next &التالي - - + + &Cancel &إلغاء - - + + Cancel installation without changing the system. الغاء الـ تثبيت من دون احداث تغيير في النظام - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + &ثبت + + + Cancel installation? إلغاء التثبيت؟ - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. أتريد إلغاء عمليّة التّثبيت الحاليّة؟ سيخرج المثبّت وتضيع كلّ التّغييرات. - + &Yes &نعم - + &No &لا - + &Close &اغلاق - + Continue with setup? الإستمرار في التثبيت؟ - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> مثبّت %1 على وشك بإجراء تعديلات على قرصك لتثبيت %2.<br/><strong>لن تستطيع التّراجع عن هذا.</strong> - + &Install now &ثبت الأن - + Go &back &إرجع - + &Done - + The installation is complete. Close the installer. اكتمل التثبيت , اغلق المثبِت - + Error خطأ - + Installation Failed فشل التثبيت @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. الح&جم: - + En&crypt تشفير - + Logical منطقيّ - + Primary أساسيّ - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 أنشئ المستخدم %1 - + Create user <strong>%1</strong>. أنشئ المستخدم <strong>%1</strong>. - + Creating user %1. ينشئ المستخدم %1. - + Sudoers dir is not writable. دليل Sudoers لا يمكن الكتابة فيه. - + Cannot create sudoers file for writing. تعذّر إنشاء ملفّ sudoers للكتابة. - + Cannot chmod sudoers file. تعذّر تغيير صلاحيّات ملفّ sudores. - + Cannot open groups file for reading. تعذّر فتح ملفّ groups للقراءة. - - - Cannot create user %1. - تعذّر إنشاء المستخدم %1. - - - - useradd terminated with error code %1. - أُنهي useradd برمز الخطأ %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - أُنهي usermod برمز الخطأ %1. - - - - Cannot set home directory ownership for user %1. - تعذّر تعيين مالك دليل المستخدم ليكون %1. - - - - chown terminated with error code %1. - أُنهي chown برمز الخطأ %1. - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. الشّارات: - + Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. أ&عد التّشغيل الآن - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>انتهينا.</h1><br/>لقد ثُبّت %1 على حاسوبك.<br/>يمكنك إعادة التّشغيل وفتح النّظام الجديد، أو متابعة استخدام بيئة %2 الحيّة. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> اضبط طراز لوحة المفتاتيح ليكون %1.<br/> - + Set keyboard layout to %1/%2. اضبط تخطيط لوحة المفاتيح إلى %1/%2. @@ -1070,64 +1075,64 @@ The installer will quit and all changes will be lost. نموذج - + I accept the terms and conditions above. أقبل الشّروط والأحكام أعلاه. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>اتّفاقيّة التّرخيص</h1>عمليّة الإعداد هذه ستثبّت برمجيّات مملوكة تخضع لشروط ترخيص. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. فضلًا راجع اتّفاقيّات رخص المستخدم النّهائيّ (EULA) أعلاه.<br/>إن لم تقبل الشّروط، فلن تتابع عمليّة الإعداد. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>اتّفاقيّة التّرخيص</h1>يمكن لعمليّة الإعداد تثبيت برمجيّات مملوكة تخضع لشروط ترخيص وذلك لتوفير مزايا إضافيّة وتحسين تجربة المستخدم. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. فضلًا راجع اتّفاقيّات رخص المستخدم النّهائيّ (EULA) أعلاه.<br/>إن لم تقبل الشّروط، فلن تُثبّت البرمجيّات المملوكة وستُستخدم تلك مفتوحة المصدر بدلها. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>مشغّل %1</strong><br/>من%2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>مشغّل %1 للرّسوميّات</strong><br/><font color="Grey">من %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>ملحقة %1 للمتصّفح</strong><br/><font color="Grey">من %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>مرماز %1</strong><br/><font color="Grey">من %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>حزمة %1</strong><br/><font color="Grey">من %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">من %2</font> - + <a href="%1">view license agreement</a> <a href="%1">اعرض اتّفاقيّة التّرخيص</a> @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... يحمّل بيانات المواقع... - + Location الموقع @@ -1196,22 +1201,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name الاسم - + Description الوصف - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1227,242 +1232,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space المساحة الحرّة - - + + New partition قسم جديد - + Name الاسم - + File System نظام الملفّات - + Mount Point نقطة الضّمّ - + Size الحجم @@ -1657,8 +1662,8 @@ The installer will quit and all changes will be lost. - &Create - أ&نشئ + Cre&ate + @@ -1676,105 +1681,115 @@ The installer will quit and all changes will be lost. ثبّت م&حمّل الإقلاع على: - + Are you sure you want to create a new partition table on %1? أمتأكّد من إنشاء جدول تقسيم جديد على %1؟ + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... جاري جمع معلومات عن النظام... - + Partitions الأقسام - + Install %1 <strong>alongside</strong> another operating system. ثبّت %1 <strong>جنبًا إلى جنب</strong> مع نظام تشغيل آخر. - + <strong>Erase</strong> disk and install %1. <strong>امسح</strong> القرص وثبّت %1. - + <strong>Replace</strong> a partition with %1. <strong>استبدل</strong> قسمًا ب‍ %1. - + <strong>Manual</strong> partitioning. تقسيم <strong>يدويّ</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>امسح</strong> القرص <strong>%2</strong> (%3) وثبّت %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>استبدل</strong> قسمًا على القرص <strong>%2</strong> (%3) ب‍ %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: الحاليّ: - + After: بعد: - + No EFI system partition configured لم يُضبط أيّ قسم نظام EFI - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set راية قسم نظام EFI غير مضبوطة - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. معاملات نداء المهمة سيّئة. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: الافتراضي - + unknown مجهول - + extended ممتدّ - + unformatted غير مهيّأ - + swap @@ -2007,52 +2040,52 @@ Output: يجمع معلومات النّظام... - + has at least %1 GB available drive space فيه على الأقل مساحة بحجم %1 غ.بايت حرّة - + There is not enough drive space. At least %1 GB is required. ليست في القرص مساحة كافية. المطلوب هو %1 غ.بايت على الأقلّ. - + has at least %1 GB working memory فيه ذاكرة شاغرة بحجم %1 غ.بايت على الأقلّ - + The system does not have enough working memory. At least %1 GB is required. ليس في النّظام ذاكرة شاغرة كافية. المطلوب هو %1 غ.بايت على الأقلّ. - + is plugged in to a power source موصول بمصدر للطّاقة - + The system is not plugged in to a power source. النّظام ليس متّصلًا بمصدر للطّاقة. - + is connected to the Internet موصول بالإنترنت - + The system is not connected to the Internet. النّظام ليس موصولًا بالإنترنت - + The installer is not running with administrator rights. المثبّت لا يعمل بصلاحيّات المدير. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 اضبط اسم المضيف %1 - + Set hostname <strong>%1</strong>. اضبط اسم المضيف <strong>%1</strong> . - + Setting hostname %1. يضبط اسم المضيف 1%. - - + + Internal Error خطأ داخلي - - + + Cannot write hostname to target system تعذّرت كتابة اسم المضيف إلى النّظام الهدف @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users المستخدمين @@ -2553,7 +2595,7 @@ Output: - + %1 support 1% الدعم @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome مرحبا بك diff --git a/lang/calamares_ast.ts b/lang/calamares_ast.ts index b2fc47904..2649671f5 100644 --- a/lang/calamares_ast.ts +++ b/lang/calamares_ast.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalación @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Fecho @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Executar comandu %1 %2 - + Running command %1 %2 Executando'l comandu %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Executando operación %1. - + Bad working directory path Camín incorreutu del direutoriu de trabayu - + Working directory %1 for python job %2 is not readable. El direutoriu de trabayu %1 pal trabayu python %2 nun ye lleible. - + Bad main script file Ficheru incorreutu del script principal - + Main script file %1 for python job %2 is not readable. El ficheru de script principal %1 pal trabayu python %2 nun ye lleible. - + Boost.Python error in job "%1". Fallu Boost.Python nel trabayu «%1». @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Atrás - + + &Next &Siguiente - - + + &Cancel &Encaboxar - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? ¿Encaboxar instalación? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. ¿De xuru que quies encaboxar el procesu actual d'instalación? L'instalador colará y perderánse toles camudancies. - + &Yes &Sí - + &No &Non - + &Close &Zarrar - + Continue with setup? ¿Siguir cola configuración? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> L'instalador %1 ta a piques de facer camudancies al to discu pa instalar %2.<br/><strong>Nun sedrás capaz a desfacer estes camudancies.</strong> - + &Install now &Instalar agora - + Go &back &Dir p'atrás - + &Done &Fecho - + The installation is complete. Close the installer. Completóse la operación. Zarra l'instalador. - + Error Fallu - + Installation Failed Instalación fallida @@ -430,17 +459,17 @@ L'instalador colará y perderánse toles camudancies. ClearMountsJob - + Clear mounts for partitioning operations on %1 Llimpiar montaxes pa les opciones de particionáu en %1 - + Clearing mounts for partitioning operations on %1. Llimpiando los montaxes pa les opciones de particionáu en %1. - + Cleared all mounts for %1 Llimpiáronse tolos montaxes pa %1 @@ -471,20 +500,26 @@ L'instalador colará y perderánse toles camudancies. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ L'instalador colará y perderánse toles camudancies. Tama&ñu: - + En&crypt &Cifrar - + Logical Llóxica - + Primary Primaria - + GPT GPT - + Mountpoint already in use. Please select another one. Puntu de montaxe yá n'usu. Esbilla otru, por favor. @@ -644,70 +679,40 @@ L'instalador colará y perderánse toles camudancies. CreateUserJob - + Create user %1 Crear l'usuariu %1 - + Create user <strong>%1</strong>. Crearáse l'usuariu <strong>%1</strong>. - + Creating user %1. Creando l'usuariu %1. - + Sudoers dir is not writable. Nun pue escribise nel direutoriu sudoers. - + Cannot create sudoers file for writing. Nun pue crease'l ficheru sudoers pa escritura. - + Cannot chmod sudoers file. Nun pue facese chmod al ficheru sudoers. - + Cannot open groups file for reading. Nun pue abrise'l ficheru de grupos pa escritura. - - - Cannot create user %1. - Nun pue crease l'usuariu %1. - - - - useradd terminated with error code %1. - useradd finó col códigu de fallu %1. - - - - Cannot add user %1 to groups: %2. - Nun pue amestase l'usuariu %1 a los grupos: %2 - - - - usermod terminated with error code %1. - usermod finó col códigu de fallu %1. - - - - Cannot set home directory ownership for user %1. - Nun pue afitase la propiedá del direutoriu Home al usuariu %1. - - - - chown terminated with error code %1. - chown finó col códigu de fallu %1. - DeletePartitionJob @@ -794,7 +799,7 @@ L'instalador colará y perderánse toles camudancies. DummyCppJob - + Dummy C++ Job Trabayu C++ maniquín @@ -852,7 +857,7 @@ L'instalador colará y perderánse toles camudancies. Banderes: - + Mountpoint already in use. Please select another one. Puntu de montaxe yá n'usu. Esbilla otru, por favor. @@ -941,12 +946,12 @@ L'instalador colará y perderánse toles camudancies. &Reaniciar agora - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Too fecho.</h1><br/>%1 instalóse nel to ordenador.<br/>Quiciabes quieras reaniciar agora al to sistema nuevu, o siguir usando l'entornu live %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ L'instalador colará y perderánse toles camudancies. KeyboardPage - + Set keyboard model to %1.<br/> Afitóse'l modelu de tecláu a %1.<br/> - + Set keyboard layout to %1/%2. Afitóse la distribución de tecláu a %1/%2. @@ -1070,64 +1075,64 @@ L'instalador colará y perderánse toles camudancies. Formulariu - + I accept the terms and conditions above. Aceuto los términos y condiciones d'enriba. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Alcuerdu de llicencia</h1>Esti procedimientu d'instalación instalará software propietariu que ta suxetu a términos de llicenciamientu. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Revisa los Alcuerdos de Llicencia del Usuariu Final (EULAs) d'enriba, por favor.<br/>Si nun tas acordies colos términos, el procedimientu nun pue siguir. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Alcuerdu de llicencia</h1>Esti procedimientu d'instalación pue instalar software propietariu que ta suxetu a términos de llicenciamientu p'apurrir carauterístiques adicionales y ameyorar la esperiencia d'usuariu. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Revisa los Alcuerdos de Llicencia del Usuariu Final (EULAs) d'enriba, por favor.<br/>Si nun tas acordies colos términos, nun s'instalará'l software propietariu y usaránse, nel so llugar, alternatives de códigu abiertu. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>Controlador %1 driver</strong><br/>por %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>Controlador gráficu %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>Complementu %1 del restolador</strong><br/><font color="Grey">por %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>Códec %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>Paquete %1</strong><br/><font color="Grey">per %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">por %2</font> - + <a href="%1">view license agreement</a> <a href="%1">ver alcuerdu de llicencia</a> @@ -1183,12 +1188,12 @@ L'instalador colará y perderánse toles camudancies. LocaleViewStep - + Loading location data... Cargando datos d'allugamientu... - + Location Allugamientu @@ -1196,22 +1201,22 @@ L'instalador colará y perderánse toles camudancies. NetInstallPage - + Name Nome - + Description Descripción - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalación de rede. (Deshabilitáu: Nun pue dise en cata del llistáu de paquetes, comprueba la conexón de rede) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ L'instalador colará y perderánse toles camudancies. NetInstallViewStep - + Package selection Esbilla de paquetes @@ -1227,242 +1232,242 @@ L'instalador colará y perderánse toles camudancies. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ L'instalador colará y perderánse toles camudancies. PartitionModel - - + + Free Space Espaciu llibre - - + + New partition Partición nueva - + Name Nome - + File System Sistema de ficheros - + Mount Point Puntu montaxe - + Size Tamañu @@ -1657,8 +1662,8 @@ L'instalador colará y perderánse toles camudancies. - &Create - &Crear + Cre&ate + @@ -1676,105 +1681,115 @@ L'instalador colará y perderánse toles camudancies. &Instalar xestor d'arranque en: - + Are you sure you want to create a new partition table on %1? ¿De xuru que quies crear una tabla particiones nueva en %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Axuntando información del sistema... - + Partitions Particiones - + Install %1 <strong>alongside</strong> another operating system. Instalaráse %1 <strong>cabo</strong> otru sistema operativu. - + <strong>Erase</strong> disk and install %1. <strong>Desaniciaráse</strong>'l discu ya instalaráse %1. - + <strong>Replace</strong> a partition with %1. <strong>Trocaráse</strong> una partición con %1. - + <strong>Manual</strong> partitioning. Particionáu <strong>Manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalaráse %1 <strong>cabo</strong> otru sistema operativu nel discu <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Desaniciaráse</strong>'l discu <strong>%2</strong> (%3) ya instalaráse %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Trocaráse</strong> una partición nel discu <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionáu <strong>manual</strong> nel discu <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Discu <strong>%1</strong> (%2) - + Current: Anguaño: - + After: Dempués: - + No EFI system partition configured Nun hai dengún sistema EFI configuráu - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set Nun s'afitó la bandera del sistema EFI - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Precísase una partición del sistema EFI p'aniciar %1.<br/><br/>Configuróse una partición col puntu montaxe <strong>%2</strong> pero nun s'afitó la so bandera <strong>esp</strong>.<br/>P'afitar la bandera, volvi y edita la partición.<br/><br/>Pues siguir ensin afitar la bandera pero'l to sistema pue fallar al aniciase. - + Boot partition not encrypted /boot non cifráu - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ L'instalador colará y perderánse toles camudancies. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Parámetros incorreutos pa la llamada del trabayu del procesu. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: Por defeutu - + unknown - + extended - + unformatted ensin formatiar - + swap intercambéu @@ -2007,52 +2040,52 @@ Output: Axuntando información del sistema... - + has at least %1 GB available drive space tien polo menos %1 GB disponibles d'espaciu en discu - + There is not enough drive space. At least %1 GB is required. Nun hai espaciu abondu na unidá. Ríquense polo menos %1 GB. - + has at least %1 GB working memory polo menos %1 GB de memoria de trabayu - + The system does not have enough working memory. At least %1 GB is required. El sistema nun tien abonda memoria de trabayu. Ríquense polo menos %1 GB. - + is plugged in to a power source ta enchufáu a una fonte d'enerxía - + The system is not plugged in to a power source. El sistema nun ta enchufáu a una fonte d'enerxía. - + is connected to the Internet ta coneutáu a internet - + The system is not connected to the Internet. El sistema nun ta coneutáu a internet. - + The installer is not running with administrator rights. L'instalador nun ta executándose con drechos alministrativos. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 Afitar nome d'agospiu %1 - + Set hostname <strong>%1</strong>. Afitaráse'l nome d'agospiu a <strong>%1</strong>. - + Setting hostname %1. Afitando'l nome d'agospiu %1. - - + + Internal Error Fallu internu - - + + Cannot write hostname to target system Nun pue escribise'l nome d'agospiu al sistema destín @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Usuarios @@ -2553,7 +2595,7 @@ Output: - + %1 support Sofitu %1 @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Bienllegáu diff --git a/lang/calamares_es_ES.ts b/lang/calamares_be.ts similarity index 84% rename from lang/calamares_es_ES.ts rename to lang/calamares_be.ts index 442d01d9b..3ab271eb6 100644 --- a/lang/calamares_es_ES.ts +++ b/lang/calamares_be.ts @@ -1,4 +1,4 @@ - + BootInfoWidget @@ -22,17 +22,17 @@ Master Boot Record of %1 - Master Boot Record de %1 + Boot Partition - Partición de arranque + System Partition - Partición de sistema + @@ -45,32 +45,40 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow Form - Formulario + GlobalStorage - Almacenamiento global + JobQueue - Cola de trabajos + Modules - Módulos + Type: - Tipo: + @@ -91,34 +99,34 @@ Debug information - Información de depuración + Calamares::ExecutionViewStep - + Install - Instalar + Calamares::JobThread - + Done - Hecho + Calamares::ProcessJob - + Run command %1 %2 - Ejecutar comando %1 %2 + - + Running command %1 %2 @@ -126,126 +134,146 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - Ruta de trabajo errónea + - + Working directory %1 for python job %2 is not readable. - No se puede leer la ruta de trabajo %1 de la tarea %2 de python. + - + Bad main script file - Script principal erróneo + - + Main script file %1 for python job %2 is not readable. - No se puede leer el script principal %1 de la tarea %2 de python. + - + Boost.Python error in job "%1". - Error de Boost.Python en la tarea "%1". + Calamares::ViewManager - + &Back - &Atrás + - + + &Next - &Siguiente + - - + + &Cancel - &Cancelar + - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - ¿Cancelar instalación? + - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - ¿Estás seguro de que quieres cancelar la instalación en curso? -El instalador se cerrará y se perderán todos los cambios. + - + &Yes - + &No - + &Close - + Continue with setup? - ¿Continuar con la configuración? + - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - &Instalar ahora + - + Go &back - Volver atrás. + - + &Done - + The installation is complete. Close the installer. - + Error - Error + - + Installation Failed - La instalación ha fallado + @@ -253,22 +281,22 @@ El instalador se cerrará y se perderán todos los cambios. Unknown exception type - Tipo de excepción desconocida + unparseable Python error - Error de Python no analizable + unparseable Python traceback - Rastreo de Python no analizable + Unfetchable Python error. - Error de Python no alcanzable. + @@ -276,12 +304,12 @@ El instalador se cerrará y se perderán todos los cambios. %1 Installer - Instalador %1 + Show debug information - Mostrar la información de depuración + @@ -304,7 +332,7 @@ El instalador se cerrará y se perderán todos los cambios. For best results, please ensure that this computer: - Para un mejor resultado asegurate que este ordenador: + @@ -317,12 +345,12 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + After: - Después: + @@ -430,19 +458,19 @@ El instalador se cerrará y se perderán todos los cambios. ClearMountsJob - + Clear mounts for partitioning operations on %1 - Limpiar los puntos de montaje para particionar %1 + - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 - Unidades desmontadas en %1 + @@ -450,7 +478,7 @@ El instalador se cerrará y se perderán todos los cambios. Clear all temporary mounts. - Quitar todos los puntos de montaje temporales. + @@ -460,31 +488,37 @@ El instalador se cerrará y se perderán todos los cambios. Cannot get list of temporary mounts. - No se puede obtener la lista de puntos de montaje temporales. + Cleared all temporary mounts. - Se han quitado todos los puntos de montaje temporales. + CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -494,7 +528,7 @@ El instalador se cerrará y se perderán todos los cambios. Create a Partition - Crear una partición + @@ -504,17 +538,17 @@ El instalador se cerrará y se perderán todos los cambios. Partition &Type: - &Tipo de partición: + &Primary - &Primaria + E&xtended - E&xtendida + @@ -529,40 +563,40 @@ El instalador se cerrará y se perderán todos los cambios. Flags: - Marcas: + &Mount Point: - Punto de &montaje: + Si&ze: - Tamaño + - + En&crypt - + Logical - Logica + - + Primary - Primaria + - + GPT - GPT + - + Mountpoint already in use. Please select another one. @@ -587,7 +621,7 @@ El instalador se cerrará y se perderán todos los cambios. The installer failed to create partition on disk '%1'. - El instalador no ha podido crear la partición en el disco '%1' + @@ -595,27 +629,27 @@ El instalador se cerrará y se perderán todos los cambios. Create Partition Table - Crear tabla de particiones + Creating a new partition table will delete all existing data on the disk. - Al crear una tabla de particiones se borrarán todos los datos del disco. + What kind of partition table do you want to create? - ¿Qué tipo de tabla de particiones quieres crear? + Master Boot Record (MBR) - Master Boot Record (MBR) + GUID Partition Table (GPT) - GUID de la tabla de particiones (GPT) + @@ -623,12 +657,12 @@ El instalador se cerrará y se perderán todos los cambios. Create new %1 partition table on %2. - Crear una nueva tabla de particiones %1 en %2. + Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - Crear una nueva tabla de particiones <strong>%1</strong> en <strong>%2</strong> (%3). + @@ -638,88 +672,58 @@ El instalador se cerrará y se perderán todos los cambios. The installer failed to create a partition table on %1. - El instalador no ha podido crear la tabla de particiones en %1. + CreateUserJob - + Create user %1 - Crear el usuario %1 + - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - No se puede escribir en el directorio Sudoers. + - + Cannot create sudoers file for writing. - No se puede crear el archivo sudoers como de escritura. + - + Cannot chmod sudoers file. - No se puede ejecutar chmod sobre el fichero de sudoers. + - + Cannot open groups file for reading. - No se puede abrir para leer el fichero groups. - - - - Cannot create user %1. - No se puede crear el usuario %1. - - - - useradd terminated with error code %1. - useradd ha terminado con el código de error %1. - - - - Cannot add user %1 to groups: %2. - - - usermod terminated with error code %1. - usermod ha terminado con el código de error %1. - - - - Cannot set home directory ownership for user %1. - No se puede establecer el propietario del directorio personal del usuario %1. - - - - chown terminated with error code %1. - chown ha terminado con el código de error %1. - DeletePartitionJob Delete partition %1. - Borrar partición %1. + Delete partition <strong>%1</strong>. - Borrar partición <strong>%1</strong>. + @@ -729,7 +733,7 @@ El instalador se cerrará y se perderán todos los cambios. The installer failed to delete partition %1. - El instalado no ha podido borrar la partición %1. + @@ -770,7 +774,7 @@ El instalador se cerrará y se perderán todos los cambios. %1 - %2 (%3) - %1 - %2 (%3) + @@ -794,7 +798,7 @@ El instalador se cerrará y se perderán todos los cambios. DummyCppJob - + Dummy C++ Job @@ -804,12 +808,12 @@ El instalador se cerrará y se perderán todos los cambios. Edit Existing Partition - Editar las particiones existentes. + Content: - Contenido: + @@ -819,22 +823,22 @@ El instalador se cerrará y se perderán todos los cambios. Format - Formatear + Warning: Formatting the partition will erase all existing data. - Aviso: Al formatear la partición se borrarán todos los datos. + &Mount Point: - Punto de &montaje: + Si&ze: - Tamaño + @@ -849,10 +853,10 @@ El instalador se cerrará y se perderán todos los cambios. Flags: - Marcas: + - + Mountpoint already in use. Please select another one. @@ -862,7 +866,7 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + @@ -890,7 +894,7 @@ El instalador se cerrará y se perderán todos los cambios. Set partition information - Establecer la información de la partición + @@ -915,7 +919,7 @@ El instalador se cerrará y se perderán todos los cambios. Install boot loader on <strong>%1</strong>. - Instalar el cargador de arranque en <strong>%1</strong> + @@ -928,7 +932,7 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + @@ -938,15 +942,15 @@ El instalador se cerrará y se perderán todos los cambios. &Restart now - &Reiniciar ahora + - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - Hecho. %1 ha sido instalado en tu ordenador. Puedes reiniciar el nuevo sistema, o continuar en el modo %2 Live. + - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -956,7 +960,7 @@ El instalador se cerrará y se perderán todos los cambios. Finish - Terminar + @@ -974,12 +978,12 @@ El instalador se cerrará y se perderán todos los cambios. Format partition %1 (file system: %2, size: %3 MB) on %4. - Formatear partición %1 (sistema de ficheros: %2, tamaño: %3 MB) en %4. + Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. - Formatear la partición <strong>%3MB</strong> <strong>%1</strong> con el sistema de ficheros <strong>%2</strong>. + @@ -989,7 +993,7 @@ El instalador se cerrará y se perderán todos los cambios. The installer failed to format partition %1 on disk '%2'. - El instalador no ha podido formatear la partición %1 en el disco '%2' + @@ -1021,14 +1025,14 @@ El instalador se cerrará y se perderán todos los cambios. KeyboardPage - + Set keyboard model to %1.<br/> - Establecer el modelo de teclado a %1.<br/> + - + Set keyboard layout to %1/%2. - Establecer la disposición del teclado a %1/%2. + @@ -1036,7 +1040,7 @@ El instalador se cerrará y se perderán todos los cambios. Keyboard - Teclado + @@ -1044,7 +1048,7 @@ El instalador se cerrará y se perderán todos los cambios. System locale setting - Ajustar configuración local + @@ -1054,7 +1058,7 @@ El instalador se cerrará y se perderán todos los cambios. &Cancel - &Cancelar + @@ -1067,67 +1071,67 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1155,23 +1159,23 @@ El instalador se cerrará y se perderán todos los cambios. Region: - Región: + Zone: - Zona: + &Change... - &Cambiar + Set timezone to %1/%2.<br/> - Establecer la zona horaria a %1%2. <br/> + @@ -1183,35 +1187,35 @@ El instalador se cerrará y se perderán todos los cambios. LocaleViewStep - + Loading location data... - Cargando datos de ubicación... + - + Location - Ubicación + NetInstallPage - + Name - Nombre + - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1223,7 @@ El instalador se cerrará y se perderán todos los cambios. NetInstallViewStep - + Package selection @@ -1227,242 +1231,242 @@ El instalador se cerrará y se perderán todos los cambios. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1472,17 +1476,17 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + Keyboard Model: - Modelo de teclado: + Type here to test your keyboard - Escribe aquí para probar el teclado + @@ -1490,49 +1494,49 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + What is your name? - ¿Cómo te llamas? + What name do you want to use to log in? - ¿Qué nombre quieres usar para acceder al sistema? + font-weight: normal - font-weight: normal + <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - <small>Si el ordenador lo usa más de una persona puedes configurar más cuentas después de la instalación.</small> + Choose a password to keep your account safe. - Elige una contraseña para proteger tu cuenta. + <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> - <small>Escribe dos veces la misma contraseña para que se pueda comprobar si tiene errores. Una buena contraseña está formada por letras, números y signos de puntuación, tiene por lo menos ocho caracteres y hay que cambiarla cada cierto tiempo.</small> + What is the name of this computer? - ¿Cuál es el nombre de este ordenador? + <small>This name will be used if you make the computer visible to others on a network.</small> - <small>Este es el nombre que se usará para que otros usuarios de la red puedan identificar el ordenador</small> + @@ -1547,12 +1551,12 @@ El instalador se cerrará y se perderán todos los cambios. Choose a password for the administrator account. - Elige una contraseña para la cuenta de administrador. + <small>Enter the same password twice, so that it can be checked for typing errors.</small> - <small>Escribe dos veces la contraseña para comprobar si tiene errores</small> + @@ -1590,7 +1594,7 @@ El instalador se cerrará y se perderán todos los cambios. New partition - Nueva partición + @@ -1601,36 +1605,36 @@ El instalador se cerrará y se perderán todos los cambios. PartitionModel - - + + Free Space - Espacio sin usar + - - + + New partition - Nueva partición + - + Name - Nombre + - + File System - Sistema de ficheros + - + Mount Point - Punto de montaje + - + Size - Tamaño + @@ -1638,7 +1642,7 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + @@ -1648,27 +1652,27 @@ El instalador se cerrará y se perderán todos los cambios. &Revert All Changes - Deshace&r todos los cambios + New Partition &Table - Nueva &tabla de particiones + - &Create - &Crear + Cre&ate + &Edit - &Editar + &Delete - Borrar + @@ -1676,105 +1680,115 @@ El instalador se cerrará y se perderán todos los cambios. - + Are you sure you want to create a new partition table on %1? - ¿Estás seguro de que quieres crear una nueva tabla de particiones en %1? + + + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + PartitionViewStep - + Gathering system information... - Recogiendo información sobre el sistema... + - + Partitions - Particiones + - + Install %1 <strong>alongside</strong> another operating system. - Instalar %1 <strong>junto con</strong> otro sistema operativo. + - + <strong>Erase</strong> disk and install %1. - <strong>Borrar</strong> el disco e instalar %1. + - + <strong>Replace</strong> a partition with %1. - <strong>Reemplazar</strong> una parición con %1. + - + <strong>Manual</strong> partitioning. - Particionamiento <strong>manual</strong>. + - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - Instalar %1 <strong>junto con</strong> otro sistema operativo en el disco <strong>%2</strong>(%3). + - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - <strong>Borrar</strong> el disco <strong>%2<strong> (%3) e instalar %1. + - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - <strong>Reemplazar</strong> una parición en el disco <strong>%2</strong> (%3) con %1. + - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - Particionar <strong>manualmente</strong> el disco <strong>%1</strong> (%2). + - + Disk <strong>%1</strong> (%2) - Disco <strong>%1</strong> (%2) + - + Current: - + After: - Después: + - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1798,7 +1812,7 @@ El instalador se cerrará y se perderán todos los cambios. Form - Formulario + @@ -1806,81 +1820,99 @@ El instalador se cerrará y se perderán todos los cambios. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - Parámetros erróneos en la llamada al proceso. + - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1890,31 +1922,31 @@ Output: Default Keyboard Model - Modelo de teclado por defecto + Default - Por defecto + - + unknown - + extended - + unformatted - + swap @@ -1929,52 +1961,52 @@ Output: Form - Formulario + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - Selecciona donde instalar %1.<br/><font color="red">Aviso: </font>Se borrarán todos los archivos de la partición seleccionada. + The selected item does not appear to be a valid partition. - El objeto seleccionado no parece ser una particón válida. + %1 cannot be installed on empty space. Please select an existing partition. - %1 no se puede instalar en un sitio vacío. Selecciona una partición existente. + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - %1 no se puede instalar en una partición extendida. Selecciona una partición primaria o lógica. + %1 cannot be installed on this partition. - No se puede instalar %1 en esta partición. + Data partition (%1) - Partición de datos (%1) + Unknown system partition (%1) - Partición de sistema desconocida (%1) + %1 system partition (%2) - %1 partición de sistema (%2) + <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. - <strong>%4</strong><br/><br/>La partición %1 no es lo suficientemente grande para %2. Selecciona otra partición que tenga al menos %3 GiB. + @@ -2004,55 +2036,55 @@ Output: Gathering system information... - Recogiendo información sobre el sistema... + - + has at least %1 GB available drive space - Tenga disponibles por lo menos %1 GB libres + - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - Tenga disponibles por lo menos %1 GB de memoria + - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - está enchufado a la corriente + - + The system is not plugged in to a power source. - + is connected to the Internet - esté conectado a internet + - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2062,12 +2094,12 @@ Output: Resize partition %1. - Redimensionar partición %1. + Resize <strong>%2MB</strong> partition <strong>%1</strong> to <strong>%3MB</strong>. - Redimensionar las partición <strong>%1</strong> de <strong>%2MB</strong> a <strong>%3MB</strong>. + @@ -2077,7 +2109,7 @@ Output: The installer failed to resize partition %1 on disk '%2'. - El instalador no ha podido redimensionar la partición %1 del disco '%2'. + @@ -2096,31 +2128,31 @@ Output: SetHostNameJob - + Set hostname %1 - Establecer el nombre del equipo %1 + - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - Error interno + - - + + Cannot write hostname to target system - No se puede escribir el nombre del equipo en el sistema destino + @@ -2128,24 +2160,24 @@ Output: Set keyboard model to %1, layout to %2-%3 - Establecer el modelo de teclado %1, a una disposición %2-%3 + Failed to write keyboard configuration for the virtual console. - No se ha podido guardar la configuración de la consola virtual. + Failed to write to %1 - No se ha podido escribir en %1 + Failed to write keyboard configuration for X11. - No se ha podido guardar la configuración del teclado de X11. + @@ -2241,7 +2273,7 @@ Output: Set password for user %1 - Establecer contraseña del usuario %1 + @@ -2251,12 +2283,12 @@ Output: Bad destination system path. - El destino de la ruta del sistema es errónea. + rootMountPoint is %1 - El punto de montaje de root es %1 + @@ -2271,12 +2303,12 @@ Output: Cannot set password for user %1. - No se puede establecer la contraseña del usuario %1. + usermod terminated with error code %1. - usermod ha terminado con el código de error %1. + @@ -2284,27 +2316,27 @@ Output: Set timezone to %1/%2 - Establecer el uso horario a %1%2 + Cannot access selected timezone path. - No se puede encontrar la ruta a la zona horaria seleccionada. + Bad path: %1 - Ruta errónea: %1 + Cannot set timezone. - No se puede establecer la zona horaria. + Link creation failed, target: %1; link name: %2 - No se puede crear el enlace, objetivo: %1; nombre del enlace: %2 + @@ -2325,12 +2357,21 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage This is an overview of what will happen once you start the install procedure. - Este es un resumen de que pasará una vez que se inicie la instalación. + @@ -2338,7 +2379,7 @@ Output: Summary - Resumen + @@ -2398,7 +2439,7 @@ Output: Form - Formulario + @@ -2463,41 +2504,41 @@ Output: Your username is too long. - Tu nombre de usuario es demasiado largo. + Your username contains invalid characters. Only lowercase letters and numbers are allowed. - Tu nombre de usuario contiene caracteres no válidos. Solo se pueden usar letras minúsculas y números. + Your hostname is too short. - El nombre de tu equipo es demasiado corto. + Your hostname is too long. - El nombre de tu equipo es demasiado largo. + Your hostname contains invalid characters. Only letters, numbers and dashes are allowed. - Tu nombre de equipo contiene caracteres no válidos Sólo se pueden usar letras, números y guiones. + Your passwords do not match! - Tu contraseña no coincide + UsersViewStep - + Users - Usuarios + @@ -2505,7 +2546,7 @@ Output: Form - Formulario + @@ -2515,22 +2556,22 @@ Output: &Release notes - Notas de lanzamiento + &Known issues - Problemas conocidos + &Support - &Soporte + &About - Sobre + @@ -2545,7 +2586,7 @@ Output: About %1 installer - Sobre el instalador %1 + @@ -2553,17 +2594,17 @@ Output: - + %1 support - Soporte %1 + WelcomeViewStep - + Welcome - Bienvenido + \ No newline at end of file diff --git a/lang/calamares_bg.ts b/lang/calamares_bg.ts index 18fe9de6c..f9dc45c36 100644 --- a/lang/calamares_bg.ts +++ b/lang/calamares_bg.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Инсталирай @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Готово @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Изпълни команда %1 %2 - + Running command %1 %2 Изпълняване на команда %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Изпълнение на %1 операция. - + Bad working directory path Невалиден път на работната директория - + Working directory %1 for python job %2 is not readable. Работна директория %1 за python задача %2 не се чете. - + Bad main script file Невалиден файл на главен скрипт - + Main script file %1 for python job %2 is not readable. Файлът на главен скрипт %1 за python задача %2 не се чете. - + Boost.Python error in job "%1". Boost.Python грешка в задача "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Назад - + + &Next &Напред - - + + &Cancel &Отказ - - + + Cancel installation without changing the system. - Отказ от инсталацията без промяна на системата + Отказ от инсталацията без промяна на системата. + + + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + - + Cancel installation? Отмяна на инсталацията? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Наистина ли искате да отмените текущият процес на инсталиране? Инсталатора ще прекъсне и всичките промени ще бъдат загубени. - + &Yes &Да - + &No &Не - + &Close &Затвори - + Continue with setup? Продължаване? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Инсталатора на %1 ще направи промени по вашия диск за да инсталира %2. <br><strong>Промените ще бъдат окончателни.</strong> - + &Install now &Инсталирай сега - + Go &back В&ръщане - + &Done &Готово - + The installation is complete. Close the installer. Инсталацията е завършена. Затворете инсталаторa. - + Error Грешка - + Installation Failed Неуспешна инсталация @@ -431,17 +460,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 Разчисти монтиранията за операциите на подялбата на %1 - + Clearing mounts for partitioning operations on %1. Разчистване на монтиранията за операциите на подялбата на %1 - + Cleared all mounts for %1 Разчистени всички монтирания за %1 @@ -472,20 +501,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -525,7 +560,7 @@ The installer will quit and all changes will be lost. LVM LV name - + LVM LV име @@ -543,29 +578,29 @@ The installer will quit and all changes will be lost. Раз&мер: - + En&crypt En%crypt - + Logical Логическа - + Primary Главна - + GPT GPT - + Mountpoint already in use. Please select another one. - Точкака на монтиране вече се използва. Моля изберете друга. + Точката за монтиране вече се използва. Моля изберете друга. @@ -645,70 +680,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Създай потребител %1 - + Create user <strong>%1</strong>. Създай потребител <strong>%1</strong>. - + Creating user %1. Създаване на потребител %1. - + Sudoers dir is not writable. Директорията sudoers е незаписваема. - + Cannot create sudoers file for writing. Не може да се създаде sudoers файл за записване. - + Cannot chmod sudoers file. Не може да се изпълни chmod върху sudoers файла. - + Cannot open groups file for reading. Не може да се отвори файла на групите за четене. - - - Cannot create user %1. - Не може да се създаде потребител %1. - - - - useradd terminated with error code %1. - useradd прекратен с грешка, код %1. - - - - Cannot add user %1 to groups: %2. - Не може да бъе добавен потребител %1 към групи: %2. - - - - usermod terminated with error code %1. - usermod е прекратен с грешка %1. - - - - Cannot set home directory ownership for user %1. - Не може да се постави притежанието на домашната директория за потребител %1. - - - - chown terminated with error code %1. - chown прекратен с грешка, код %1. - DeletePartitionJob @@ -789,15 +794,15 @@ The installer will quit and all changes will be lost. Failed to open %1 - + Неуспешно отваряне на %1 DummyCppJob - + Dummy C++ Job - + Фиктивна С++ задача @@ -853,9 +858,9 @@ The installer will quit and all changes will be lost. Флагове: - + Mountpoint already in use. Please select another one. - Точкака на монтиране вече се използва. Моля изберете друга. + Точката за монтиране вече се използва. Моля изберете друга. @@ -883,7 +888,7 @@ The installer will quit and all changes will be lost. Please enter the same passphrase in both boxes. - + Моля, въведете еднаква парола в двете полета. @@ -942,12 +947,12 @@ The installer will quit and all changes will be lost. &Рестартирай сега - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Завършено.</h1><br/>%1 беше инсталирана на вашият компютър.<br/>Вече можете да рестартирате в новата си система или да продължите да използвате %2 Живата среда. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1003,7 +1008,7 @@ The installer will quit and all changes will be lost. Please install KDE Konsole and try again! - + Моля, инсталирайте KDE Konsole и опитайте отново! @@ -1022,12 +1027,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> Постави модел на клавиатурата на %1.<br/> - + Set keyboard layout to %1/%2. Постави оформлението на клавиатурата на %1/%2. @@ -1060,7 +1065,7 @@ The installer will quit and all changes will be lost. &OK - + &ОК @@ -1071,64 +1076,64 @@ The installer will quit and all changes will be lost. Форма - + I accept the terms and conditions above. Приемам лицензионните условия. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Лицензионно Споразумение</h1>Тази процедура ще инсталира несвободен софтуер, който е обект на лицензионни условия. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Моля погледнете Лицензионните Условия за Крайния Потребител (ЛУКП).<br/>Ако не сте съгласни с условията, процедурата не може да продължи. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Лицензионно Споразумение</h1>Тази процедура може да инсталира несвободен софтуер, който е обект на лицензионни условия, за да предостави допълнителни функции и да подобри работата на потребителя. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Моля погледнете Лицензионните Условия за Крайния Потребител (ЛУКП).<br/>Ако не сте съгласни с условията, несвободния софтуер няма да бъде инсталиран и ще бъдат използвани безплатни алтернативи. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 драйвър</strong><br/>от %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 графичен драйвър</strong><br/><font color="Grey">от %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 плъгин за браузър</strong><br/><font color="Grey">от %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 кодек</strong><br/><font color="Grey">от %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 пакет</strong><br/><font color="Grey">от %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">от %2</font> - + <a href="%1">view license agreement</a> <a href="%1">виж лицензионното споразумение</a> @@ -1146,7 +1151,7 @@ The installer will quit and all changes will be lost. The system language will be set to %1. - + Системният език ще бъде %1. @@ -1184,12 +1189,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... Зареждане на данните за местоположение - + Location Местоположение @@ -1197,22 +1202,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Име - + Description - + Описание - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1220,252 +1225,252 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection - + Избор на пакети PWQ - + Password is too short - + Паролата е твърде кратка - + Password is too long - + Паролата е твърде дълга - + Password is too weak - + Паролата е твърде слаба - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + Паролата съвпада с предишната - + The password is a palindrome - + Паролата е палиндром - + The password differs with case changes only - + The password is too similar to the old one - + Паролата е твърде сходна с предишната - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + Паролата е твърде кратка - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Липсва парола - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error - + Неизвестна грешка @@ -1602,34 +1607,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space Свободно пространство - - + + New partition Нов дял - + Name Име - + File System Файлова система - + Mount Point Точка на монтиране - + Size Размер @@ -1658,8 +1663,8 @@ The installer will quit and all changes will be lost. - &Create - &Създай + Cre&ate + @@ -1677,105 +1682,115 @@ The installer will quit and all changes will be lost. Инсталирай &устройството за начално зареждане върху: - + Are you sure you want to create a new partition table on %1? Сигурни ли сте че искате да създадете нова таблица на дяловете върху %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Събиране на системна информация... - + Partitions Дялове - + Install %1 <strong>alongside</strong> another operating system. Инсталирай %1 <strong>заедно</strong> с друга операционна система. - + <strong>Erase</strong> disk and install %1. <strong>Изтрий</strong> диска и инсталирай %1. - + <strong>Replace</strong> a partition with %1. <strong>Замени</strong> дял с %1. - + <strong>Manual</strong> partitioning. <strong>Ръчно</strong> поделяне. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Инсталирай %1 <strong>заедно</strong> с друга операционна система на диск <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Изтрий</strong> диск <strong>%2</strong> (%3) и инсталирай %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Замени</strong> дял на диск <strong>%2</strong> (%3) с %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ръчно</strong> поделяне на диск <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Диск <strong>%1</strong> (%2) - + Current: Сегашен: - + After: След: - + No EFI system partition configured Няма конфигуриран EFI системен дял - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. EFI системен дял е нужен за стартиране на %1.<br/><br/>За настройка на EFI системен дял се върнете назад и изберете или създайте FAT32 файлова система с включен <strong>esp</strong> флаг и точка на монтиране <strong>%2</strong>.<br/><br/>Може да продължите без EFI системен дял, но системата може да не успее да стартира. - + EFI system partition flag not set Не е зададен флаг на EFI системен дял - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. EFI системен дял е нужен за стартиране на %1.<br/><br/>Дялът беше конфигуриран с точка на монтиране <strong>%2</strong>, но неговия <strong>esp</strong> флаг не е включен.<br/>За да включите флага се върнете назад и редактирайте дяла.<br/><br/>Може да продължите без флага, но системата може да не успее да стартира. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1807,81 +1822,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Невалидни параметри за извикване на задача за процес. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1900,22 +1933,22 @@ Output: По подразбиране - + unknown неизвестна - + extended разширена - + unformatted неформатирана - + swap swap @@ -2008,52 +2041,52 @@ Output: Събиране на системна информация... - + has at least %1 GB available drive space има поне %1 ГБ свободено дисково пространство - + There is not enough drive space. At least %1 GB is required. Няма достатъчно дисково пространство. Необходимо е поне %1 ГБ. - + has at least %1 GB working memory има поне %1 ГБ работна памет - + The system does not have enough working memory. At least %1 GB is required. Системата не разполага с достатъчно работна памет. Необходима е поне %1 ГБ. - + is plugged in to a power source е включен към източник на захранване - + The system is not plugged in to a power source. Системата не е включена към източник на захранване. - + is connected to the Internet е свързан към интернет - + The system is not connected to the Internet. Системата не е свързана с интернет. - + The installer is not running with administrator rights. Инсталаторът не е стартиран с права на администратор. - + The screen is too small to display the installer. @@ -2097,29 +2130,29 @@ Output: SetHostNameJob - + Set hostname %1 Поставете име на хоста %1 - + Set hostname <strong>%1</strong>. Поставете име на хост <strong>%1</strong>. - + Setting hostname %1. Задаване името на хоста %1 - - + + Internal Error Вътрешна грешка - - + + Cannot write hostname to target system Не може да се запише името на хоста на целевата система @@ -2151,7 +2184,7 @@ Output: Failed to write keyboard configuration to existing /etc/default directory. - + Неуспешно записване на клавиатурна конфигурация в съществуващата директория /etc/default. @@ -2164,12 +2197,12 @@ Output: Set flags on %1MB %2 partition. - + Задай флагове на дял %1MB %2. Set flags on new partition. - + Задай флагове на нов дял. @@ -2179,12 +2212,12 @@ Output: Clear flags on %1MB <strong>%2</strong> partition. - + Изчисти флагове на дял %1MB <strong>%2</strong>. Clear flags on new partition. - + Изчисти флагове на нов дял. @@ -2194,12 +2227,12 @@ Output: Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - + Сложи флаг на дял %1MB <strong>%2</strong> като <strong>%3</strong>. Flag new partition as <strong>%1</strong>. - + Сложи флаг на новия дял като <strong>%1</strong>. @@ -2209,12 +2242,12 @@ Output: Clearing flags on %1MB <strong>%2</strong> partition. - + Изчистване флаговете на дял %1MB <strong>%2</strong>. Clearing flags on new partition. - + Изчистване на флаговете на новия дял. @@ -2224,12 +2257,12 @@ Output: Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - + Задаване на флагове <strong>%3</strong> на дял %1MB <strong>%2</strong>. Setting flags <strong>%1</strong> on new partition. - + Задаване на флагове <strong>%1</strong> на новия дял. @@ -2326,6 +2359,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2423,7 +2465,7 @@ Output: ... - + ... @@ -2496,7 +2538,7 @@ Output: UsersViewStep - + Users Потребители @@ -2554,7 +2596,7 @@ Output: - + %1 support %1 поддръжка @@ -2562,7 +2604,7 @@ Output: WelcomeViewStep - + Welcome Добре дошли diff --git a/lang/calamares_ca.ts b/lang/calamares_ca.ts index c9f76e58e..1a6f2b11c 100644 --- a/lang/calamares_ca.ts +++ b/lang/calamares_ca.ts @@ -9,12 +9,12 @@ This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>EFI</strong>. <br><br> Per configurar una arrencada des d'un entorn EFI, aquest instal·lador ha de desplegar una aplicació de càrrega d'arrencada, com ara el <strong>GRUB</strong> o el <strong>systemd-boot</strong> en una <strong>partició EFI del sistema</strong>. Això és automàtic, llevat que trieu un partiment manual, en què caldrà que ho configureu vosaltres mateixos. + Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>EFI</strong>. <br><br> Per configurar una arrencada des d'un entorn EFI, aquest instal·lador ha de desplegar l'aplicació d'un gestor d'arrencada, com ara el <strong>GRUB</strong> o el <strong>systemd-boot</strong> en una <strong>partició EFI del sistema</strong>. Això és automàtic, llevat que trieu fer les particions manualment, en què caldrà que ho configureu vosaltres mateixos. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>BIOS </strong>. Per configurar una arrencada des d'un entorn BIOS, aquest instal·lador ha d'instal·lar un carregador d'arrencada, com ara el <strong>GRUB</strong>, ja sigui al començament d'una partició o al <strong>Registre d'Arrencada Mestre</strong>, a prop del començament de la taula de particions (millor). Això és automàtic, llevat que trieu un partiment manual, en què caldrà que ho configureu pel vostre compte. + Aquest sistema s'ha iniciat amb un entorn d'arrencada <strong>BIOS </strong>.<br><br>Per configurar una arrencada des d'un entorn BIOS, aquest instal·lador ha d'instal·lar un gestor d'arrencada, com ara el <strong>GRUB</strong>, ja sigui al començament d'una partició o al <strong>MBR</strong>, a prop del començament de la taula de particions (millor). Això és automàtic, llevat que trieu fer les particions manualment, en què caldrà que ho configureu pel vostre compte. @@ -37,7 +37,7 @@ Do not install a boot loader - No instal·lis cap carregador d'arrencada + No instal·lis cap gestor d'arrencada @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Pàgina en blanc + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instal·la @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Fet @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Executa l'ordre %1 %2 - + Running command %1 %2 Executant l'ordre %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Executant l'operació %1. - + Bad working directory path - Ruta errònia del directori de treball + Camí incorrecte al directori de treball - + Working directory %1 for python job %2 is not readable. El directori de treball %1 per a la tasca python %2 no és llegible. - + Bad main script file Fitxer erroni d'script principal - + Main script file %1 for python job %2 is not readable. El fitxer de script principal %1 per a la tasca de python %2 no és llegible. - + Boost.Python error in job "%1". Error de Boost.Python a la tasca "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Enrere - + + &Next &Següent - - + + &Cancel &Cancel·la - - + + Cancel installation without changing the system. Cancel·leu la instal·lació sense canviar el sistema. - + + Calamares Initialization Failed + Ha fallat la inicialització de Calamares + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + No es pot instal·lar %1. Calamares no ha pogut carregar tots els mòduls configurats. Aquest és un problema amb la forma com Calamares és utilitzat per la distribució. + + + + <br/>The following modules could not be loaded: + <br/>No s'han pogut carregar els mòduls següents: + + + + &Install + &Instal·la + + + Cancel installation? Cancel·lar la instal·lació? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Voleu cancel·lar el procés d'instal·lació actual? L'instal·lador es tancarà i tots els canvis es perdran. - + &Yes &Sí - + &No &No - + &Close Tan&ca - + Continue with setup? Voleu continuar la configuració? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> L'instal·lador de %1 està a punt de fer canvis al disc per tal d'instal·lar-hi %2.<br/><strong>No podreu desfer aquests canvis.</strong> - + &Install now &Instal·la ara - + Go &back Vés &enrere - + &Done &Fet - + The installation is complete. Close the installer. La instal·lació s'ha acabat. Tanqueu l'instal·lador. - + Error Error - + Installation Failed La instal·lació ha fallat @@ -327,17 +356,17 @@ L'instal·lador es tancarà i tots els canvis es perdran. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - <strong>Partiment manual</strong><br/>Podeu crear o redimensionar les particions vosaltres mateixos. + <strong>Particions manuals</strong><br/>Podeu crear o redimensionar les particions vosaltres mateixos. Boot loader location: - Ubicació del carregador d'arrencada: + Ubicació del gestor d'arrencada: %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - %1 s'encongirà a %2MB i es crearà una partició nova de %3MB per a %4. + %1 s'encongirà a %2 MB i es crearà una partició nova de %3 MB per a %4. @@ -370,7 +399,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - No s'ha pogut trobar enlloc una partició EFI en aquest sistema. Si us plau, torneu enrere i useu el partiment manual per configurar %1. + No s'ha pogut trobar enlloc una partició EFI en aquest sistema. Si us plau, torneu enrere i use les particions manuals per configurar %1. @@ -430,17 +459,17 @@ L'instal·lador es tancarà i tots els canvis es perdran. ClearMountsJob - + Clear mounts for partitioning operations on %1 Neteja els muntatges per les operacions de partició a %1 - + Clearing mounts for partitioning operations on %1. Netejant els muntatges per a les operacions del particionament de %1. - + Cleared all mounts for %1 S'han netejat tots els muntatges de %1 @@ -450,7 +479,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. Clear all temporary mounts. - Neteja tots els muntatges temporals + Neteja tots els muntatges temporals. @@ -471,20 +500,26 @@ L'instal·lador es tancarà i tots els canvis es perdran. CommandList - + + Could not run command. No s'ha pogut executar l'ordre. - - No rootMountPoint is defined, so command cannot be run in the target environment. - No hi ha punt de muntatge d'arrel definit; per tant, no es pot executar l'ordre a l'entorn de destinació. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + L'odre s'executa a l'entorn de l'amfitrió i necessita saber el camí de l'arrel, però no hi ha definit el punt de muntatge de l'arrel. + + + + The command needs to know the user's name, but no username is defined. + L'ordre necessita saber el nom de l'usuari, però no s'ha definit cap nom d'usuari. ContextualProcessJob - + Contextual Processes Job Tasca de procés contextual @@ -504,7 +539,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. Partition &Type: - Partició & tipus: + &Tipus de partició: @@ -524,12 +559,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. LVM LV name - Nom per a LV LVM + Nom del volum lògic LVM Flags: - Banderes: + Indicadors: @@ -542,29 +577,29 @@ L'instal·lador es tancarà i tots els canvis es perdran. Mi&da: - + En&crypt En&cripta - + Logical Lògica - + Primary Primària - + GPT GPT - + Mountpoint already in use. Please select another one. - El punt de muntatge ja s'usa. Si us plau, seleccioneu-ne un altre. + El punt de muntatge ja està en ús. Si us plau, seleccioneu-ne un altre. @@ -572,12 +607,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. Create new %2MB partition on %4 (%3) with file system %1. - Crea una partició nova de %2MB a %4 (%3) amb el sistema de fitxers %1. + Crea una partició nova de %2 MB a %4 (%3) amb el sistema de fitxers %1. Create new <strong>%2MB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - Crea una partició nova de <strong>%2MB</strong> a <strong>%4</strong> (%3) amb el sistema de fitxers <strong>%1</strong>. + Crea una partició nova de <strong>%2 MB</strong> a <strong>%4</strong> (%3) amb el sistema de fitxers <strong>%1</strong>. @@ -623,12 +658,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. Create new %1 partition table on %2. - Crea una taula de particions %1 nova a %2. + Crea una nova taula de particions %1 a %2. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - Crea una taula de particions <strong>%1</strong> nova a <strong>%2</strong> (%3). + Crea una nova taula de particions <strong>%1</strong> a <strong>%2</strong> (%3). @@ -644,70 +679,40 @@ L'instal·lador es tancarà i tots els canvis es perdran. CreateUserJob - + Create user %1 Crea l'usuari %1 - + Create user <strong>%1</strong>. Crea l'usuari <strong>%1</strong>. - + Creating user %1. Creant l'usuari %1. - + Sudoers dir is not writable. El directori de sudoers no té permisos d'escriptura. - + Cannot create sudoers file for writing. No es pot crear el fitxer sudoers a escriure. - + Cannot chmod sudoers file. No es pot fer chmod al fitxer sudoers. - + Cannot open groups file for reading. No es pot obrir el fitxer groups per ser llegit. - - - Cannot create user %1. - No es pot crear l'usuari %1. - - - - useradd terminated with error code %1. - useradd ha acabat amb el codi d'error %1. - - - - Cannot add user %1 to groups: %2. - No es pot afegir l'usuari %1 als grups: %2. - - - - usermod terminated with error code %1. - usermod ha acabat amb el codi d'error %1. - - - - Cannot set home directory ownership for user %1. - No es pot establir la propietat del directori personal a l'usuari %1. - - - - chown terminated with error code %1. - chown ha acabat amb el codi d'error %1. - DeletePartitionJob @@ -724,12 +729,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. Deleting partition %1. - Eliminant la partició %1. + Suprimint la partició %1. The installer failed to delete partition %1. - L'instal·lador no ha pogut eliminar la partició %1. + L'instal·lador no ha pogut suprimir la partició %1. @@ -788,13 +793,13 @@ L'instal·lador es tancarà i tots els canvis es perdran. Failed to open %1 - Ha fallat obrir %1 + No s'ha pogut obrir %1 DummyCppJob - + Dummy C++ Job Tasca C++ fictícia @@ -819,7 +824,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. Format - Formatar + Formata @@ -849,12 +854,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. Flags: - Banderes: + Indicadors: - + Mountpoint already in use. Please select another one. - El punt de muntatge ja s'usa. Si us plau, seleccioneu-ne un altre. + El punt de muntatge ja està en ús. Si us plau, seleccioneu-ne un altre. @@ -882,7 +887,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. Please enter the same passphrase in both boxes. - Si us plau, escriviu la mateixa constrasenya a les dues caselles. + Si us plau, introduïu la mateixa contrasenya a les dues caselles. @@ -915,7 +920,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. Install boot loader on <strong>%1</strong>. - Instal·la el carregador d'arrencada a <strong>%1</strong>. + Instal·la el gestor d'arrencada a <strong>%1</strong>. @@ -933,7 +938,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - <html><head/><body><p>Quan aquesta casella està marcada, el sistema es reiniciarà immediatament quan cliqueu a <span style=" font-style:italic;">Fet</span> o tanqueu l'instal·lador.</p></body></html> + <html><head/><body><p>Quan aquesta casella està marcada, el sistema es reiniciarà immediatament quan feu clic a <span style=" font-style:italic;">Fet</span> o tanqueu l'instal·lador.</p></body></html> @@ -941,12 +946,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. &Reinicia ara - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - <h1>Tot fet.</h1><br/>%1 s'ha instal·lat al vostre ordinador.<br/>Ara podeu reiniciar-lo per tal d'accedir al sistema operatiu nou o bé continuar utilitzant l'entorn Live de %2. + <h1>Tot fet.</h1><br/>%1 s'ha instal·lat a l'ordinador.<br/>Ara podeu reiniciar-lo per tal d'accedir al sistema operatiu nou o bé continuar utilitzant l'entorn autònom de %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>La instal·lació ha fallat</h1><br/>No s'ha instal·lat %1 a l'ordinador.<br/>El missatge d'error ha estat el següent: %2. @@ -979,12 +984,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. - Formata la partició de <strong>%3MB</strong> <strong>%1</strong> amb el sistema de fitxers <strong>%2</strong>. + Formata la partició de <strong>%3 MB</strong> <strong>%1</strong> amb el sistema de fitxers <strong>%2</strong>. Formatting partition %1 with file system %2. - Formatant la partició %1 amb el sistema d'arxius %2. + Formatant la partició %1 amb el sistema de fitxers %2. @@ -1021,12 +1026,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. KeyboardPage - + Set keyboard model to %1.<br/> Assigna el model del teclat a %1.<br/> - + Set keyboard layout to %1/%2. Assigna la distribució del teclat a %1/%2. @@ -1070,64 +1075,64 @@ L'instal·lador es tancarà i tots els canvis es perdran. Formulari - + I accept the terms and conditions above. Accepto els termes i les condicions anteriors. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acord de llicència</h1> Aquest procediment de configuració instal·larà programari de propietat subjecte a termes de llicència. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Si us plau, reviseu l'acord de llicència End User License Agreements (EULAs) anterior.<br/>Si no esteu d'acord en els termes, el procediment de configuració no pot continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acord de llicència</h1> Aquest procediment de configuració instal·larà programari de propietat subjecte a termes de llicència per tal de proporcionar característiques addicionals i millorar l'experiència de l'usuari. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Si us plau, reviseu l'acord de llicència End User License Agreements (EULAs) anterior.<br/>Si no esteu d'acord en els termes, no s'instal·larà el programari de propietat i es faran servir les alternatives de codi lliure. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 controlador</strong><br/>de %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 controlador gràfic</strong><br/><font color="Grey">de %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 connector del navegador</strong><br/><font color="Grey">de %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 còdec</strong><br/><font color="Grey">de %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 paquet</strong><br/><font color="Grey">de %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">de %2</font> - + <a href="%1">view license agreement</a> <a href="%1">mostra l'acord de llicència</a> @@ -1166,7 +1171,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. &Change... - &Canvi... + &Canvia... @@ -1183,12 +1188,12 @@ L'instal·lador es tancarà i tots els canvis es perdran. LocaleViewStep - + Loading location data... Carregant les dades de la ubicació... - + Location Ubicació @@ -1196,22 +1201,22 @@ L'instal·lador es tancarà i tots els canvis es perdran. NetInstallPage - + Name Nom - + Description Descripció - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instal·lació per xarxa. (Inhabilitada: no es poden obtenir les llistes de paquets, comproveu la connexió.) - + Network Installation. (Disabled: Received invalid groups data) Instal·lació per xarxa. (Inhabilitat: dades de grups rebudes no vàlides) @@ -1219,7 +1224,7 @@ L'instal·lador es tancarà i tots els canvis es perdran. NetInstallViewStep - + Package selection Selecció de paquets @@ -1227,242 +1232,242 @@ L'instal·lador es tancarà i tots els canvis es perdran. PWQ - + Password is too short La contrasenya és massa curta. - + Password is too long La contrasenya és massa llarga. - + Password is too weak La contrasenya és massa dèbil. - + Memory allocation error when setting '%1' Error d'assignació de memòria en establir "%1" - + Memory allocation error Error d'assignació de memòria - + The password is the same as the old one La contrasenya és la mateixa que l'anterior. - + The password is a palindrome La contrasenya és un palíndrom. - + The password differs with case changes only La contrasenya només és diferent per les majúscules o minúscules. - + The password is too similar to the old one La contrasenya és massa semblant a l'anterior. - + The password contains the user name in some form La contrasenya conté el nom d'usuari d'alguna manera. - + The password contains words from the real name of the user in some form La contrasenya conté paraules del nom real de l'usuari d'alguna manera. - + The password contains forbidden words in some form La contrasenya conté paraules prohibides d'alguna manera. - + The password contains less than %1 digits La contrasenya és inferior a %1 dígits. - + The password contains too few digits La contrasenya conté massa pocs dígits. - + The password contains less than %1 uppercase letters La contrasenya conté menys de %1 lletres majúscules. - + The password contains too few uppercase letters La contrasenya conté massa poques lletres majúscules. - + The password contains less than %1 lowercase letters La contrasenya conté menys de %1 lletres minúscules. - + The password contains too few lowercase letters La contrasenya conté massa poques lletres minúscules. - + The password contains less than %1 non-alphanumeric characters La contrasenya conté menys de %1 caràcters no alfanumèrics. - + The password contains too few non-alphanumeric characters La contrasenya conté massa pocs caràcters no alfanumèrics. - + The password is shorter than %1 characters La contrasenya és més curta de %1 caràcters. - + The password is too short La contrasenya és massa curta. - + The password is just rotated old one La contrasenya és només l'anterior capgirada. - + The password contains less than %1 character classes La contrasenya conté menys de %1 classes de caràcters. - + The password does not contain enough character classes La contrasenya no conté prou classes de caràcters. - + The password contains more than %1 same characters consecutively La contrasenya conté més de %1 caràcters iguals consecutius. - + The password contains too many same characters consecutively La contrasenya conté massa caràcters iguals consecutius. - + The password contains more than %1 characters of the same class consecutively La contrasenya conté més de %1 caràcters consecutius de la mateixa classe. - + The password contains too many characters of the same class consecutively La contrasenya conté massa caràcters consecutius de la mateixa classe. - + The password contains monotonic sequence longer than %1 characters La contrasenya conté una seqüència monòtona més llarga de %1 caràcters. - + The password contains too long of a monotonic character sequence La contrasenya conté una seqüència monòtona de caràcters massa llarga. - + No password supplied No s'ha proporcionat cap contrasenya. - + Cannot obtain random numbers from the RNG device - No es poden obtenir números aleatoris del dispositiu RNG. + No es poden obtenir nombres aleatoris del dispositiu RNG. - + Password generation failed - required entropy too low for settings Ha fallat la generació de la contrasenya. Entropia necessària massa baixa per als paràmetres. - + The password fails the dictionary check - %1 La contrasenya no aprova la comprovació del diccionari: %1 - + The password fails the dictionary check La contrasenya no aprova la comprovació del diccionari. - + Unknown setting - %1 Paràmetre desconegut: %1 - + Unknown setting Paràmetre desconegut - + Bad integer value of setting - %1 Valor enter del paràmetre incorrecte: %1 - + Bad integer value Valor enter incorrecte - + Setting %1 is not of integer type El paràmetre %1 no és del tipus enter. - + Setting is not of integer type El paràmetre no és del tipus enter. - + Setting %1 is not of string type El paràmetre %1 no és del tipus cadena. - + Setting is not of string type El paràmetre no és del tipus cadena. - + Opening the configuration file failed Ha fallat obrir el fitxer de configuració. - + The configuration file is malformed El fitxer de configuració té una forma incorrecta. - + Fatal failure Fallada fatal - + Unknown error Error desconegut @@ -1601,34 +1606,34 @@ L'instal·lador es tancarà i tots els canvis es perdran. PartitionModel - - + + Free Space Espai lliure - - + + New partition Partició nova - + Name Nom - + File System Sistema de fitxers - + Mount Point Punt de muntatge - + Size Mida @@ -1657,8 +1662,8 @@ L'instal·lador es tancarà i tots els canvis es perdran. - &Create - &Crea + Cre&ate + Cre&a @@ -1668,113 +1673,123 @@ L'instal·lador es tancarà i tots els canvis es perdran. &Delete - &Suprimeix + E&limina Install boot &loader on: - &Instal·la el carregador d'arrencada a: + &Instal·la el gestor d'arrencada a: - + Are you sure you want to create a new partition table on %1? Esteu segurs que voleu crear una nova taula de particions a %1? + + + Can not create new partition + No es pot crear la partició nova + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + La taula de particions de %1 ja té %2 particions primàries i no se n'hi poden afegir més. Si us plau, suprimiu una partició primària i afegiu-hi una partició ampliada. + PartitionViewStep - + Gathering system information... Recopilant informació del sistema... - + Partitions Particions - + Install %1 <strong>alongside</strong> another operating system. Instal·la %1 <strong>al costat</strong> d'un altre sistema operatiu. - + <strong>Erase</strong> disk and install %1. <strong>Esborra</strong> el disc i instal·la-hi %1. - + <strong>Replace</strong> a partition with %1. <strong>Reemplaça</strong> una partició amb %1. - + <strong>Manual</strong> partitioning. - Partiment <strong>manual</strong>. + Particions <strong>manuals</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instal·la %1 <strong>al costat</strong> d'un altre sistema operatiu al disc <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Esborra</strong> el disc <strong>%2</strong> (%3) i instal·la-hi %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Reemplaça</strong> una partició del disc <strong>%2</strong> (%3) amb %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - Partiment <strong>manual</strong> del disc <strong>%1</strong> (%2). + Particions <strong>manuals</strong> del disc <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disc <strong>%1</strong> (%2) - + Current: Actual: - + After: Després: - + No EFI system partition configured No hi ha cap partició EFI de sistema configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Cal una partició EFI de sistema per iniciar %1. <br/><br/>Per configurar una partició EFI de sistema, torneu enrere i seleccioneu o creeu un sistema de fitxers FAT32 amb la bandera <strong>esp</strong> habilitada i el punt de muntatge <strong>%2</strong>. <br/><br/>Podeu continuar sense la creació d'una partició EFI de sistema, però el sistema podria no iniciar-se. - + EFI system partition flag not set No s'ha establert la bandera de la partició EFI del sistema - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Cal una partició EFI de sistema per iniciar %1. <br/><br/> Ja s'ha configurat una partició amb el punt de muntatge <strong>%2</strong> però no se n'ha establert la bandera <strong>esp</strong>. Per establir-la-hi, torneu enrere i editeu la partició. <br/><br/>Podeu continuar sense establir la bandera, però el sistema podria no iniciar-se. - + Boot partition not encrypted - Partició d'arrel no encriptada + Partició d'arrencada sense encriptar - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. S'ha establert una partició d'arrencada separada conjuntament amb una partició d'arrel encriptada, però la partició d'arrencada no està encriptada.<br/><br/>Hi ha aspectes de seguretat amb aquest tipus de configuració, perquè hi ha fitxers del sistema importants en una partició no encriptada.<br/>Podeu continuar, si així ho desitgeu, però el desbloqueig del sistema de fitxers succeirà després, durant l'inici del sistema.<br/>Per encriptar la partició d'arrencada, torneu enrere i torneu-la a crear seleccionant <strong>Encripta</strong> a la finestra de creació de la partició. @@ -1806,30 +1821,48 @@ L'instal·lador es tancarà i tots els canvis es perdran. Marcador de posició - - 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. - Si us plau, trieu un aspecte i comportament per a l'escriptori Plasma de KDE. També podeu saltar aquest pas i configurar-ho un cop instal·lat el sistema. + + 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. + Si us plau, trieu un aspecte i comportament per a l'escriptori Plasma de KDE. També podeu saltar aquest pas i configurar-ho un cop instal·lat el sistema. Quan cliqueu en una selecció d'aspecte i comportament podreu veure'n una previsualització. PlasmaLnfViewStep - + Look-and-Feel Aspecte i comportament + + PreserveFiles + + + Saving files for later ... + Desament de fitxers per a més tard... + + + + No files configured to save for later. + No s'ha configurat cap fitxer per desar per a més tard. + + + + Not all of the configured files could be preserved. + No es poden conservar tots els fitxers configurats. + + ProcessResult - + There was no output from the command. No hi ha hagut sortida de l'ordre. - + Output: @@ -1838,52 +1871,52 @@ Sortida: - + External command crashed. L'ordre externa ha fallat. - + Command <i>%1</i> crashed. L'ordre <i>%1</i> ha fallat. - + External command failed to start. L'ordre externa no s'ha pogut iniciar. - + Command <i>%1</i> failed to start. L'ordre <i>%1</i> no s'ha pogut iniciar. - + Internal error when starting command. Error intern en iniciar l'ordre. - + Bad parameters for process job call. Paràmetres incorrectes per a la crida de la tasca del procés. - + External command failed to finish. L'ordre externa no ha acabat correctament. - + Command <i>%1</i> failed to finish in %2 seconds. L'ordre <i>%1</i> no ha pogut acabar en %2 segons. - + External command finished with errors. L'ordre externa ha acabat amb errors. - + Command <i>%1</i> finished with exit code %2. L'ordre <i>%1</i> ha acabat amb el codi de sortida %2. @@ -1902,22 +1935,22 @@ Sortida: Per defecte - + unknown desconeguda - + extended ampliada - + unformatted sense format - + swap Intercanvi @@ -1982,7 +2015,7 @@ Sortida: <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - <strong>%2</strong><br/><br/>No es pot trobar cap partició EFI enlloc del sistema. Si us plau, torneu enrere i useu el partiment manual per establir %1. + <strong>%2</strong><br/><br/>No es pot trobar cap partició EFI enlloc del sistema. Si us plau, torneu enrere i useu les particions manuals per establir %1. @@ -2010,52 +2043,52 @@ Sortida: Recopilant informació del sistema... - + has at least %1 GB available drive space té com a mínim %1 GB d'espai de disc disponible. - + There is not enough drive space. At least %1 GB is required. No hi ha prou espai de disc disponible. Com a mínim hi ha d'haver %1 GB. - + has at least %1 GB working memory té com a mínim %1 GB de memòria de treball - + The system does not have enough working memory. At least %1 GB is required. El sistema no té prou memòria de treball. Com a mínim es necessita %1 GB. - + is plugged in to a power source està connectat a una font de corrent - + The system is not plugged in to a power source. El sistema no està connectat a una font de corrent. - + is connected to the Internet està connectat a Internet - + The system is not connected to the Internet. El sistema no està connectat a Internet. - + The installer is not running with administrator rights. L'instal·lador no s'ha executat amb privilegis d'administrador. - + The screen is too small to display the installer. La pantalla és massa petita per mostrar l'instal·lador. @@ -2099,31 +2132,31 @@ Sortida: SetHostNameJob - + Set hostname %1 - Assigna el nom de l'equip %1 + Estableix el nom d'amfitrió %1 - + Set hostname <strong>%1</strong>. - Establir el nom de l'hoste <strong>%1</strong>. + Estableix el nom d'amfitrió <strong>%1</strong>. - + Setting hostname %1. - Establint el nom de l'hoste %1. + Establint el nom d'amfitrió %1. - - + + Internal Error Error intern - - + + Cannot write hostname to target system - No s'ha pogut escriure el nom de l'equip al sistema de destinació + No es pot escriure el nom d'amfitrió al sistema de destinació @@ -2264,7 +2297,7 @@ Sortida: Cannot disable root account. - No es pot inhabilitar el compte d'arrel. + No es pot inhabilitar el compte de root. @@ -2274,7 +2307,7 @@ Sortida: Cannot set password for user %1. - No s'ha pogut assignar la contrasenya de l'usuari %1. + No es pot establir la contrasenya per a l'usuari %1. @@ -2292,12 +2325,12 @@ Sortida: Cannot access selected timezone path. - No es pot accedir a la ruta de la zona horària seleccionada. + No es pot accedir al camí a la zona horària seleccionada. Bad path: %1 - Ruta errònia: %1 + Camí incorrecte: %1 @@ -2328,6 +2361,15 @@ Sortida: Tasca de processos de l'intèrpret d'ordres + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2476,7 +2518,7 @@ Sortida: Your hostname is too short. - El nom d'usuari és massa curt. + El nom d'amfitrió és massa curt. @@ -2498,7 +2540,7 @@ Sortida: UsersViewStep - + Users Usuaris @@ -2538,7 +2580,7 @@ Sortida: <h1>Welcome to the %1 installer.</h1> - <h1>Benvinguts a l'instal·lador %1.</h1> + <h1>Benvingut a l'instal·lador de %1.</h1> @@ -2556,7 +2598,7 @@ Sortida: <h1>%1</h1><br/><strong>%2<br/>per a %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017, Adriaan de Groot &lt;groot@kde.org&gt;<br/>Agraïments: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg i l'<a href="https://www.transifex.com/calamares/calamares/">Equip de traducció del Calamares</a>.<br/><br/><a href="http://calamares.io/">El desenvolupament </a> del Calamares està patrocinat per <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 suport @@ -2564,9 +2606,9 @@ Sortida: WelcomeViewStep - + Welcome - Benvinguts + Benvingut \ No newline at end of file diff --git a/lang/calamares_cs_CZ.ts b/lang/calamares_cs_CZ.ts index f413aaba2..5e149cee6 100644 --- a/lang/calamares_cs_CZ.ts +++ b/lang/calamares_cs_CZ.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Prázdná stránka + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalovat @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Hotovo @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Spustit příkaz %1 %2 - + Running command %1 %2 Spouštění příkazu %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Spouštění %1 operace. - + Bad working directory path Chybný popis umístění pracovní složky - + Working directory %1 for python job %2 is not readable. Pracovní složku %1 pro Python skript %2 se nedaří otevřít pro čtení. - + Bad main script file Nesprávný soubor s hlavním skriptem - + Main script file %1 for python job %2 is not readable. Hlavní soubor %1 pro Python úlohu %2 se nedaří otevřít pro čtení.. - + Boost.Python error in job "%1". Boost.Python chyba ve skriptu „%1“. @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Zpět - + + &Next &Další - - + + &Cancel &Storno - - + + Cancel installation without changing the system. Zrušení instalace bez provedení změn systému. - + + Calamares Initialization Failed + Inicializace Calamares se nezdařila + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 nemůže být nainstalováno. Calamares nebylo schopné načíst všechny nastavené moduly. Toto je problém způsobu použití Calamares ve vámi používané distribuci. + + + + <br/>The following modules could not be loaded: + <br/> Následující moduly se nepodařilo načíst: + + + + &Install + Na&instalovat + + + Cancel installation? Přerušit instalaci? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Opravdu chcete přerušit instalaci? Instalační program bude ukončen a všechny změny ztraceny. - + &Yes &Ano - + &No &Ne - + &Close &Zavřít - + Continue with setup? Pokračovat s instalací? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Instalátor %1 provede změny na datovém úložišti, aby bylo nainstalováno %2.<br/><strong>Změny nebude možné vrátit zpět.</strong> - + &Install now &Spustit instalaci - + Go &back Jít &zpět - + &Done &Hotovo - + The installation is complete. Close the installer. Instalace je dokončena. Ukončete instalátor. - + Error Chyba - + Installation Failed Instalace se nezdařila @@ -430,17 +459,17 @@ Instalační program bude ukončen a všechny změny ztraceny. ClearMountsJob - + Clear mounts for partitioning operations on %1 Odpojit souborové systémy před zahájením dělení %1 na oddíly - + Clearing mounts for partitioning operations on %1. Odpojují se souborové systémy před zahájením dělení %1 na oddíly - + Cleared all mounts for %1 Všechny souborové systémy na %1 odpojeny @@ -471,20 +500,26 @@ Instalační program bude ukončen a všechny změny ztraceny. CommandList - + + Could not run command. Nedaří se spustit příkaz. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Nebyl určen žádný přípojný bod pro kořenový oddíl, takže příkaz nemohl být spuštěn v cílovém prostředí. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Příkaz bude spuštěn v prostředí hostitele a potřebuje znát popis umístění kořene souborového systému. rootMountPoint ale není zadaný. + + + + The command needs to know the user's name, but no username is defined. + Příkaz potřebuje znát uživatelské jméno, to ale zadáno nebylo. ContextualProcessJob - + Contextual Processes Job Úloha kontextuálních procesů @@ -542,27 +577,27 @@ Instalační program bude ukončen a všechny změny ztraceny. &Velikost: - + En&crypt Š&ifrovat - + Logical Logický - + Primary Primární - + GPT GPT - + Mountpoint already in use. Please select another one. Tento přípojný bod už je používán – vyberte jiný. @@ -644,70 +679,40 @@ Instalační program bude ukončen a všechny změny ztraceny. CreateUserJob - + Create user %1 Vytvořit uživatele %1 - + Create user <strong>%1</strong>. Vytvořit uživatele <strong>%1</strong>. - + Creating user %1. Vytváří se účet pro uživatele %1. - + Sudoers dir is not writable. Nepodařilo se zapsat do složky sudoers.d. - + Cannot create sudoers file for writing. Nepodařilo se vytvořit soubor pro sudoers do kterého je třeba zapsat. - + Cannot chmod sudoers file. Nepodařilo se změnit přístupová práva (chmod) na souboru se sudoers. - + Cannot open groups file for reading. Nepodařilo se otevřít soubor groups pro čtení. - - - Cannot create user %1. - Nepodařilo se vytvořit uživatele %1. - - - - useradd terminated with error code %1. - Příkaz useradd ukončen s chybovým kódem %1. - - - - Cannot add user %1 to groups: %2. - Nepodařilo se přidat uživatele %1 do skupin: %2. - - - - usermod terminated with error code %1. - Příkaz usermod ukončen s chybovým kódem %1. - - - - Cannot set home directory ownership for user %1. - Nepodařilo se nastavit vlastnictví domovské složky pro uživatele %1. - - - - chown terminated with error code %1. - Příkaz chown ukončen s chybovým kódem %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Instalační program bude ukončen a všechny změny ztraceny. DummyCppJob - + Dummy C++ Job Slepá úloha C++ @@ -852,7 +857,7 @@ Instalační program bude ukončen a všechny změny ztraceny. Příznaky: - + Mountpoint already in use. Please select another one. Tento přípojný bod je už používán – vyberte jiný. @@ -941,12 +946,12 @@ Instalační program bude ukončen a všechny změny ztraceny. &Restartovat nyní - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Instalace je u konce.</h1><br/>%1 byl nainstalován na váš počítač.<br/>Nyní ho můžete restartovat a přejít do čerstvě nainstalovaného systému, nebo můžete pokračovat v práci ve stávajícím prostředím %2, spuštěným z instalačního média. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalace se nezdařila</h1><br/>%1 nebyl instalován na váš počítač.<br/>Hlášení o chybě: %2. @@ -1021,12 +1026,12 @@ Instalační program bude ukončen a všechny změny ztraceny. KeyboardPage - + Set keyboard model to %1.<br/> Nastavit model klávesnice na %1.<br/> - + Set keyboard layout to %1/%2. Nastavit rozložení klávesnice na %1/%2. @@ -1070,64 +1075,64 @@ Instalační program bude ukončen a všechny změny ztraceny. Formulář - + I accept the terms and conditions above. Souhlasím s výše uvedenými podmínkami. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licenční ujednání</h1>Tato instalace nainstaluje také proprietární software, který podléhá licenčním podmínkám. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Projděte si výše uvedené „licenční smlouvy s koncovým uživatelem“ (EULA).<br/> Pokud s podmínkami v nich nesouhlasíte, ukončete instalační proces. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licenční ujednání</h1>Tato instalace může nainstalovat také proprietární software, který podléhá licenčním podmínkám, ale který poskytuje některé další funkce a zlepšuje uživatelskou přivětivost. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Projděte si výše uvedené „licenční smlouvy s koncovým uživatelem“ (EULA).<br/> Pokud s podmínkami v nich nesouhlasíte, místo proprietárního software budou použity open source alternativy. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 ovladač</strong><br/>od %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 ovladač grafiky</strong><br/><font color="Grey">od %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 doplněk prohlížeče</strong><br/><font color="Grey">od %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 kodek</strong><br/><font color="Grey">od %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 balíček</strong><br/><font color="Grey">od %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">od %2</font> - + <a href="%1">view license agreement</a> <a href="%1">zobrazit licenční ujednání</a> @@ -1183,12 +1188,12 @@ Instalační program bude ukončen a všechny změny ztraceny. LocaleViewStep - + Loading location data... Načítání informací o poloze… - + Location Poloha @@ -1196,22 +1201,22 @@ Instalační program bude ukončen a všechny změny ztraceny. NetInstallPage - + Name Jméno - + Description Popis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Síťová instalace. (Vypnuto: Nedaří se stáhnout seznamy balíčků – zkontrolujte připojení k síti) - + Network Installation. (Disabled: Received invalid groups data) Síťová instalace. (Vypnuto: Obdrženy neplatné údaje skupin) @@ -1219,7 +1224,7 @@ Instalační program bude ukončen a všechny změny ztraceny. NetInstallViewStep - + Package selection Výběr balíčků @@ -1227,242 +1232,242 @@ Instalační program bude ukončen a všechny změny ztraceny. PWQ - + Password is too short Heslo je příliš krátké - + Password is too long Heslo je příliš dlouhé - + Password is too weak Heslo je příliš slabé - + Memory allocation error when setting '%1' Chyba přidělování paměti při nastavování „%1“ - + Memory allocation error Chyba při přidělování paměti - + The password is the same as the old one Heslo je stejné jako to přechozí - + The password is a palindrome Heslo je palindrom (je stejné i pozpátku) - + The password differs with case changes only Heslo se liší pouze změnou velikosti písmen - + The password is too similar to the old one Heslo je příliš podobné tomu předchozímu - + The password contains the user name in some form Heslo obsahuje nějakou formou uživatelské jméno - + The password contains words from the real name of the user in some form Heslo obsahuje obsahuje nějakou formou slova ze jména uživatele - + The password contains forbidden words in some form Heslo obsahuje nějakou formou slova, která není možné použít - + The password contains less than %1 digits Heslo obsahuje méně než %1 číslic - + The password contains too few digits Heslo obsahuje příliš málo číslic - + The password contains less than %1 uppercase letters Heslo obsahuje méně než %1 velkých písmen - + The password contains too few uppercase letters Heslo obsahuje příliš málo velkých písmen - + The password contains less than %1 lowercase letters Heslo obsahuje méně než %1 malých písmen - + The password contains too few lowercase letters Heslo obsahuje příliš málo malých písmen - + The password contains less than %1 non-alphanumeric characters Heslo obsahuje méně než %1 speciálních znaků - + The password contains too few non-alphanumeric characters Heslo obsahuje příliš málo speciálních znaků - + The password is shorter than %1 characters Heslo je kratší než %1 znaků - + The password is too short Heslo je příliš krátké - + The password is just rotated old one Heslo je jen některé z předchozích - + The password contains less than %1 character classes Heslo obsahuje méně než %1 druhů znaků - + The password does not contain enough character classes Heslo není tvořeno dostatečným počtem druhů znaků - + The password contains more than %1 same characters consecutively Heslo obsahuje více než %1 stejných znaků za sebou - + The password contains too many same characters consecutively Heslo obsahuje příliš mnoho stejných znaků za sebou - + The password contains more than %1 characters of the same class consecutively Heslo obsahuje více než %1 znaků ze stejné třídy za sebou - + The password contains too many characters of the same class consecutively Heslo obsahuje příliš mnoho znaků ze stejné třídy za sebou - + The password contains monotonic sequence longer than %1 characters Heslo obsahuje monotónní posloupnost delší než %1 znaků - + The password contains too long of a monotonic character sequence Heslo obsahuje příliš dlouhou monotónní posloupnost - + No password supplied Nebylo zadáno žádné heslo - + Cannot obtain random numbers from the RNG device Nedaří se získat náhodná čísla ze zařízení generátoru náhodných čísel (RNG) - + Password generation failed - required entropy too low for settings Vytvoření hesla se nezdařilo – úroveň nahodilosti je příliš nízká - + The password fails the dictionary check - %1 Heslo je slovníkové – %1 - + The password fails the dictionary check Heslo je slovníkové - + Unknown setting - %1 Neznámé nastavení – %1 - + Unknown setting Neznámé nastavení - + Bad integer value of setting - %1 Chybná celočíselná hodnota nastavení – %1 - + Bad integer value Chybná celočíselná hodnota - + Setting %1 is not of integer type Nastavení %1 není typu celé číslo - + Setting is not of integer type Nastavení není typu celé číslo - + Setting %1 is not of string type Nastavení %1 není typu řetězec - + Setting is not of string type Nastavení není typu řetězec - + Opening the configuration file failed Nepodařilo se otevřít soubor s nastaveními - + The configuration file is malformed Soubor s nastaveními nemá správný formát - + Fatal failure Fatální nezdar - + Unknown error Neznámá chyba @@ -1601,34 +1606,34 @@ Instalační program bude ukončen a všechny změny ztraceny. PartitionModel - - + + Free Space Volné místo - - + + New partition Nový oddíl - + Name Název - + File System Souborový systém - + Mount Point Přípojný bod - + Size Velikost @@ -1657,8 +1662,8 @@ Instalační program bude ukončen a všechny změny ztraceny. - &Create - &Vytvořit + Cre&ate + Vytv&ořit @@ -1676,105 +1681,115 @@ Instalační program bude ukončen a všechny změny ztraceny. Nainstalovat &zavaděč na: - + Are you sure you want to create a new partition table on %1? Opravdu chcete na %1 vytvořit novou tabulku oddílů? + + + Can not create new partition + Nevytvářet nový oddíl + + + + 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. + Tabulka oddílů na %1 už obsahuje %2 hlavních oddílů a proto už není možné přidat další. Odeberte jeden z hlavních oddílů a namísto něj vytvořte rozšířený oddíl. + PartitionViewStep - + Gathering system information... Shromažďování informací o systému… - + Partitions Oddíly - + Install %1 <strong>alongside</strong> another operating system. Nainstalovat %1 <strong>vedle</strong> dalšího operačního systému. - + <strong>Erase</strong> disk and install %1. <strong>Smazat</strong> obsah jednotky a nainstalovat %1. - + <strong>Replace</strong> a partition with %1. <strong>Nahradit</strong> oddíl %1. - + <strong>Manual</strong> partitioning. <strong>Ruční</strong> dělení jednotky. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Nainstalovat %1 <strong>vedle</strong> dalšího operačního systému na disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Vymazat</strong> obsah jednotky <strong>%2</strong> (%3) a nainstalovat %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Nahradit</strong> oddíl na jednotce <strong>%2</strong> (%3) %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ruční</strong> dělení jednotky <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Jednotka <strong>%1</strong> (%2) - + Current: Stávající: - + After: Potom: - + No EFI system partition configured Není nastavený žádný EFI systémový oddíl - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Pro spuštění %1 je potřeba EFI systémový oddíl.<br/><br/>Pro nastavení EFI systémového oddílu se vraťte zpět a vyberte nebo vytvořte oddíl typu FAT32 s příznakem <strong>esp</strong> a přípojným bodem <strong>%2</strong>.<br/><br/>Je možné pokračovat bez nastavení EFI systémového oddílu, ale systém nemusí jít spustit. - + EFI system partition flag not set Příznak EFI systémového oddílu není nastavený - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Pro spuštění %1 je potřeba EFI systémový oddíl.<br/><br/>Byl nastaven oddíl s přípojným bodem <strong>%2</strong> ale nemá nastaven příznak <strong>esp</strong>.<br/>Pro nastavení příznaku se vraťte zpět a upravte oddíl.<br/><br/>Je možné pokračovat bez nastavení příznaku, ale systém nemusí jít spustit. - + Boot partition not encrypted Zaváděcí oddíl není šifrován - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Kromě šifrovaného kořenového oddílu byl vytvořen i nešifrovaný oddíl zavaděče.<br/><br/>To by mohl být bezpečnostní problém, protože na nešifrovaném oddílu jsou důležité soubory systému.<br/>Pokud chcete, můžete pokračovat, ale odemykání souborového systému bude probíhat později při startu systému.<br/>Pro zašifrování oddílu zavaděče se vraťte a vytvořte ho vybráním možnosti <strong>Šifrovat</strong> v okně při vytváření oddílu. @@ -1806,30 +1821,48 @@ Instalační program bude ukončen a všechny změny ztraceny. Výplň - - 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. - Zvolte vzhled a chování KDE Plasma desktopu. Také můžete tento krok přeskočit a nastavení provést až v nainstalovaném systému. + + 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. + Zvolte vzhled a chování KDE Plasma desktopu. Tento krok je také možné přeskočit a nastavit až po instalaci systému. Kliknutí na výběr vyvolá zobrazení náhledu daného vzhledu a chování. PlasmaLnfViewStep - + Look-and-Feel Vzhled a dojem z + + PreserveFiles + + + Saving files for later ... + Ukládání souborů pro pozdější využití… + + + + No files configured to save for later. + U žádných souborů nebylo nastaveno, že mají být uloženy pro pozdější využití. + + + + Not all of the configured files could be preserved. + Ne všechny nastavené soubory bylo možné zachovat. + + ProcessResult - + There was no output from the command. Příkaz neposkytl žádný výstup. - + Output: @@ -1838,52 +1871,52 @@ Výstup: - + External command crashed. Vnější příkaz byl neočekávaně ukončen. - + Command <i>%1</i> crashed. Příkaz <i>%1</i> byl neočekávaně ukončen. - + External command failed to start. Vnější příkaz se nepodařilo spustit. - + Command <i>%1</i> failed to start. Příkaz <i>%1</i> se nepodařilo spustit. - + Internal error when starting command. Vnitřní chyba při spouštění příkazu. - + Bad parameters for process job call. Chybné parametry volání úlohy procesu.. - + External command failed to finish. Vnější příkaz se nepodařilo dokončit. - + Command <i>%1</i> failed to finish in %2 seconds. Příkaz <i>%1</i> se nepodařilo dokončit do %2 sekund. - + External command finished with errors. Vnější příkaz skončil s chybami. - + Command <i>%1</i> finished with exit code %2. Příkaz <i>%1</i> skončil s návratovým kódem %2. @@ -1902,22 +1935,22 @@ Výstup: Výchozí - + unknown neznámý - + extended rozšířený - + unformatted nenaformátovaný - + swap odkládací oddíl @@ -2010,52 +2043,52 @@ Výstup: Shromažďování informací o systému… - + has at least %1 GB available drive space má minimálně %1 GB dostupného místa na jednotce - + There is not enough drive space. At least %1 GB is required. Nedostatek místa na úložišti. Je potřeba nejméně %1 GB. - + has at least %1 GB working memory má alespoň %1 GB operační paměti - + The system does not have enough working memory. At least %1 GB is required. Systém nemá dostatek operační paměti. Je potřeba nejméně %1 GB. - + is plugged in to a power source je připojený ke zdroji napájení - + The system is not plugged in to a power source. Systém není připojen ke zdroji napájení. - + is connected to the Internet je připojený k Internetu - + The system is not connected to the Internet. Systém není připojený k Internetu. - + The installer is not running with administrator rights. Instalační program není spuštěn s právy správce systému. - + The screen is too small to display the installer. Rozlišení obrazovky je příliš malé pro zobrazení instalátoru. @@ -2099,29 +2132,29 @@ Výstup: SetHostNameJob - + Set hostname %1 Nastavit název počítače %1 - + Set hostname <strong>%1</strong>. Nastavit název počítače <strong>%1</strong>. - + Setting hostname %1. Nastavuje se název počítače %1. - - + + Internal Error Vnitřní chyba - - + + Cannot write hostname to target system Název počítače se nedaří zapsat do cílového systému @@ -2328,6 +2361,15 @@ Výstup: Úloha shellových procesů + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2498,7 +2540,7 @@ Výstup: UsersViewStep - + Users Uživatelé @@ -2556,7 +2598,7 @@ Výstup: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg a <a href="https://www.transifex.com/calamares/calamares/">tým překledatelů Calamares</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> vývoj je sponzorován <br/><a href="http://www.blue-systems.com/">Blue Systems</a> – Liberating Software. - + %1 support %1 podpora @@ -2564,7 +2606,7 @@ Výstup: WelcomeViewStep - + Welcome Vítejte diff --git a/lang/calamares_da.ts b/lang/calamares_da.ts index c1122d135..7cfef1875 100644 --- a/lang/calamares_da.ts +++ b/lang/calamares_da.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Tom side + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Installation @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Færdig @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Kør kommando %1 %2 - + Running command %1 %2 Kører kommando %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Kører %1-handling. - + Bad working directory path Ugyldig arbejdsmappesti - + Working directory %1 for python job %2 is not readable. Arbejdsmappen %1 til python-jobbet %2 er ikke læsbar. - + Bad main script file Ugyldig primær skriptfil - + Main script file %1 for python job %2 is not readable. Primær skriptfil %1 til python-jobbet %2 er ikke læsbar. - + Boost.Python error in job "%1". Boost.Python-fejl i job "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Tilbage - + + &Next &Næste - - + + &Cancel &Annullér - - + + Cancel installation without changing the system. Annullér installation uden at ændre systemet. - + + Calamares Initialization Failed + Initiering af Calamares mislykkedes + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 kan ikke installeres. Calamares kunne ikke indlæse alle de konfigurerede moduler. Det er et problem med den måde Calamares bruges på af distributionen. + + + + <br/>The following modules could not be loaded: + <br/>Følgende moduler kunne ikke indlæses: + + + + &Install + &Installér + + + Cancel installation? Annullér installationen? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Vil du virkelig annullere den igangværende installationsproces? Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. - + &Yes &Ja - + &No &Nej - + &Close &Luk - + Continue with setup? Fortsæt med opsætningen? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - %1-installationsprogrammet er ved at foretage ændringer til din disk for at installere %2. <br/><strong>Det vil ikke være muligt at fortryde ændringerne.</strong> + %1-installationsprogrammet er ved at foretage ændringer til din disk for at installere %2.<br/><strong>Det vil ikke være muligt at fortryde ændringerne.</strong> - + &Install now &Installér nu - + Go &back Gå &tilbage - + &Done &Færdig - + The installation is complete. Close the installer. Installationen er fuldført. Luk installationsprogrammet. - + Error Fejl - + Installation Failed Installation mislykkedes @@ -430,17 +459,17 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. ClearMountsJob - + Clear mounts for partitioning operations on %1 Ryd monteringspunkter for partitioneringshandlinger på %1 - + Clearing mounts for partitioning operations on %1. Rydder monteringspunkter for partitioneringshandlinger på %1. - + Cleared all mounts for %1 Ryddede alle monteringspunkter til %1 @@ -471,20 +500,26 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. CommandList - + + Could not run command. Kunne ikke køre kommando. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Der er ikke defineret nogen rootMountPoint, så kommandoen kan ikke køre i målmiljøet. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Kommandoen kører i værtsmiljøet og har brug for at kende rodstien, men der er ikke defineret nogen rootMountPoint. + + + + The command needs to know the user's name, but no username is defined. + Kommandoen har brug for at kende brugerens navn, men der er ikke defineret noget brugernavn. ContextualProcessJob - + Contextual Processes Job Kontekstuelt procesjob @@ -542,27 +577,27 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.&Størrelse: - + En&crypt Kryp&tér - + Logical Logisk - + Primary Primær - + GPT GPT - + Mountpoint already in use. Please select another one. Monteringspunktet er allerede i brug. Vælg venligst et andet. @@ -615,7 +650,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. GUID Partition Table (GPT) - GUID-partitiontabel (GPT) + GUID-partitionstabel (GPT) @@ -644,70 +679,40 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. CreateUserJob - + Create user %1 Opret bruger %1 - + Create user <strong>%1</strong>. Opret bruger <strong>%1</strong>. - + Creating user %1. Opretter bruger %1. - + Sudoers dir is not writable. Sudoers mappe er skrivebeskyttet. - + Cannot create sudoers file for writing. Kan ikke oprette sudoers fil til skrivning. - + Cannot chmod sudoers file. Kan ikke chmod sudoers fil. - + Cannot open groups file for reading. Kan ikke åbne gruppernes fil til læsning. - - - Cannot create user %1. - Kan ikke oprette bruger %1. - - - - useradd terminated with error code %1. - useradd stoppet med fejlkode %1. - - - - Cannot add user %1 to groups: %2. - Kan ikke tilføje bruger %1 til grupperne: %2. - - - - usermod terminated with error code %1. - usermod stoppet med fejlkode %1. - - - - Cannot set home directory ownership for user %1. - Kan ikke sætte hjemmemappens ejerskab for bruger %1. - - - - chown terminated with error code %1. - chown stoppet med fejlkode %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. DummyCppJob - + Dummy C++ Job Dummy C++-job @@ -852,7 +857,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Flag: - + Mountpoint already in use. Please select another one. Monteringspunktet er allerede i brug. Vælg venligst et andet. @@ -941,12 +946,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.&Genstart nu - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Færdig.</h1><br/>%1 er blevet installeret på din computer.<br/>Du kan nu genstarte for at komme ind i dit nye system eller fortsætte med at bruge %2 live-miljøet. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation mislykkede</h1><br/>%1 er ikke blevet installeret på din computer.<br/>Fejlmeddelelsen var: %2. @@ -1021,12 +1026,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. KeyboardPage - + Set keyboard model to %1.<br/> Sæt tastaturmodel til %1.<br/> - + Set keyboard layout to %1/%2. Sæt tastaturlayout til %1/%2. @@ -1070,64 +1075,64 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Formular - + I accept the terms and conditions above. Jeg accepterer de ovenstående vilkår og betingelser. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licensaftale</h1>Opsætningsproceduren installerer proprietær software der er underlagt licenseringsvilkår. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Gennemgå venligst slutbrugerlicensaftalerne (EULA'er) ovenfor.<br/>Hvis du ikke er enig med disse vilkår, kan opsætningsproceduren ikke fortsætte. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licensaftale</h1>Opsætningsproceduren kan installere proprietær software der er underlagt licenseringsvilkår, for at kunne tilbyde yderligere funktionaliteter og forbedre brugeroplevelsen. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Gennemgå venligst slutbrugerlicensaftalerne (EULA'er) ovenfor.<br/>Hvis du ikke er enig med disse vilkår vil der ikke blive installeret proprietær software, og open source-alternativer vil blive brugt i stedet. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 driver</strong><br/>af %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 grafikdriver</strong><br/><font color="Grey">af %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 browser-plugin</strong><br/><font color="Grey">af %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">af %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 pakke</strong><br/><font color="Grey">af %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">af %2</font> - + <a href="%1">view license agreement</a> <a href="%1">vis licensaftalen</a> @@ -1183,12 +1188,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. LocaleViewStep - + Loading location data... Indlæser placeringsdata... - + Location Placering @@ -1196,22 +1201,22 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. NetInstallPage - + Name Navn - + Description Beskrivelse - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Netværksinstallation. (Deaktiveret: Kunne ikke hente pakkelister, tjek din netværksforbindelse) - + Network Installation. (Disabled: Received invalid groups data) Netværksinstallation. (Deaktiveret: Modtog ugyldige gruppers data) @@ -1219,7 +1224,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. NetInstallViewStep - + Package selection Valg af pakke @@ -1227,242 +1232,242 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. PWQ - + Password is too short Adgangskoden er for kort - + Password is too long Adgangskoden er for lang - + Password is too weak Adgangskoden er for svag - + Memory allocation error when setting '%1' - Fejl ved allokering af hukommelse ved sættelse af '%1' + Fejl ved allokering af hukommelse da '%1' blev sat - + Memory allocation error Fejl ved allokering af hukommelse - + The password is the same as the old one Adgangskoden er den samme som den gamle - + The password is a palindrome Adgangskoden er et palindrom - + The password differs with case changes only Adgangskoden har kun ændringer i store/små bogstaver - + The password is too similar to the old one Adgangskoden minder for meget om den gamle - + The password contains the user name in some form - Adgangskoden indeholde i nogen form brugernavnet + Adgangskoden indeholder i nogen form brugernavnet - + The password contains words from the real name of the user in some form Adgangskoden indeholder i nogen form ord fra brugerens rigtige navn - + The password contains forbidden words in some form Adgangskoden indeholder i nogen form forbudte ord - + The password contains less than %1 digits - Adgangskoden indeholder færre end %1 tal + Adgangskoden indeholder færre end %1 cifre - + The password contains too few digits - Adgangskoden indeholder for få tal + Adgangskoden indeholder for få cifre - + The password contains less than %1 uppercase letters Adgangskoden indeholder færre end %1 bogstaver med stort - + The password contains too few uppercase letters Adgangskoden indeholder for få bogstaver med stort - + The password contains less than %1 lowercase letters Adgangskoden indeholder færre end %1 bogstaver med småt - + The password contains too few lowercase letters Adgangskoden indeholder for få bogstaver med småt - + The password contains less than %1 non-alphanumeric characters Adgangskoden indeholder færre end %1 ikke-alfanumeriske tegn - + The password contains too few non-alphanumeric characters Adgangskoden indeholder for få ikke-alfanumeriske tegn - + The password is shorter than %1 characters Adgangskoden er kortere end %1 tegn - + The password is too short Adgangskoden er for kort - + The password is just rotated old one Adgangskoden er blot det gamle hvor der er byttet om på tegnene - + The password contains less than %1 character classes Adgangskoden indeholder færre end %1 tegnklasser - + The password does not contain enough character classes Adgangskoden indeholder ikke nok tegnklasser - + The password contains more than %1 same characters consecutively Adgangskoden indeholder flere end %1 af de samme tegn i træk - + The password contains too many same characters consecutively Adgangskoden indeholder for mange af de samme tegn i træk - + The password contains more than %1 characters of the same class consecutively Adgangskoden indeholder flere end %1 tegn af den samme klasse i træk - + The password contains too many characters of the same class consecutively Adgangskoden indeholder for mange tegn af den samme klasse i træk - + The password contains monotonic sequence longer than %1 characters Adgangskoden indeholder monoton sekvens som er længere end %1 tegn - + The password contains too long of a monotonic character sequence Adgangskoden indeholder en monoton tegnsekvens som er for lang - + No password supplied Der er ikke angivet nogen adgangskode - + Cannot obtain random numbers from the RNG device Kan ikke få tilfældige tal fra RNG-enhed - + Password generation failed - required entropy too low for settings Generering af adgangskode mislykkedes - krævede entropi er for lav til indstillinger - + The password fails the dictionary check - %1 Adgangskoden bestod ikke ordbogstjekket - %1 - + The password fails the dictionary check Adgangskoden bestod ikke ordbogstjekket - + Unknown setting - %1 Ukendt indstilling - %1 - + Unknown setting Ukendt indstilling - + Bad integer value of setting - %1 - Dårlig heltalsværdi til indstilling - %1 + Ugyldig heltalsværdi til indstilling - %1 - + Bad integer value Ugyldig heltalsværdi - + Setting %1 is not of integer type Indstillingen %1 er ikke en helttalsstype - + Setting is not of integer type Indstillingen er ikke en helttalsstype - + Setting %1 is not of string type Indstillingen %1 er ikke en strengtype - + Setting is not of string type Indstillingen er ikke en strengtype - + Opening the configuration file failed Åbningen af konfigurationsfilen mislykkedes - + The configuration file is malformed Konfigurationsfilen er forkert udformet - + Fatal failure Fatal fejl - + Unknown error Ukendt fejl @@ -1601,34 +1606,34 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. PartitionModel - - + + Free Space Ledig plads - - + + New partition Ny partition - + Name Navn - + File System Filsystem - + Mount Point Monteringspunkt - + Size Størrelse @@ -1657,7 +1662,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt. - &Create + Cre&ate &Opret @@ -1676,105 +1681,115 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Installér boot&loader på: - + Are you sure you want to create a new partition table on %1? Er du sikker på, at du vil oprette en ny partitionstabel på %1? + + + Can not create new partition + Kan ikke oprette ny partition + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + Partitionstabellen på %1 har allerede %2 primære partitioner, og der kan ikke tilføjes flere. Fjern venligst en primær partition og tilføj i stedet en udviddet partition. + PartitionViewStep - + Gathering system information... Indsamler systeminformation... - + Partitions Partitioner - + Install %1 <strong>alongside</strong> another operating system. Installér %1 <strong>ved siden af</strong> et andet styresystem. - + <strong>Erase</strong> disk and install %1. <strong>Slet</strong> disk og installér %1. - + <strong>Replace</strong> a partition with %1. <strong>Erstat</strong> en partition med %1. - + <strong>Manual</strong> partitioning. <strong>Manuel</strong> partitionering. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installér %1 <strong>ved siden af</strong> et andet styresystem på disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Slet</strong> disk <strong>%2</strong> (%3) og installér %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Erstat</strong> en partition på disk <strong>%2</strong> (%3) med %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manuel</strong> partitionering på disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Nuværende: - + After: Efter: - + No EFI system partition configured Ingen EFI-systempartition konfigureret - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. En EFI-systempartition er nødvendig for at starte %1.<br/><br/>For at konfigurere en EFI-systempartition skal du gå tilbage og vælge eller oprette et FAT32-filsystem med <strong>esp</strong>-flaget aktiveret og monteringspunkt <strong>%2</strong>.<br/><br/>Du kan fortsætte uden at opsætte en EFI-systempartition, men dit system vil muligvis ikke kunne starte. - + EFI system partition flag not set EFI-systempartitionsflag ikke sat - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. En EFI-systempartition er nødvendig for at starte %1.<br/><br/>En partition var konfigureret med monteringspunkt <strong>%2</strong>, men dens <strong>esp</strong>-flag var ikke sat.<br/>For at sætte flaget skal du gå tilbage og redigere partitionen.<br/><br/>Du kan fortsætte uden at konfigurere flaget, men dit system vil muligvis ikke kunne starte. - + Boot partition not encrypted Bootpartition ikke krypteret - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. En separat bootpartition blev opsat sammen med en krypteret rodpartition, men bootpartitionen er ikke krypteret.<br/><br/>Der er sikkerhedsmæssige bekymringer med denne slags opsætning, da vigtige systemfiler er gemt på en ikke-krypteret partition.<br/>Du kan fortsætte hvis du vil, men oplåsning af filsystemet sker senere under systemets opstart.<br/>For at kryptere bootpartitionen skal du gå tilbage og oprette den igen, vælge <strong>Kryptér</strong> i partitionsoprettelsesvinduet. @@ -1806,30 +1821,48 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.Pladsholder - - 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. - Vælg venligst et udseende og fremtoning til KDE Plasma-skrivebordet. Du kan også springe trinnet over og konfigurere udseendet og fremtoningen når systemet er installeret. + + 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. + Vælg venligst et udseende og fremtoning til KDE Plasma-skrivebordet. Du kan også springe trinnet over og konfigurere udseendet og fremtoningen når systemet er installeret. Ved klik på et udseende og fremtoning giver det dig en live forhåndsvisning af det. PlasmaLnfViewStep - + Look-and-Feel Udseende og fremtoning + + PreserveFiles + + + Saving files for later ... + Gemmer filer til senere ... + + + + No files configured to save for later. + Ingen filer er konfigureret til at blive gemt til senere. + + + + Not all of the configured files could be preserved. + Kunne ikke bevare alle de konfigurerede filer. + + ProcessResult - + There was no output from the command. Der var ikke nogen output fra kommandoen. - + Output: @@ -1838,52 +1871,52 @@ Output: - + External command crashed. Ekstern kommando holdt op med at virke. - + Command <i>%1</i> crashed. - Kommandoen <i>%1</i> holdet op med at virke. + Kommandoen <i>%1</i> holdte op med at virke. - + External command failed to start. Ekstern kommando kunne ikke starte. - + Command <i>%1</i> failed to start. Kommandoen <i>%1</i> kunne ikke starte. - + Internal error when starting command. - Intern kommando ved start af kommando. + Intern fejl ved start af kommando. - + Bad parameters for process job call. Ugyldige parametre til kald af procesjob. - + External command failed to finish. Ekstern kommando blev ikke færdig. - + Command <i>%1</i> failed to finish in %2 seconds. Kommandoen <i>%1</i> blev ikke færdig på %2 sekunder. - + External command finished with errors. Ekstern kommando blev færdig med fejl. - + Command <i>%1</i> finished with exit code %2. Kommandoen <i>%1</i> blev færdig med afslutningskoden %2. @@ -1902,22 +1935,22 @@ Output: Standard - + unknown ukendt - + extended udvidet - + unformatted uformatteret - + swap swap @@ -2010,52 +2043,52 @@ Output: Indsamler systeminformation... - + has at least %1 GB available drive space har mindst %1 GB ledig plads på drevet - + There is not enough drive space. At least %1 GB is required. Der er ikke nok ledig plads på drevet. Mindst %1 GB er påkrævet. - + has at least %1 GB working memory har mindst %1 GB arbejdshukommelse - + The system does not have enough working memory. At least %1 GB is required. Systemet har ikke nok arbejdshukommelse. Mindst %1 GB er påkrævet. - + is plugged in to a power source er tilsluttet en strømkilde - + The system is not plugged in to a power source. Systemet er ikke tilsluttet en strømkilde. - + is connected to the Internet er forbundet til internettet - + The system is not connected to the Internet. Systemet er ikke forbundet til internettet. - + The installer is not running with administrator rights. Installationsprogrammet kører ikke med administratorrettigheder. - + The screen is too small to display the installer. Skærmen er for lille til at vise installationsprogrammet. @@ -2099,29 +2132,29 @@ Output: SetHostNameJob - + Set hostname %1 Sæt værtsnavn %1 - + Set hostname <strong>%1</strong>. Sæt værtsnavn <strong>%1</strong>. - + Setting hostname %1. Sætter værtsnavn %1. - - + + Internal Error Intern fejl - - + + Cannot write hostname to target system Kan ikke skrive værtsnavn til destinationssystem @@ -2328,6 +2361,15 @@ Output: Skal-procesjob + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1/%L2 + + SummaryPage @@ -2354,7 +2396,7 @@ Output: Sending installation feedback. - Sender installationsfeedback + Sender installationsfeedback. @@ -2388,7 +2430,7 @@ Output: Could not configure machine feedback correctly, script error %1. - Kunne ikke konfigurere maskinfeedback korrekt, script-fejl %1. + Kunne ikke konfigurere maskinfeedback korrekt, skript-fejl %1. @@ -2498,7 +2540,7 @@ Output: UsersViewStep - + Users Brugere @@ -2556,7 +2598,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>til %3</strong><br/><br/>Ophavsret 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Ophavsret 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Tak til: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg og <a href="https://www.transifex.com/calamares/calamares/">Calamares oversætterteam</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> udvikling er sponsoreret af <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 support @@ -2564,7 +2606,7 @@ Output: WelcomeViewStep - + Welcome Velkommen diff --git a/lang/calamares_de.ts b/lang/calamares_de.ts index 60e2372ba..05681ff69 100644 --- a/lang/calamares_de.ts +++ b/lang/calamares_de.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Leere Seite + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Installieren @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Fertig @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Führe Befehl %1%2 aus - + Running command %1 %2 Befehl %1 %2 wird ausgeführt @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Operation %1 wird ausgeführt. - + Bad working directory path Fehlerhafter Arbeitsverzeichnis-Pfad - + Working directory %1 for python job %2 is not readable. Arbeitsverzeichnis %1 für Python-Job %2 ist nicht lesbar. - + Bad main script file Fehlerhaftes Hauptskript - + Main script file %1 for python job %2 is not readable. Hauptskript-Datei %1 für Python-Job %2 ist nicht lesbar. - + Boost.Python error in job "%1". Boost.Python-Fehler in Job "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Zurück - + + &Next &Weiter - - + + &Cancel &Abbrechen - - + + Cancel installation without changing the system. Installation abbrechen, ohne das System zu verändern. - + + Calamares Initialization Failed + Initialisierung von Calamares fehlgeschlagen + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 kann nicht installiert werden. Calamares war nicht in der Lage, alle konfigurierten Module zu laden. Dieses Problem hängt mit der Art und Weise zusammen, wie Calamares von der jeweiligen Distribution eingesetzt wird. + + + + <br/>The following modules could not be loaded: + <br/>Die folgenden Module konnten nicht geladen werden: + + + + &Install + &Installieren + + + Cancel installation? Installation abbrechen? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Wollen Sie wirklich die aktuelle Installation abbrechen? Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. - + &Yes &Ja - + &No &Nein - + &Close &Schließen - + Continue with setup? Setup fortsetzen? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Das %1 Installationsprogramm wird Änderungen an Ihrer Festplatte vornehmen, um %2 zu installieren.<br/><strong>Diese Änderungen können nicht rückgängig gemacht werden.</strong> - + &Install now Jetzt &installieren - + Go &back Gehe &zurück - + &Done &Erledigt - + The installation is complete. Close the installer. Die Installation ist abgeschlossen. Schließe das Installationsprogramm. - + Error Fehler - + Installation Failed Installation gescheitert @@ -430,17 +459,17 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. ClearMountsJob - + Clear mounts for partitioning operations on %1 Leere Mount-Points für Partitioning-Operation auf %1 - + Clearing mounts for partitioning operations on %1. Löse eingehängte Laufwerke für die Partitionierung von %1 - + Cleared all mounts for %1 Alle Mount-Points für %1 geleert @@ -471,22 +500,28 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. CommandList - + + Could not run command. - + Befehl konnte nicht ausgeführt werden. - - No rootMountPoint is defined, so command cannot be run in the target environment. - + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Dieser Befehl wird im installierten System ausgeführt und muss daher den Root-Pfad kennen, jedoch wurde kein rootMountPoint definiert. + + + + The command needs to know the user's name, but no username is defined. + Dieser Befehl benötigt den Benutzernamen, jedoch ist kein Benutzername definiert. ContextualProcessJob - + Contextual Processes Job - + Job für kontextuale Prozesse @@ -524,7 +559,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. LVM LV name - + LVM LV Name @@ -542,27 +577,27 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Grö&sse: - + En&crypt Verschlüsseln - + Logical Logisch - + Primary Primär - + GPT GPT - + Mountpoint already in use. Please select another one. Dieser Einhängepunkt wird schon benuztzt. Bitte wählen Sie einen anderen. @@ -644,70 +679,40 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. CreateUserJob - + Create user %1 Erstelle Benutzer %1 - + Create user <strong>%1</strong>. Erstelle Benutzer <strong>%1</strong>. - + Creating user %1. Erstelle Benutzer %1. - + Sudoers dir is not writable. Sudoers-Verzeichnis ist nicht beschreibbar. - + Cannot create sudoers file for writing. Kann sudoers-Datei nicht zum Schreiben erstellen. - + Cannot chmod sudoers file. Kann chmod nicht auf sudoers-Datei anwenden. - + Cannot open groups file for reading. Kann groups-Datei nicht zum Lesen öffnen. - - - Cannot create user %1. - Kann Benutzer %1 nicht erstellen. - - - - useradd terminated with error code %1. - useradd wurde mit Fehlercode %1 beendet. - - - - Cannot add user %1 to groups: %2. - Folgenden Gruppen konnte Benutzer %1 nicht hinzugefügt werden: %2. - - - - usermod terminated with error code %1. - Usermod beendet mit Fehlercode %1. - - - - Cannot set home directory ownership for user %1. - Kann Besitzrechte des Home-Verzeichnisses von Benutzer %1 nicht setzen. - - - - chown terminated with error code %1. - chown wurde mit Fehlercode %1 beendet. - DeletePartitionJob @@ -794,7 +799,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -852,7 +857,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Markierungen: - + Mountpoint already in use. Please select another one. Der Einhängepunkt wird schon benutzt. Bitte wählen Sie einen anderen. @@ -933,7 +938,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Wenn diese Option aktiviert ist, genügt zum Neustart des Systems ein Klick auf <span style=" font-style:italic;">Fertig</span> oder das Schließen des Installationsprogramms.</p></body></html> @@ -941,12 +946,12 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Jetzt &Neustarten - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Alles erledigt.</h1><br/>%1 wurde auf Ihrem Computer installiert.<br/>Sie können nun in Ihr neues System neustarten oder mit der %2 Live-Umgebung fortfahren. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation fehlgeschlagen</h1><br/>%1 wurde nicht auf deinem Computer installiert.<br/>Die Fehlermeldung lautet: %2. @@ -1021,12 +1026,12 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. KeyboardPage - + Set keyboard model to %1.<br/> Setze Tastaturmodell auf %1.<br/> - + Set keyboard layout to %1/%2. Setze Tastaturbelegung auf %1/%2. @@ -1070,64 +1075,64 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Formular - + I accept the terms and conditions above. Ich akzeptiere die obigen Allgemeinen Geschäftsbedingungen. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Lizenzvereinbarung</h1>Dieses Installationsprogramm wird proprietäre Software installieren, welche Lizenzbedingungen unterliegt. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Bitte überprüfen Sie die obigen Lizenzvereinbarungen für Endbenutzer (EULAs).<br/>Wenn Sie mit diesen Bedingungen nicht einverstanden sind, kann das Installationsprogramm nicht fortgesetzt werden. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1> Lizenzvereinbarung </ h1> Dieses Installationsprogramm kann proprietäre Software installieren, welche Lizenzbedingungen unterliegt, um zusätzliche Funktionen bereitzustellen und die Benutzerfreundlichkeit zu verbessern. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Bitte überprüfen Sie die obigen Lizenzvereinbarungen für Endbenutzer (EULAs).<br/>Wenn Sie mit diesen Bedingungen nicht einverstanden sind, wird keine proprietäre Software installiert werden. Stattdessen werden quelloffene Alternativen verwendet. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 Treiber</strong><br/>by %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 Grafiktreiber</strong><br/><font color="Grey">von %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 Browser-Plugin</strong><br/><font color="Grey">von %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 Codec</strong><br/><font color="Grey">von %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 Paket</strong><br/><font color="Grey">von %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">von %2</font> - + <a href="%1">view license agreement</a> <a href="%1">Lizenzvereinbarung anzeigen</a> @@ -1183,12 +1188,12 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. LocaleViewStep - + Loading location data... Lade Standortdaten... - + Location Standort @@ -1196,22 +1201,22 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. NetInstallPage - + Name Name - + Description Beschreibung - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Netzwerk-Installation. (Deaktiviert: Paketlisten nicht erreichbar, prüfe deine Netzwerk-Verbindung) - + Network Installation. (Disabled: Received invalid groups data) Netwerk-Installation. (Deaktiviert: Ungültige Gruppen-Daten eingegeben) @@ -1219,7 +1224,7 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. NetInstallViewStep - + Package selection Paketauswahl @@ -1227,244 +1232,244 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. PWQ - + Password is too short Das Passwort ist zu kurz - + Password is too long Das Passwort ist zu lang - + Password is too weak - + Das Passwort ist zu schwach - + Memory allocation error when setting '%1' - + Fehler bei der Speicherzuweisung beim Einrichten von '%1' - + Memory allocation error - + Fehler bei der Speicherzuweisung - + The password is the same as the old one - + Das Passwort ist dasselbe wie das alte - + The password is a palindrome - + Das Passwort ist ein Palindrom - + The password differs with case changes only - + Das Passwort unterscheidet sich nur durch Groß- und Kleinschreibung - + The password is too similar to the old one - + Das Passwort ist dem alten zu ähnlich - + The password contains the user name in some form - + Das Passwort enthält eine Form des Benutzernamens - + The password contains words from the real name of the user in some form - + Das Passwort enthält Teile des Klarnamens des Benutzers - + The password contains forbidden words in some form - + Das Passwort enthält verbotene Wörter - + The password contains less than %1 digits - + Das Passwort hat weniger als %1 Stellen - + The password contains too few digits - + Das Passwort hat zu wenige Stellen - + The password contains less than %1 uppercase letters - + Das Passwort enthält weniger als %1 Großbuchstaben - + The password contains too few uppercase letters - + Das Passwort enthält zu wenige Großbuchstaben - + The password contains less than %1 lowercase letters - + Das Passwort enthält weniger als %1 Kleinbuchstaben - + The password contains too few lowercase letters - + Das Passwort enthält zu wenige Kleinbuchstaben - + The password contains less than %1 non-alphanumeric characters - + Das Passwort enthält weniger als %1 nicht-alphanumerische Zeichen - + The password contains too few non-alphanumeric characters - + Das Passwort enthält zu wenige nicht-alphanumerische Zeichen - + The password is shorter than %1 characters - + Das Passwort hat weniger als %1 Stellen - + The password is too short - + Das Passwort ist zu kurz - + The password is just rotated old one - + Das Passwort wurde schon einmal verwendet - + The password contains less than %1 character classes - + Das Passwort enthält weniger als %1 verschiedene Zeichenarten - + The password does not contain enough character classes - + Das Passwort enthält nicht genügend verschiedene Zeichenarten - + The password contains more than %1 same characters consecutively - + Das Passwort enthält mehr als %1 gleiche Zeichen am Stück - + The password contains too many same characters consecutively - + Das Passwort enthält zu viele gleiche Zeichen am Stück - + The password contains more than %1 characters of the same class consecutively - + Das Passwort enthält mehr als %1 gleiche Zeichenarten am Stück - + The password contains too many characters of the same class consecutively - + Das Passwort enthält zu viele gleiche Zeichenarten am Stück - + The password contains monotonic sequence longer than %1 characters - + Das Passwort enthält eine gleichartige Sequenz von mehr als %1 Zeichen - + The password contains too long of a monotonic character sequence - + Das Passwort enthält eine gleichartige Sequenz von zu großer Länge - + No password supplied - + Kein Passwort angegeben - + Cannot obtain random numbers from the RNG device - + Zufallszahlen konnten nicht vom Zufallszahlengenerator abgerufen werden - + Password generation failed - required entropy too low for settings - + Passwortgeneration fehlgeschlagen - Zufallszahlen zu schwach für die gewählten Einstellungen - + The password fails the dictionary check - %1 - + Das Passwort besteht den Wörterbuch-Test nicht - %1 - + The password fails the dictionary check - + Das Passwort besteht den Wörterbuch-Test nicht - + Unknown setting - %1 - + Unbekannte Einstellung - %1 - + Unknown setting - + Unbekannte Einstellung - + Bad integer value of setting - %1 - + Fehlerhafter Integerwert der Einstellung - %1 - + Bad integer value - + Fehlerhafter Integerwert - + Setting %1 is not of integer type - + Die Einstellung %1 ist kein Integerwert - + Setting is not of integer type - + Die Einstellung ist kein Integerwert - + Setting %1 is not of string type - + Die Einstellung %1 ist keine Zeichenkette - + Setting is not of string type - + Die Einstellung ist keine Zeichenkette - + Opening the configuration file failed - + Öffnen der Konfigurationsdatei fehlgeschlagen - + The configuration file is malformed - + Die Konfigurationsdatei ist falsch strukturiert - + Fatal failure - + Fataler Fehler - + Unknown error - + Unbekannter Fehler @@ -1601,34 +1606,34 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. PartitionModel - - + + Free Space Freier Platz - - + + New partition Neue Partition - + Name Name - + File System Dateisystem - + Mount Point Einhängepunkt - + Size Grösse @@ -1657,8 +1662,8 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. - &Create - &Erstellen + Cre&ate + Erstellen @@ -1676,105 +1681,115 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Installiere Boot&loader auf: - + Are you sure you want to create a new partition table on %1? Sind Sie sicher, dass Sie eine neue Partitionstabelle auf %1 erstellen möchten? + + + Can not create new partition + Neue Partition kann nicht erstellt werden + + + + 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. + Die Partitionstabelle auf %1 hat bereits %2 primäre Partitionen und weitere können nicht hinzugefügt werden. Bitte entfernen Sie eine primäre Partition und fügen Sie stattdessen eine erweiterte Partition hinzu. + PartitionViewStep - + Gathering system information... Sammle Systeminformationen... - + Partitions Partitionen - + Install %1 <strong>alongside</strong> another operating system. Installiere %1 <strong>neben</strong> einem anderen Betriebssystem. - + <strong>Erase</strong> disk and install %1. <strong>Lösche</strong> Festplatte und installiere %1. - + <strong>Replace</strong> a partition with %1. <strong>Ersetze</strong> eine Partition durch %1. - + <strong>Manual</strong> partitioning. <strong>Manuelle</strong> Partitionierung. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). %1 <strong>parallel</strong> zu einem anderen Betriebssystem auf der Festplatte <strong>%2</strong> (%3) installieren. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. Festplatte <strong>%2</strong> <strong>löschen</strong> (%3) und %1 installieren. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. Eine Partition auf Festplatte <strong>%2</strong> (%3) durch %1 <strong>ersetzen</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manuelle</strong> Partitionierung auf Festplatte <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Festplatte <strong>%1</strong> (%2) - + Current: Aktuell: - + After: Nachher: - + No EFI system partition configured Keine EFI-Systempartition konfiguriert - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Eine EFI Systempartition wird benötigt, um %1 zu starten.<br/><br/>Um eine EFI Systempartition einzurichten, gehen Sie zurück und wählen oder erstellen Sie ein FAT32-Dateisystem mit einer aktivierten <strong>esp</strong> Markierung sowie <strong>%2</strong> als Einhängepunkt .<br/><br/>Sie können ohne die Einrichtung einer EFI-Systempartition fortfahren, aber ihr System wird unter Umständen nicht starten können. - + EFI system partition flag not set Die Markierung als EFI-Systempartition wurde nicht gesetzt - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Eine EFI Systempartition wird benötigt, um %1 zu starten.<br/><br/>Eine Partition mit dem Einhängepunkt <strong>%2</strong> wurd eingerichtet, jedoch wurde dort keine <strong>esp</strong> Markierung gesetzt.<br/>Um diese Markierung zu setzen, gehen Sie zurück und bearbeiten Sie die Partition.<br/><br/>Sie können ohne diese Markierung fortfahren, aber ihr System wird unter Umständen nicht starten können. - + Boot partition not encrypted Bootpartition nicht verschlüsselt - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Eine separate Bootpartition wurde zusammen mit einer verschlüsselten Rootpartition erstellt, die Bootpartition ist aber unverschlüsselt.<br/><br/> Dies ist sicherheitstechnisch nicht optimal, da wichtige Systemdateien auf der unverschlüsselten Bootpartition gespeichert werden.<br/>Wenn Sie wollen, können Sie fortfahren, aber das Entschlüsseln des Dateisystems wird erst später während des Systemstarts erfolgen.<br/>Um die Bootpartition zu verschlüsseln, gehen Sie zurück und erstellen Sie diese neu, indem Sie bei der Partitionierung <strong>Verschlüsseln</strong> wählen. @@ -1784,13 +1799,13 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Plasma Look-and-Feel Job - + Job für das Erscheinungsbild von Plasma Could not select KDE Plasma Look-and-Feel package - + Das Paket für das Erscheinungsbild von KDE Plasma konnte nicht ausgewählt werden @@ -1806,83 +1821,104 @@ Dies wird das Installationsprogramm beenden und alle Änderungen gehen verloren. Platzhalter - - 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. - + + 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. + Bitte wählen Sie das Erscheinungsbild für den KDE Plasma Desktop. Sie können diesen Schritt auch überspringen und das Erscheinungsbild festlegen, sobald das System installiert ist. Per Klick auf einen Eintrag können Sie sich eine Vorschau dieses Erscheinungsbildes anzeigen lassen. PlasmaLnfViewStep - + Look-and-Feel - + Erscheinungsbild + + + + PreserveFiles + + + Saving files for later ... + Speichere Dateien für später ... + + + + No files configured to save for later. + Keine Dateien für das Speichern zur späteren Verwendung konfiguriert. + + + + Not all of the configured files could be preserved. + Nicht alle konfigurierten Dateien konnten erhalten werden. ProcessResult - + There was no output from the command. - + +Dieser Befehl hat keine Ausgabe erzeugt. - + Output: - + +Ausgabe: + - + External command crashed. - + Externes Programm abgestürzt. - + Command <i>%1</i> crashed. - + Programm <i>%1</i> abgestürzt. - + External command failed to start. - + Externes Programm konnte nicht gestartet werden. - + Command <i>%1</i> failed to start. - + Das Programm <i>%1</i> konnte nicht gestartet werden. - + Internal error when starting command. - + Interner Fehler beim Starten des Programms. - + Bad parameters for process job call. Ungültige Parameter für Prozessaufruf. - + External command failed to finish. - + Externes Programm konnte nicht abgeschlossen werden. - + Command <i>%1</i> failed to finish in %2 seconds. - + Programm <i>%1</i> konnte nicht innerhalb von %2 Sekunden abgeschlossen werden. - + External command finished with errors. - + Externes Programm mit Fehlern beendet. - + Command <i>%1</i> finished with exit code %2. - + Befehl <i>%1</i> beendet mit Exit-Code %2. @@ -1899,22 +1935,22 @@ Output: Standard - + unknown unbekannt - + extended erweitert - + unformatted unformatiert - + swap Swap @@ -2007,52 +2043,52 @@ Output: Sammle Systeminformationen... - + has at least %1 GB available drive space mindestens %1 GB freien Festplattenplatz hat - + There is not enough drive space. At least %1 GB is required. Der Speicherplatz auf der Festplatte ist unzureichend. Es wird mindestens %1 GB benötigt. - + has at least %1 GB working memory hat mindestens %1 GB Arbeitsspeicher - + The system does not have enough working memory. At least %1 GB is required. Das System hat nicht genug Arbeitsspeicher. Es wird mindestens %1GB benötigt. - + is plugged in to a power source ist an eine Stromquelle angeschlossen - + The system is not plugged in to a power source. Das System ist an keine Stromquelle angeschlossen. - + is connected to the Internet ist mit dem Internet verbunden - + The system is not connected to the Internet. Das System ist nicht mit dem Internet verbunden. - + The installer is not running with administrator rights. Das Installationsprogramm wird nicht mit Administratorrechten ausgeführt. - + The screen is too small to display the installer. Der Bildschirm ist zu klein, um das Installationsprogramm anzuzeigen. @@ -2096,29 +2132,29 @@ Output: SetHostNameJob - + Set hostname %1 Setze Computername auf %1 - + Set hostname <strong>%1</strong>. Setze Computernamen <strong>%1</strong>. - + Setting hostname %1. Setze Computernamen %1. - - + + Internal Error Interner Fehler - - + + Cannot write hostname to target system Kann den Computernamen nicht auf das Zielsystem schreiben @@ -2322,7 +2358,16 @@ Output: Shell Processes Job - + Job für Shell-Prozesse + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 @@ -2346,22 +2391,22 @@ Output: Installation feedback - Installationsrückmeldung + Rückmeldungen zur Installation Sending installation feedback. - Senden der Installationsrückmeldung + Senden der Rückmeldungen zur Installation. Internal error in install-tracking. - + Interner Fehler bei der Überwachung der Installation. HTTP request timed out. - + Zeitüberschreitung bei HTTP-Anfrage @@ -2369,28 +2414,28 @@ Output: Machine feedback - + Rückinformationen zum Computer Configuring machine feedback. - + Konfiguriere Rückmeldungen zum Computer. Error in machine feedback configuration. - + Fehler bei der Konfiguration der Rückmeldungen zum Computer Could not configure machine feedback correctly, script error %1. - + Rückmeldungen zum Computer konnten nicht korrekt konfiguriert werden, Skriptfehler %1. Could not configure machine feedback correctly, Calamares error %1. - + Rückmeldungen zum Computer konnten nicht korrekt konfiguriert werden, Calamares-Fehler %1. @@ -2408,14 +2453,14 @@ Output: <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Ist diese Option aktiviert, werden <span style=" font-weight:600;">keinerlei Informationen</span> über Ihre Installation gesendet.</p></body></html> TextLabel - Text Label + TextLabel @@ -2427,27 +2472,27 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klicken sie hier für weitere Informationen über Benutzer-Rückmeldungen</span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - + Rückinformationen über die Installation helfen %1 festzustellen, wieviele Menschen es benutzen und auf welcher Hardware sie %1 installieren. Mit den beiden letzten Optionen gestatten Sie die Erhebung kontinuierlicher Informationen über Ihre bevorzugte Software. Um zu prüfen, welche Informationen gesendet werden, klicken Sie bitte auf das Hilfesymbol neben dem jeweiligen Abschnitt. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - Wenn Sie diese Option auswählen, senden Sie Informationen zu Ihrer Installation und Hardware. Diese Informationen werden nur einmal nach Abschluss der Installation gesendet. + Wenn Sie diese Option auswählen, senden Sie Informationen zu Ihrer Installation und Hardware. Diese Informationen werden <b>nur einmalig</b> nach Abschluss der Installation gesendet. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Wenn Sie dies auswählen, senden Sie regelmäßig Informationen zu Ihrer Installation, Hardware und Anwendungen an %1. + Wenn Sie diese Option auswählen, senden Sie <b>regelmäßig</b> Informationen zu Installation, Hardware und Anwendungen an %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Wenn Sie dies auswählen, senden Sie regelmäßig Informationen über Ihre Installation, Hardware, Anwendungen und Nutzungsmuster an %1. + Wenn Sie diese Option auswählen, senden Sie <b>regelmäßig</b> Informationen zu Installation, Hardware, Anwendungen und Nutzungsmuster an %1. @@ -2455,7 +2500,7 @@ Output: Feedback - Feedback + Rückmeldung @@ -2495,7 +2540,7 @@ Output: UsersViewStep - + Users Benutzer @@ -2550,10 +2595,10 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>für %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Dank an: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg und das <a href="https://www.transifex.com/calamares/calamares/">Calamares Übersetzerteam</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> wird unterstützt von <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support Unterstützung für %1 @@ -2561,7 +2606,7 @@ Output: WelcomeViewStep - + Welcome Willkommen diff --git a/lang/calamares_el.ts b/lang/calamares_el.ts index 5c081c20e..ad2491e1f 100644 --- a/lang/calamares_el.ts +++ b/lang/calamares_el.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Εγκατάσταση @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Ολοκληρώθηκε @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Εκτέλεση εντολής %1 %2 - + Running command %1 %2 Εκτελείται η εντολή %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Εκτελείται η λειτουργία %1. - + Bad working directory path Λανθασμένη διαδρομή καταλόγου εργασίας - + Working directory %1 for python job %2 is not readable. Ο ενεργός κατάλογος %1 για την εργασία python %2 δεν είναι δυνατόν να διαβαστεί. - + Bad main script file Λανθασμένο κύριο αρχείο δέσμης ενεργειών - + Main script file %1 for python job %2 is not readable. Η κύρια δέσμη ενεργειών %1 για την εργασία python %2 δεν είναι δυνατόν να διαβαστεί. - + Boost.Python error in job "%1". Σφάλμα Boost.Python στην εργασία "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Προηγούμενο - + + &Next &Επόμενο - - + + &Cancel &Ακύρωση - - + + Cancel installation without changing the system. + Ακύρωση της εγκατάστασης χωρίς αλλαγές στο σύστημα. + + + + Calamares Initialization Failed - + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Ακύρωση της εγκατάστασης; - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Θέλετε πραγματικά να ακυρώσετε τη διαδικασία εγκατάστασης; Το πρόγραμμα εγκατάστασης θα τερματιστεί και όλες οι αλλαγές θα χαθούν. - + &Yes &Ναι - + &No - + &Όχι - + &Close - + &Κλείσιμο - + Continue with setup? Συνέχεια με την εγκατάσταση; - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Το πρόγραμμα εγκατάστασης %1 θα κάνει αλλαγές στον δίσκο για να εγκαταστήσετε το %2.<br/><strong>Δεν θα είστε σε θέση να αναιρέσετε τις αλλαγές.</strong> - + &Install now Ε&γκατάσταση τώρα - + Go &back Μετάβαση πί&σω - + &Done - + The installation is complete. Close the installer. - + Η εγκτάσταση ολοκληρώθηκε. Κλείστε το πρόγραμμα εγκατάστασης. - + Error Σφάλμα - + Installation Failed Η εγκατάσταση απέτυχε @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 Καθαρίστηκαν όλες οι προσαρτήσεις για %1 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. &Μέγεθος: - + En&crypt - + Logical Λογική - + Primary Πρωτεύουσα - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Δημιουργία χρήστη %1 - + Create user <strong>%1</strong>. Δημιουργία χρήστη <strong>%1</strong>. - + Creating user %1. Δημιουργείται ο χρήστης %1. - + Sudoers dir is not writable. Ο κατάλογος sudoers δεν είναι εγγράψιμος. - + Cannot create sudoers file for writing. Δεν είναι δυνατή η δημιουργία του αρχείου sudoers για εγγραφή. - + Cannot chmod sudoers file. Δεν είναι δυνατό το chmod στο αρχείο sudoers. - + Cannot open groups file for reading. Δεν είναι δυνατό το άνοιγμα του αρχείου ομάδων για ανάγνωση. - - - Cannot create user %1. - Δεν είναι δυνατή η δημιουργία του χρήστη %1. - - - - useradd terminated with error code %1. - Το useradd τερματίστηκε με κωδικό σφάλματος %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - Δεν είναι δυνατός ο ορισμός της ιδιοκτησία του προσωπικού καταλόγου για τον χρήστη %1. - - - - chown terminated with error code %1. - Το chown τερματίστηκε με κωδικό σφάλματος %1. - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. Σημαίες: - + Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. Ε&πανεκκίνηση τώρα - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Η εγκατάσταση ολοκληρώθηκε.</h1><br/>Το %1 εγκαταστήθηκε στον υπολογιστή.<br/>Τώρα, μπορείτε να επανεκκινήσετε τον υπολογιστή σας ή να συνεχίσετε να δοκιμάζετε το %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> Ορισμός του μοντέλου πληκτρολογίου σε %1.<br/> - + Set keyboard layout to %1/%2. Ορισμός της διάταξης πληκτρολογίου σε %1/%2. @@ -1070,64 +1075,64 @@ The installer will quit and all changes will be lost. Τύπος - + I accept the terms and conditions above. Δέχομαι τους παραπάνω όρους και προϋποθέσεις. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Άδεια χρήσης</h1>Η διαδικασία ρύθμισης θα εγκαταστήσει ιδιόκτητο λογισμικό που υπόκειται στους όρους αδειών. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Άδεια χρήσης</h1>Η διαδικασία ρύθμισης θα εγκαταστήσει ιδιόκτητο λογισμικό που υπόκειται στους όρους αδειών προκειμένου να παρέχει πρόσθετες δυνατότητες και να ενισχύσει την εμπειρία του χρήστη. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>οδηγός %1</strong><br/>από %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 οδηγός κάρτας γραφικών</strong><br/><font color="Grey">από %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 πρόσθετο περιηγητή</strong><br/><font color="Grey">από %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>κωδικοποιητής %1</strong><br/><font color="Grey">από %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>πακέτο %1</strong><br/><font color="Grey">από %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">από %2</font> - + <a href="%1">view license agreement</a> <a href="%1">εμφάνιση άδειας χρήσης</a> @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... Γίνεται φόρτωση των δεδομένων τοποθεσίας... - + Location Τοποθεσία @@ -1196,22 +1201,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Όνομα - + Description Περιγραφή - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Επιλογή πακέτου @@ -1227,242 +1232,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space Ελεύθερος χώρος - - + + New partition Νέα κατάτμηση - + Name Όνομα - + File System Σύστημα αρχείων - + Mount Point Σημείο προσάρτησης - + Size Μέγεθος @@ -1657,8 +1662,8 @@ The installer will quit and all changes will be lost. - &Create - &Δημιουργία + Cre&ate + @@ -1676,105 +1681,115 @@ The installer will quit and all changes will be lost. Εγκατάσταση προγράμματος ε&κκίνησης στο: - + Are you sure you want to create a new partition table on %1? Θέλετε σίγουρα να δημιουργήσετε έναν νέο πίνακα κατατμήσεων στο %1; + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Συλλογή πληροφοριών συστήματος... - + Partitions Κατατμήσεις - + Install %1 <strong>alongside</strong> another operating system. Εγκατάσταση του %1 <strong>παράλληλα με</strong> ένα άλλο λειτουργικό σύστημα στον δίσκο. - + <strong>Erase</strong> disk and install %1. <strong>Διαγραφή</strong> του δίσκου και εγκατάσταση του %1. - + <strong>Replace</strong> a partition with %1. <strong>Αντικατάσταση</strong> μιας κατάτμησης με το %1. - + <strong>Manual</strong> partitioning. <strong>Χειροκίνητη</strong> τμηματοποίηση. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Εγκατάσταση του %1 <strong>παράλληλα με</strong> ένα άλλο λειτουργικό σύστημα στον δίσκο<strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Διαγραφή</strong> του δίσκου <strong>%2</strong> (%3) και εγκατάσταση του %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Αντικατάσταση</strong> μιας κατάτμησης στον δίσκο <strong>%2</strong> (%3) με το %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Χειροκίνητη</strong> τμηματοποίηση του δίσκου <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Δίσκος <strong>%1</strong> (%2) - + Current: Τρέχον: - + After: Μετά: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Λανθασμένοι παράμετροι για την κλήση διεργασίας. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: Προκαθορισμένο - + unknown άγνωστη - + extended εκτεταμένη - + unformatted μη μορφοποιημένη - + swap @@ -2007,52 +2040,52 @@ Output: Συλλογή πληροφοριών συστήματος... - + has at least %1 GB available drive space έχει τουλάχιστον %1 GB διαθέσιμου χώρου στον δίσκο - + There is not enough drive space. At least %1 GB is required. Δεν υπάρχει αρκετός χώρος στον δίσκο. Απαιτείται τουλάχιστον %1 GB. - + has at least %1 GB working memory έχει τουλάχιστον %1 GB μνημης - + The system does not have enough working memory. At least %1 GB is required. Το σύστημα δεν έχει αρκετή μνήμη. Απαιτείται τουλάχιστον %1 GB. - + is plugged in to a power source είναι συνδεδεμένος σε πηγή ρεύματος - + The system is not plugged in to a power source. Το σύστημα δεν είναι συνδεδεμένο σε πηγή ρεύματος. - + is connected to the Internet είναι συνδεδεμένος στο διαδίκτυο - + The system is not connected to the Internet. Το σύστημα δεν είναι συνδεδεμένο στο διαδίκτυο. - + The installer is not running with administrator rights. Το πρόγραμμα εγκατάστασης δεν εκτελείται με δικαιώματα διαχειριστή. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 Ορισμός ονόματος υπολογιστή %1 - + Set hostname <strong>%1</strong>. Ορισμός ονόματος υπολογιστή <strong>%1</strong>. - + Setting hostname %1. Ορίζεται το όνομα υπολογιστή %1. - - + + Internal Error Εσωτερικό σφάλμα - - + + Cannot write hostname to target system Δεν είναι δυνατή η εγγραφή του ονόματος υπολογιστή στο σύστημα @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Χρήστες @@ -2553,7 +2595,7 @@ Output: - + %1 support Υποστήριξη %1 @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Καλώς ήλθατε diff --git a/lang/calamares_en.ts b/lang/calamares_en.ts index 76a64fbe2..05f430ea2 100644 --- a/lang/calamares_en.ts +++ b/lang/calamares_en.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Blank Page + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Run command %1 %2 - + Running command %1 %2 Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Running %1 operation. - + Bad working directory path Bad working directory path - + Working directory %1 for python job %2 is not readable. Working directory %1 for python job %2 is not readable. - + Bad main script file Bad main script file - + Main script file %1 for python job %2 is not readable. Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". Boost.Python error in job "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Back - + + &Next &Next - - + + &Cancel &Cancel - - + + Cancel installation without changing the system. Cancel installation without changing the system. - + + Calamares Initialization Failed + Calamares Initialization Failed + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + <br/>The following modules could not be loaded: + <br/>The following modules could not be loaded: + + + + &Install + &Install + + + Cancel installation? Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes &Yes - + &No &No - + &Close &Close - + Continue with setup? Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now &Install now - + Go &back Go &back - + &Done &Done - + The installation is complete. Close the installer. The installation is complete. Close the installer. - + Error Error - + Installation Failed Installation Failed @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 Cleared all mounts for %1 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + The command needs to know the user's name, but no username is defined. + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job Contextual Processes Job @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. Si&ze: - + En&crypt En&crypt - + Logical Logical - + Primary Primary - + GPT GPT - + Mountpoint already in use. Please select another one. Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Create user %1 - + Create user <strong>%1</strong>. Create user <strong>%1</strong>. - + Creating user %1. Creating user %1. - + Sudoers dir is not writable. Sudoers dir is not writable. - + Cannot create sudoers file for writing. Cannot create sudoers file for writing. - + Cannot chmod sudoers file. Cannot chmod sudoers file. - + Cannot open groups file for reading. Cannot open groups file for reading. - - - Cannot create user %1. - Cannot create user %1. - - - - useradd terminated with error code %1. - useradd terminated with error code %1. - - - - Cannot add user %1 to groups: %2. - Cannot add user %1 to groups: %2. - - - - usermod terminated with error code %1. - usermod terminated with error code %1. - - - - Cannot set home directory ownership for user %1. - Cannot set home directory ownership for user %1. - - - - chown terminated with error code %1. - chown terminated with error code %1. - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. Flags: - + Mountpoint already in use. Please select another one. Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. &Restart now - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. Set keyboard layout to %1/%2. @@ -1070,64 +1075,64 @@ The installer will quit and all changes will be lost. Form - + I accept the terms and conditions above. I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 driver</strong><br/>by %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> <a href="%1">view license agreement</a> @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... Loading location data... - + Location Location @@ -1196,22 +1201,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Name - + Description Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Package selection @@ -1227,242 +1232,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short Password is too short - + Password is too long Password is too long - + Password is too weak Password is too weak - + Memory allocation error when setting '%1' Memory allocation error when setting '%1' - + Memory allocation error Memory allocation error - + The password is the same as the old one The password is the same as the old one - + The password is a palindrome The password is a palindrome - + The password differs with case changes only The password differs with case changes only - + The password is too similar to the old one The password is too similar to the old one - + The password contains the user name in some form The password contains the user name in some form - + The password contains words from the real name of the user in some form The password contains words from the real name of the user in some form - + The password contains forbidden words in some form The password contains forbidden words in some form - + The password contains less than %1 digits The password contains less than %1 digits - + The password contains too few digits The password contains too few digits - + The password contains less than %1 uppercase letters The password contains less than %1 uppercase letters - + The password contains too few uppercase letters The password contains too few uppercase letters - + The password contains less than %1 lowercase letters The password contains less than %1 lowercase letters - + The password contains too few lowercase letters The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters The password is shorter than %1 characters - + The password is too short The password is too short - + The password is just rotated old one The password is just rotated old one - + The password contains less than %1 character classes The password contains less than %1 character classes - + The password does not contain enough character classes The password does not contain enough character classes - + The password contains more than %1 same characters consecutively The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence The password contains too long of a monotonic character sequence - + No password supplied No password supplied - + Cannot obtain random numbers from the RNG device Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 The password fails the dictionary check - %1 - + The password fails the dictionary check The password fails the dictionary check - + Unknown setting - %1 Unknown setting - %1 - + Unknown setting Unknown setting - + Bad integer value of setting - %1 Bad integer value of setting - %1 - + Bad integer value Bad integer value - + Setting %1 is not of integer type Setting %1 is not of integer type - + Setting is not of integer type Setting is not of integer type - + Setting %1 is not of string type Setting %1 is not of string type - + Setting is not of string type Setting is not of string type - + Opening the configuration file failed Opening the configuration file failed - + The configuration file is malformed The configuration file is malformed - + Fatal failure Fatal failure - + Unknown error Unknown error @@ -1601,34 +1606,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space Free Space - - + + New partition New partition - + Name Name - + File System File System - + Mount Point Mount Point - + Size Size @@ -1657,8 +1662,8 @@ The installer will quit and all changes will be lost. - &Create - &Create + Cre&ate + Cre&ate @@ -1676,105 +1681,115 @@ The installer will quit and all changes will be lost. Install boot &loader on: - + Are you sure you want to create a new partition table on %1? Are you sure you want to create a new partition table on %1? + + + Can not create new partition + Can not create new partition + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + PartitionViewStep - + Gathering system information... Gathering system information... - + Partitions Partitions - + Install %1 <strong>alongside</strong> another operating system. Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Current: - + After: After: - + No EFI system partition configured No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,30 +1821,48 @@ The installer will quit and all changes will be lost. Placeholder - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. - 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. + + 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. + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel Look-and-Feel + + PreserveFiles + + + Saving files for later ... + Saving files for later ... + + + + No files configured to save for later. + No files configured to save for later. + + + + Not all of the configured files could be preserved. + Not all of the configured files could be preserved. + + ProcessResult - + There was no output from the command. There was no output from the command. - + Output: @@ -1838,52 +1871,52 @@ Output: - + External command crashed. External command crashed. - + Command <i>%1</i> crashed. Command <i>%1</i> crashed. - + External command failed to start. External command failed to start. - + Command <i>%1</i> failed to start. Command <i>%1</i> failed to start. - + Internal error when starting command. Internal error when starting command. - + Bad parameters for process job call. Bad parameters for process job call. - + External command failed to finish. External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. External command finished with errors. - + Command <i>%1</i> finished with exit code %2. Command <i>%1</i> finished with exit code %2. @@ -1902,22 +1935,22 @@ Output: Default - + unknown unknown - + extended extended - + unformatted unformatted - + swap swap @@ -2010,52 +2043,52 @@ Output: Gathering system information... - + has at least %1 GB available drive space has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source is plugged in to a power source - + The system is not plugged in to a power source. The system is not plugged in to a power source. - + is connected to the Internet is connected to the Internet - + The system is not connected to the Internet. The system is not connected to the Internet. - + The installer is not running with administrator rights. The installer is not running with administrator rights. - + The screen is too small to display the installer. The screen is too small to display the installer. @@ -2099,29 +2132,29 @@ Output: SetHostNameJob - + Set hostname %1 Set hostname %1 - + Set hostname <strong>%1</strong>. Set hostname <strong>%1</strong>. - + Setting hostname %1. Setting hostname %1. - - + + Internal Error Internal Error - - + + Cannot write hostname to target system Cannot write hostname to target system @@ -2328,6 +2361,15 @@ Output: Shell Processes Job + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2498,7 +2540,7 @@ Output: UsersViewStep - + Users Users @@ -2556,7 +2598,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 support @@ -2564,7 +2606,7 @@ Output: WelcomeViewStep - + Welcome Welcome diff --git a/lang/calamares_en_GB.ts b/lang/calamares_en_GB.ts index cec3ba2f2..555a46d98 100644 --- a/lang/calamares_en_GB.ts +++ b/lang/calamares_en_GB.ts @@ -4,17 +4,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - + The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - + This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - + This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. @@ -37,12 +37,20 @@ Do not install a boot loader - + Do not install a boot loader %1 (%2) - + %1 (%2) + + + + Calamares::BlankViewStep + + + Blank Page + Blank Page @@ -76,17 +84,17 @@ none - + none Interface: - + Interface: Tools - + Tools @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Done @@ -113,45 +121,45 @@ Calamares::ProcessJob - + Run command %1 %2 Run command %1 %2 - + Running command %1 %2 - + Running command %1 %2 Calamares::PythonJob - + Running %1 operation. - + Running %1 operation. - + Bad working directory path Bad working directory path - + Working directory %1 for python job %2 is not readable. Working directory %1 for python job %2 is not readable. - + Bad main script file Bad main script file - + Main script file %1 for python job %2 is not readable. Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". Boost.Python error in job "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Back - + + &Next &Next - - + + &Cancel &Cancel - - + + Cancel installation without changing the system. - + Cancel installation without changing the system. + + + + Calamares Initialization Failed + Calamares Initialisation Failed + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + <br/>The following modules could not be loaded: + <br/>The following modules could not be loaded: - + + &Install + &Install + + + Cancel installation? Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &Yes - + &No - + &No - + &Close - + &Close - + Continue with setup? Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now &Install now - + Go &back Go &back - + &Done - + &Done - + The installation is complete. Close the installer. - + The installation is complete. Close the installer. - + Error Error - + Installation Failed Installation Failed @@ -289,17 +318,17 @@ The installer will quit and all changes will be lost. This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. This program will ask you some questions and set up %2 on your computer. - + This program will ask you some questions and set up %2 on your computer. @@ -309,7 +338,7 @@ The installer will quit and all changes will be lost. System requirements - + System requirements @@ -327,22 +356,22 @@ The installer will quit and all changes will be lost. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. Boot loader location: - + Boot loader location: %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - + %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. Select storage de&vice: - + Select storage de&vice: @@ -350,42 +379,42 @@ The installer will quit and all changes will be lost. Current: - + Current: Reuse %1 as home partition for %2. - + Reuse %1 as home partition for %2. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> <strong>Select a partition to install on</strong> - + <strong>Select a partition to install on</strong> An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. The EFI system partition at %1 will be used for starting %2. - + The EFI system partition at %1 will be used for starting %2. EFI system partition: - + EFI system partition: This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. @@ -393,12 +422,12 @@ The installer will quit and all changes will be lost. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - + <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. @@ -406,7 +435,7 @@ The installer will quit and all changes will be lost. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - + <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. @@ -414,33 +443,33 @@ The installer will quit and all changes will be lost. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>Replace a partition</strong><br/>Replaces a partition with %1. This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. ClearMountsJob - + Clear mounts for partitioning operations on %1 Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 Cleared all mounts for %1 @@ -455,7 +484,7 @@ The installer will quit and all changes will be lost. Clearing all temporary mounts. - + Clearing all temporary mounts. @@ -471,22 +500,28 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. - + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + The command needs to know the user's name, but no username is defined. + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job - + Contextual Processes Job @@ -499,7 +534,7 @@ The installer will quit and all changes will be lost. MiB - + MiB @@ -519,12 +554,12 @@ The installer will quit and all changes will be lost. Fi&le System: - + Fi&le System: LVM LV name - + LVM LV name @@ -542,29 +577,29 @@ The installer will quit and all changes will be lost. Si&ze: - + En&crypt - + En&crypt - + Logical Logical - + Primary Primary - + GPT GPT - + Mountpoint already in use. Please select another one. - + Mountpoint already in use. Please select another one. @@ -582,7 +617,7 @@ The installer will quit and all changes will be lost. Creating new %1 partition on %2. - + Creating new %1 partition on %2. @@ -633,7 +668,7 @@ The installer will quit and all changes will be lost. Creating new %1 partition table on %2. - + Creating new %1 partition table on %2. @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Create user %1 - + Create user <strong>%1</strong>. - + Create user <strong>%1</strong>. - + Creating user %1. - + Creating user %1. - + Sudoers dir is not writable. Sudoers dir is not writable. - + Cannot create sudoers file for writing. Cannot create sudoers file for writing. - + Cannot chmod sudoers file. Cannot chmod sudoers file. - + Cannot open groups file for reading. Cannot open groups file for reading. - - - Cannot create user %1. - Cannot create user %1. - - - - useradd terminated with error code %1. - useradd terminated with error code %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod terminated with error code %1. - - - - Cannot set home directory ownership for user %1. - Cannot set home directory ownership for user %1. - - - - chown terminated with error code %1. - chown terminated with error code %1. - DeletePartitionJob @@ -724,7 +729,7 @@ The installer will quit and all changes will be lost. Deleting partition %1. - + Deleting partition %1. @@ -737,32 +742,32 @@ The installer will quit and all changes will be lost. The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. - + The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. This device has a <strong>%1</strong> partition table. - + This device has a <strong>%1</strong> partition table. This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. - + This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. - + This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - + <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. @@ -778,25 +783,25 @@ The installer will quit and all changes will be lost. Write LUKS configuration for Dracut to %1 - + Write LUKS configuration for Dracut to %1 Skip writing LUKS configuration for Dracut: "/" partition is not encrypted - + Skip writing LUKS configuration for Dracut: "/" partition is not encrypted Failed to open %1 - + Failed to open %1 DummyCppJob - + Dummy C++ Job - + Dummy C++ Job @@ -814,7 +819,7 @@ The installer will quit and all changes will be lost. &Keep - + &Keep @@ -839,12 +844,12 @@ The installer will quit and all changes will be lost. MiB - + MiB Fi&le System: - + Fi&le System: @@ -852,9 +857,9 @@ The installer will quit and all changes will be lost. Flags: - + Mountpoint already in use. Please select another one. - + Mountpoint already in use. Please select another one. @@ -867,22 +872,22 @@ The installer will quit and all changes will be lost. En&crypt system - + En&crypt system Passphrase - + Passphrase Confirm passphrase - + Confirm passphrase Please enter the same passphrase in both boxes. - + Please enter the same passphrase in both boxes. @@ -920,7 +925,7 @@ The installer will quit and all changes will be lost. Setting up mount points. - + Setting up mount points. @@ -933,7 +938,7 @@ The installer will quit and all changes will be lost. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> @@ -941,14 +946,14 @@ The installer will quit and all changes will be lost. &Restart now - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -961,12 +966,12 @@ The installer will quit and all changes will be lost. Installation Complete - + Installation Complete The installation of %1 is complete. - + The installation of %1 is complete. @@ -984,7 +989,7 @@ The installer will quit and all changes will be lost. Formatting partition %1 with file system %2. - + Formatting partition %1 with file system %2. @@ -997,17 +1002,17 @@ The installer will quit and all changes will be lost. Konsole not installed - + Konsole not installed Please install KDE Konsole and try again! - + Please install KDE Konsole and try again! Executing script: &nbsp;<code>%1</code> - + Executing script: &nbsp;<code>%1</code> @@ -1015,18 +1020,18 @@ The installer will quit and all changes will be lost. Script - + Script KeyboardPage - + Set keyboard model to %1.<br/> Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. Set keyboard layout to %1/%2. @@ -1059,7 +1064,7 @@ The installer will quit and all changes will be lost. &OK - + &OK @@ -1070,66 +1075,66 @@ The installer will quit and all changes will be lost. Form - + I accept the terms and conditions above. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 driver</strong><br/>by %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> - + <a href="%1">view license agreement</a> @@ -1137,7 +1142,7 @@ The installer will quit and all changes will be lost. License - + License @@ -1145,12 +1150,12 @@ The installer will quit and all changes will be lost. The system language will be set to %1. - + The system language will be set to %1. The numbers and dates locale will be set to %1. - + The numbers and dates locale will be set to %1. @@ -1177,18 +1182,18 @@ The installer will quit and all changes will be lost. %1 (%2) Language (Country) - + %1 (%2) LocaleViewStep - + Loading location data... Loading location data... - + Location Location @@ -1196,275 +1201,275 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Name - + Description - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) - + Network Installation. (Disabled: Received invalid groups data) NetInstallViewStep - + Package selection - + Package selection PWQ - + Password is too short - + Password is too short - + Password is too long - + Password is too long - + Password is too weak - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error when setting '%1' - + Memory allocation error - + Memory allocation error - + The password is the same as the old one - + The password is the same as the old one - + The password is a palindrome - + The password is a palindrome - + The password differs with case changes only - + The password differs with case changes only - + The password is too similar to the old one - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains less than %1 digits - + The password contains too few digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is shorter than %1 characters - + The password is too short - + The password is too short - + The password is just rotated old one - + The password is just rotated old one - + The password contains less than %1 character classes - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + The password contains too long of a monotonic character sequence - + No password supplied - + No password supplied - + Cannot obtain random numbers from the RNG device - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - %1 - + Unknown setting - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value of setting - %1 - + Bad integer value - + Bad integer value - + Setting %1 is not of integer type - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting %1 is not of string type - + Setting is not of string type - + Setting is not of string type - + Opening the configuration file failed - + Opening the configuration file failed - + The configuration file is malformed - + The configuration file is malformed - + Fatal failure - + Fatal failure - + Unknown error - + Unknown error @@ -1537,12 +1542,12 @@ The installer will quit and all changes will be lost. Log in automatically without asking for the password. - + Log in automatically without asking for the password. Use the same password for the administrator account. - + Use the same password for the administrator account. @@ -1560,32 +1565,32 @@ The installer will quit and all changes will be lost. Root - + Root Home - + Home Boot - + Boot EFI system - + EFI system Swap - + Swap New partition for %1 - + New partition for %1 @@ -1595,40 +1600,40 @@ The installer will quit and all changes will be lost. %1 %2 - + %1 %2 PartitionModel - - + + Free Space Free Space - - + + New partition New partition - + Name Name - + File System File System - + Mount Point Mount Point - + Size Size @@ -1643,7 +1648,7 @@ The installer will quit and all changes will be lost. Storage de&vice: - + Storage de&vice: @@ -1657,8 +1662,8 @@ The installer will quit and all changes will be lost. - &Create - &Create + Cre&ate + Cre&ate @@ -1673,110 +1678,120 @@ The installer will quit and all changes will be lost. Install boot &loader on: - + Install boot &loader on: - + Are you sure you want to create a new partition table on %1? Are you sure you want to create a new partition table on %1? + + + Can not create new partition + Can not create new partition + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + PartitionViewStep - + Gathering system information... Gathering system information... - + Partitions Partitions - + Install %1 <strong>alongside</strong> another operating system. Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: - + Current: - + After: After: - + No EFI system partition configured - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1784,13 +1799,13 @@ The installer will quit and all changes will be lost. Plasma Look-and-Feel Job - + Plasma Look-and-Feel Job Could not select KDE Plasma Look-and-Feel package - + Could not select KDE Plasma Look-and-Feel package @@ -1803,86 +1818,107 @@ The installer will quit and all changes will be lost. Placeholder - + Placeholder - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. - + + 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. + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel - + Look-and-Feel + + + + PreserveFiles + + + Saving files for later ... + Saving files for later... + + + + No files configured to save for later. + No files configured to save for later. + + + + Not all of the configured files could be preserved. + Not all of the configured files could be preserved. ProcessResult - + There was no output from the command. - + +There was no output from the command. - + Output: - + +Output: + - + External command crashed. - + External command crashed. - + Command <i>%1</i> crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Internal error when starting command. - + Bad parameters for process job call. Bad parameters for process job call. - + External command failed to finish. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. - + Command <i>%1</i> finished with exit code %2. @@ -1899,29 +1935,29 @@ Output: Default - + unknown - + unknown - + extended - + extended - + unformatted - + unformatted - + swap - + swap Unpartitioned space or unknown partition table - + Unpartitioned space or unknown partition table @@ -1979,24 +2015,24 @@ Output: <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. - + <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. The EFI system partition at %1 will be used for starting %2. - + The EFI system partition at %1 will be used for starting %2. EFI system partition: - + EFI system partition: @@ -2007,54 +2043,54 @@ Output: Gathering system information... - + has at least %1 GB available drive space has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source is plugged in to a power source - + The system is not plugged in to a power source. - + The system is not plugged in to a power source. - + is connected to the Internet is connected to the Internet - + The system is not connected to the Internet. - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. - + The screen is too small to display the installer. @@ -2072,7 +2108,7 @@ Output: Resizing %2MB partition %1 to %3MB. - + Resizing %2MB partition %1 to %3MB. @@ -2085,40 +2121,40 @@ Output: Scanning storage devices... - + Scanning storage devices... Partitioning - + Partitioning SetHostNameJob - + Set hostname %1 Set hostname %1 - + Set hostname <strong>%1</strong>. - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - + Setting hostname %1. - - + + Internal Error Internal Error - - + + Cannot write hostname to target system Cannot write hostname to target system @@ -2150,7 +2186,7 @@ Output: Failed to write keyboard configuration to existing /etc/default directory. - + Failed to write keyboard configuration to existing /etc/default directory. @@ -2158,82 +2194,82 @@ Output: Set flags on partition %1. - + Set flags on partition %1. Set flags on %1MB %2 partition. - + Set flags on %1MB %2 partition. Set flags on new partition. - + Set flags on new partition. Clear flags on partition <strong>%1</strong>. - + Clear flags on partition <strong>%1</strong>. Clear flags on %1MB <strong>%2</strong> partition. - + Clear flags on %1MB <strong>%2</strong> partition. Clear flags on new partition. - + Clear flags on new partition. Flag partition <strong>%1</strong> as <strong>%2</strong>. - + Flag partition <strong>%1</strong> as <strong>%2</strong>. Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - + Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. Flag new partition as <strong>%1</strong>. - + Flag new partition as <strong>%1</strong>. Clearing flags on partition <strong>%1</strong>. - + Clearing flags on partition <strong>%1</strong>. Clearing flags on %1MB <strong>%2</strong> partition. - + Clearing flags on %1MB <strong>%2</strong> partition. Clearing flags on new partition. - + Clearing flags on new partition. Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - + Setting flags <strong>%2</strong> on partition <strong>%1</strong>. Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - + Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. Setting flags <strong>%1</strong> on new partition. - + Setting flags <strong>%1</strong> on new partition. The installer failed to set flags on partition %1. - + The installer failed to set flags on partition %1. @@ -2246,7 +2282,7 @@ Output: Setting password for user %1. - + Setting password for user %1. @@ -2261,12 +2297,12 @@ Output: Cannot disable root account. - + Cannot disable root account. passwd terminated with error code %1. - + passwd terminated with error code %1. @@ -2309,12 +2345,12 @@ Output: Cannot set timezone, - + Cannot set timezone, Cannot open /etc/timezone for writing - + Cannot open /etc/timezone for writing @@ -2322,7 +2358,16 @@ Output: Shell Processes Job - + Shell Processes Job + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 @@ -2346,22 +2391,22 @@ Output: Installation feedback - + Installation feedback Sending installation feedback. - + Sending installation feedback. Internal error in install-tracking. - + Internal error in install-tracking. HTTP request timed out. - + HTTP request timed out. @@ -2369,28 +2414,28 @@ Output: Machine feedback - + Machine feedback Configuring machine feedback. - + Configuring machine feedback. Error in machine feedback configuration. - + Error in machine feedback configuration. Could not configure machine feedback correctly, script error %1. - + Could not configure machine feedback correctly, script error %1. Could not configure machine feedback correctly, Calamares error %1. - + Could not configure machine feedback correctly, Calamares error %1. @@ -2403,51 +2448,51 @@ Output: Placeholder - + Placeholder <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> TextLabel - + TextLabel ... - + ... <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - + Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - + By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. @@ -2455,7 +2500,7 @@ Output: Feedback - + Feedback @@ -2495,7 +2540,7 @@ Output: UsersViewStep - + Users Users @@ -2510,7 +2555,7 @@ Output: &Language: - + &Language: @@ -2535,12 +2580,12 @@ Output: <h1>Welcome to the %1 installer.</h1> - + <h1>Welcome to the %1 installer.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Welcome to the Calamares installer for %1.</h1> @@ -2550,10 +2595,10 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 support @@ -2561,7 +2606,7 @@ Output: WelcomeViewStep - + Welcome Welcome diff --git a/lang/calamares_pl_PL.ts b/lang/calamares_eo.ts similarity index 88% rename from lang/calamares_pl_PL.ts rename to lang/calamares_eo.ts index 5736f08fb..bfbd94ab7 100644 --- a/lang/calamares_pl_PL.ts +++ b/lang/calamares_eo.ts @@ -1,4 +1,4 @@ - + BootInfoWidget @@ -22,17 +22,17 @@ Master Boot Record of %1 - Master Boot Record %1 + Boot Partition - Partycja rozruchowa + System Partition - Partycja systemowa + @@ -42,6 +42,14 @@ %1 (%2) + %1(%2) + + + + Calamares::BlankViewStep + + + Blank Page @@ -50,7 +58,7 @@ Form - Formularz + @@ -65,18 +73,18 @@ Modules - Moduły + Type: - Rodzaj: + none - brak + @@ -86,39 +94,39 @@ Tools - + Iloj Debug information - Informacje debugowania + Calamares::ExecutionViewStep - + Install - Zainstaluj + Instali Calamares::JobThread - + Done - Ukończono + Finita Calamares::ProcessJob - + Run command %1 %2 - Uruchom polecenie %1 %2 + - + Running command %1 %2 @@ -126,126 +134,147 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - Niepoprawna ścieżka folderu roboczego + - + Working directory %1 for python job %2 is not readable. - Folder roboczy %1 zadania pythona %2 jest nieosiągalny. + - + Bad main script file - Niepoprawny główny plik skryptu + - + Main script file %1 for python job %2 is not readable. - Główny plik skryptu %1 zadania pythona %2 jest nieczytelny. + - + Boost.Python error in job "%1". - Błąd Boost.Python w zadaniu "%1". + Calamares::ViewManager - + &Back - &Wstecz + - + + &Next - &Dalej + - - + + &Cancel - &Anuluj + &Nuligi - - + + Cancel installation without changing the system. + Nuligi instalado sen ŝanĝante la sistemo. + + + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: - + + &Install + &Instali + + + Cancel installation? - Przerwać instalację? + Nuligi instalado? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - Czy naprawdę chcesz przerwać instalację? -Instalator zakończy działanie i wszystkie zmiany zostaną utracone. + Ĉu vi vere volas nuligi la instalan procedon? +La instalilo forlasos kaj ĉiuj ŝanĝoj perdos. - + &Yes - + &Jes - + &No - + &Ne - + &Close - + &Fermi - + Continue with setup? - Kontynuować instalację? + - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - &Zainstaluj + &Instali nun - + Go &back - &Wstecz + - + &Done - + &Finita - + The installation is complete. Close the installer. - + Error - Błąd + Eraro - + Installation Failed - Wystąpił błąd instalacji + @@ -253,22 +282,22 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Unknown exception type - Nieznany wyjątek + unparseable Python error - Nieparsowalny błąd Pythona + unparseable Python traceback - nieparsowalny traceback Pythona + Unfetchable Python error. - Niepobieralny błąd Pythona. + @@ -276,12 +305,12 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. %1 Installer - Instalator %1 + %1 Instalilo Show debug information - Pokaż informację debugowania + @@ -304,12 +333,12 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. For best results, please ensure that this computer: - Dla osiągnięcia najlepszych rezultatów upewnij się, że ten komputer: + System requirements - Wymagania systemowe + @@ -317,12 +346,12 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + After: - Po: + @@ -380,7 +409,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. EFI system partition: - Partycja systemowa EFI: + @@ -430,17 +459,17 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -471,20 +500,26 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -494,7 +529,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Create a Partition - Utwórz partycję + @@ -504,17 +539,17 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Partition &Type: - Rodzaj par&tycji: + &Primary - &Podstawowa + E&xtended - Ro&zszerzona + @@ -529,40 +564,40 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Flags: - Flagi: + &Mount Point: - Punkt &montowania: + Si&ze: - Ro&zmiar: + - + En&crypt - + Logical - Logiczna + - + Primary - Podstawowa + - + GPT - GPT + - + Mountpoint already in use. Please select another one. @@ -587,7 +622,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. The installer failed to create partition on disk '%1'. - Instalator nie mógł utworzyć partycji na dysku '%1'. + @@ -595,27 +630,27 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Create Partition Table - Utwórz tablicę partycji + Creating a new partition table will delete all existing data on the disk. - Utworzenie nowej tablicy partycji, usunie wszystkie istniejące na dysku dane. + What kind of partition table do you want to create? - Jaki rodzaj tablicy partycji chcesz utworzyć? + Master Boot Record (MBR) - Master Boot Record (MBR) + GUID Partition Table (GPT) - Tablica partycji GUID (GPT) + @@ -638,76 +673,46 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. The installer failed to create a partition table on %1. - Instalator nie mógł utworzyć tablicy partycji na %1. + CreateUserJob - + Create user %1 - Utwórz użytkownika %1 + - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - Nie można zapisać do folderu sudoers. + - + Cannot create sudoers file for writing. - Nie można otworzyć pliku sudoers do zapisu. + - + Cannot chmod sudoers file. - Nie można wykonać chmod na pliku sudoers. + - + Cannot open groups file for reading. - Nie można otworzyć pliku groups do oczytu. - - - - Cannot create user %1. - Nie można utworzyć użytkownika %1. - - - - useradd terminated with error code %1. - useradd przerwany z kodem błędu %1. - - - - Cannot add user %1 to groups: %2. - - - usermod terminated with error code %1. - usermod przerwany z kodem błędu %1. - - - - Cannot set home directory ownership for user %1. - Nie można ustawić właściciela folderu domowego dla użytkownika %1. - - - - chown terminated with error code %1. - chown przerwany z kodem błędu %1. - DeletePartitionJob @@ -729,7 +734,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. The installer failed to delete partition %1. - Instalator nie mógł usunąć partycji %1. + @@ -770,7 +775,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. %1 - %2 (%3) - %1 - %2 (%3) + @@ -794,7 +799,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. DummyCppJob - + Dummy C++ Job @@ -804,12 +809,12 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Edit Existing Partition - Edycja istniejącej partycji + Content: - Zawartość: + @@ -819,22 +824,22 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Format - Sformatuj + Warning: Formatting the partition will erase all existing data. - Ostrzeżenie: Sformatowanie partycji wymaże wszystkie istniejące na niej dane. + &Mount Point: - Punkt &montowania: + Si&ze: - Ro&zmiar: + @@ -849,10 +854,10 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Flags: - Flagi: + - + Mountpoint already in use. Please select another one. @@ -862,7 +867,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + @@ -890,7 +895,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Set partition information - Ustaw informacje partycji + @@ -928,7 +933,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + @@ -941,12 +946,12 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -956,7 +961,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Finish - Koniec + @@ -974,7 +979,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Format partition %1 (file system: %2, size: %3 MB) on %4. - Formatuj partycję %1 (system plików: %2, rozmiar: %3 MB) na %4. + @@ -989,7 +994,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. The installer failed to format partition %1 on disk '%2'. - Instalator nie mógł sformatować partycji %1 na dysku '%2'. + @@ -1021,14 +1026,14 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. KeyboardPage - + Set keyboard model to %1.<br/> - Model klawiatury %1.<br/> + - + Set keyboard layout to %1/%2. - Model klawiatury %1/%2. + @@ -1036,7 +1041,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Keyboard - Klawiatura + @@ -1054,7 +1059,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. &Cancel - &Anuluj + &Nuligi @@ -1067,67 +1072,67 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1155,12 +1160,12 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Region: - Region: + Zone: - Strefa: + @@ -1171,47 +1176,47 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Set timezone to %1/%2.<br/> - Strefa czasowa %1/%2.<br/> + %1 (%2) Language (Country) - + %1(%2) LocaleViewStep - + Loading location data... - Wczytywanie danych położenia + - + Location - Położenie + NetInstallPage - + Name - Nazwa + - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. NetInstallViewStep - + Package selection @@ -1227,242 +1232,242 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1472,17 +1477,17 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + Keyboard Model: - Model klawiatury: + Type here to test your keyboard - Napisz coś tutaj, aby sprawdzić swoją klawiaturę + @@ -1490,49 +1495,49 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + What is your name? - Jak się nazywasz? + What name do you want to use to log in? - Jakiego imienia chcesz używać do logowania się? + font-weight: normal - font-weight: normal + <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - <small>Jeśli więcej niż jedna osoba będzie używać tego komputera, możesz utworzyć więcej kont już po instalacji.</small> + Choose a password to keep your account safe. - Wybierz hasło, aby chronić swoje konto. + <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> - <small>Wpisz swoje hasło dwa razy, by uniknąć literówek. Dobre hasło powinno zawierać miks liter, cyfr, znaków specjalnych, mieć przynajmniej 8 znaków i być regularnie zmieniane.</small> + What is the name of this computer? - Jaka jest nazwa tego komputera? + <small>This name will be used if you make the computer visible to others on a network.</small> - <small>Ta nazwa będzie widoczna, jeśli udostępnisz swój komputer w sieci.</small> + @@ -1547,12 +1552,12 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Choose a password for the administrator account. - Wybierz hasło do konta administratora. + <small>Enter the same password twice, so that it can be checked for typing errors.</small> - <small>Wpisz to samo hasło dwa razy, by uniknąć literówek.</small> + @@ -1590,7 +1595,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. New partition - Nowa partycja + @@ -1601,36 +1606,36 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. PartitionModel - - + + Free Space - Wolna powierzchnia + - - + + New partition - Nowa partycja + - + Name - Nazwa + - + File System - System plików + - + Mount Point - Punkt montowania + - + Size - Rozmiar + @@ -1638,7 +1643,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + @@ -1648,27 +1653,27 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. &Revert All Changes - P&rzywróć do pierwotnego stanu + New Partition &Table - Nowa &tablica partycji + - &Create - &Utwórz + Cre&ate + &Edit - &Edycja + &Delete - U&suń + @@ -1676,105 +1681,115 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. - + Are you sure you want to create a new partition table on %1? - Na pewno utworzyć nową tablicę partycji na %1? + + + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + PartitionViewStep - + Gathering system information... - Zbieranie informacji o systemie... + - + Partitions - Partycje + - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - Po: + - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1798,7 +1813,7 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. Form - Formularz + @@ -1806,81 +1821,99 @@ Instalator zakończy działanie i wszystkie zmiany zostaną utracone. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - Błędne parametry wywołania zadania. + - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1890,31 +1923,31 @@ Output: Default Keyboard Model - Domyślny model klawiatury + Default - Domyślnie + - + unknown - + extended - + unformatted - + swap @@ -1929,7 +1962,7 @@ Output: Form - Formularz + @@ -1996,7 +2029,7 @@ Output: EFI system partition: - Partycja systemowa EFI: + @@ -2004,55 +2037,55 @@ Output: Gathering system information... - Zbieranie informacji o systemie... + - + has at least %1 GB available drive space - ma przynajmniej %1 GB dostępnego miejsca na dysku + - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - ma przynajmniej %1 GB pamięci roboczej + - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - jest podłączony do źródła zasilania + - + The system is not plugged in to a power source. - + is connected to the Internet - jest podłączony do Internetu + - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2062,7 +2095,7 @@ Output: Resize partition %1. - Zmień rozmiar partycji %1. + @@ -2077,7 +2110,7 @@ Output: The installer failed to resize partition %1 on disk '%2'. - Instalator nie mógł zmienić rozmiaru partycji %1 na dysku '%2'. + @@ -2096,31 +2129,31 @@ Output: SetHostNameJob - + Set hostname %1 - Wybierz nazwę hosta %1 + - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - Błąd wewnętrzny + - - + + Cannot write hostname to target system - Nie można zapisać nazwy hosta w systemie docelowym + @@ -2241,7 +2274,7 @@ Output: Set password for user %1 - Ustaw hasło użytkownika %1 + @@ -2251,12 +2284,12 @@ Output: Bad destination system path. - Błędna ścieżka docelowa. + rootMountPoint is %1 - Punkt montowania / to %1 + @@ -2271,12 +2304,12 @@ Output: Cannot set password for user %1. - Nie można ustawić hasła dla użytkownika %1. + usermod terminated with error code %1. - usermod przerwany z kodem błędu %1. + @@ -2284,27 +2317,27 @@ Output: Set timezone to %1/%2 - Strefa czasowa %1/%2 + Cannot access selected timezone path. - Brak dostępu do wybranej ścieżki strefy czasowej. + Bad path: %1 - Niepoprawna ścieżka: %1 + Cannot set timezone. - Nie można ustawić strefy czasowej. + Link creation failed, target: %1; link name: %2 - Błąd tworzenia dowiązania, cel: %1; nazwa dowiązania: %2 + @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2338,7 +2380,7 @@ Output: Summary - Podsumowanie + @@ -2398,7 +2440,7 @@ Output: Form - Formularz + @@ -2489,15 +2531,15 @@ Output: Your passwords do not match! - Twoje hasła są niezgodne! + UsersViewStep - + Users - Użytkownicy + @@ -2505,7 +2547,7 @@ Output: Form - Formularz + @@ -2553,7 +2595,7 @@ Output: - + %1 support @@ -2561,9 +2603,9 @@ Output: WelcomeViewStep - + Welcome - Witamy + \ No newline at end of file diff --git a/lang/calamares_es.ts b/lang/calamares_es.ts index 0dccb2c65..c07481a92 100644 --- a/lang/calamares_es.ts +++ b/lang/calamares_es.ts @@ -46,6 +46,14 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Página Blanca + + Calamares::DebugWindow @@ -98,7 +106,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::ExecutionViewStep - + Install Instalar @@ -106,7 +114,7 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::JobThread - + Done Hecho @@ -114,12 +122,12 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::ProcessJob - + Run command %1 %2 Ejecutar comando %1 %2 - + Running command %1 %2 Ejecutando comando %1 %2 @@ -127,32 +135,32 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::PythonJob - + Running %1 operation. Ejecutando %1 operación. - + Bad working directory path Error en la ruta del directorio de trabajo - + Working directory %1 for python job %2 is not readable. El directorio de trabajo %1 para el script de python %2 no se puede leer. - + Bad main script file Script principal erróneo - + Main script file %1 for python job %2 is not readable. El script principal %1 del proceso python %2 no es accesible. - + Boost.Python error in job "%1". Error Boost.Python en el proceso "%1". @@ -160,91 +168,112 @@ Para configurar el arranque desde un entorno BIOS, este instalador debe instalar Calamares::ViewManager - + &Back &Atrás - + + &Next &Siguiente - - + + &Cancel &Cancelar - - + + Cancel installation without changing the system. Cancelar instalación sin cambiar el sistema. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? ¿Cancelar la instalación? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. ¿Realmente quiere cancelar el proceso de instalación? Saldrá del instalador y se perderán todos los cambios. - + &Yes &Sí - + &No &No - + &Close &Cerrar - + Continue with setup? ¿Continuar con la configuración? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> El instalador %1 va a realizar cambios en su disco para instalar %2.<br/><strong>No podrá deshacer estos cambios.</strong> - + &Install now &Instalar ahora - + Go &back Regresar - + &Done &Hecho - + The installation is complete. Close the installer. La instalación se ha completado. Cierre el instalador. - + Error Error - + Installation Failed Error en la Instalación @@ -431,17 +460,17 @@ Saldrá del instalador y se perderán todos los cambios. ClearMountsJob - + Clear mounts for partitioning operations on %1 Limpiar puntos de montaje para operaciones de particionamiento en %1 - + Clearing mounts for partitioning operations on %1. Limpiando puntos de montaje para operaciones de particionamiento en %1. - + Cleared all mounts for %1 Limpiados todos los puntos de montaje para %1 @@ -472,20 +501,26 @@ Saldrá del instalador y se perderán todos los cambios. CommandList - + + Could not run command. No se pudo ejecutar el comando. - - No rootMountPoint is defined, so command cannot be run in the target environment. - No se ha definido ningún rootMountPoint (punto de montaje de root), así que el comando no se puede ejecutar en el entorno objetivo. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. + ContextualProcessJob - + Contextual Processes Job Tarea Contextual Processes @@ -543,27 +578,27 @@ Saldrá del instalador y se perderán todos los cambios. &Tamaño: - + En&crypt &Cifrar - + Logical Lógica - + Primary Primaria - + GPT GPT - + Mountpoint already in use. Please select another one. Punto de montaje ya en uso. Por favor, seleccione otro. @@ -645,70 +680,40 @@ Saldrá del instalador y se perderán todos los cambios. CreateUserJob - + Create user %1 Crear usuario %1 - + Create user <strong>%1</strong>. Crear usuario <strong>%1</strong>. - + Creating user %1. Creando usuario %1. - + Sudoers dir is not writable. El directorio de sudoers no dispone de permisos de escritura. - + Cannot create sudoers file for writing. No es posible crear el archivo de escritura para sudoers. - + Cannot chmod sudoers file. No es posible modificar los permisos de sudoers. - + Cannot open groups file for reading. No es posible abrir el archivo de grupos del sistema. - - - Cannot create user %1. - No se puede crear el usuario %1. - - - - useradd terminated with error code %1. - useradd terminó con código de error %1. - - - - Cannot add user %1 to groups: %2. - No se puede añadir al usuario %1 a los grupos: %2. - - - - usermod terminated with error code %1. - usermod finalizó con un código de error %1. - - - - Cannot set home directory ownership for user %1. - No se puede dar la propiedad del directorio home al usuario %1 - - - - chown terminated with error code %1. - chown terminó con código de error %1. - DeletePartitionJob @@ -795,7 +800,7 @@ Saldrá del instalador y se perderán todos los cambios. DummyCppJob - + Dummy C++ Job Tarea C++ ficticia @@ -853,7 +858,7 @@ Saldrá del instalador y se perderán todos los cambios. Banderas: - + Mountpoint already in use. Please select another one. Punto de montaje ya en uso. Por favor, seleccione otro. @@ -942,12 +947,12 @@ Saldrá del instalador y se perderán todos los cambios. &Reiniciar ahora - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Listo.</h1><br/>%1 ha sido instalado en su equipo.<br/>Ahora puede reiniciar hacia su nuevo sistema, o continuar utilizando %2 Live. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>La instalación falló</h1><br/>%1 no se ha instalado en su equipo.<br/>El mensaje de error fue: %2. @@ -1022,12 +1027,12 @@ Saldrá del instalador y se perderán todos los cambios. KeyboardPage - + Set keyboard model to %1.<br/> Establecer el modelo de teclado a %1.<br/> - + Set keyboard layout to %1/%2. Configurar la disposición de teclado a %1/%2. @@ -1071,64 +1076,64 @@ Saldrá del instalador y se perderán todos los cambios. Formulario - + I accept the terms and conditions above. Acepto los términos y condiciones anteriores. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acuerdo de licencia</ h1> Este procedimiento de instalación instalará el software propietario que está sujeto a los términos de licencia. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor, revise los acuerdos de licencia de usuario final (EULAs) anterior. <br/>Si usted no está de acuerdo con los términos, el procedimiento de instalación no puede continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acuerdo de licencia</ h1> Este procedimiento de configuración se puede instalar el software propietario que está sujeta a condiciones de licencia con el fin de proporcionar características adicionales y mejorar la experiencia del usuario. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor, revise los acuerdos de licencia de usuario final (EULAs) anterior.<br/>Si usted no está de acuerdo con los términos, el software propietario no se instalará, y las alternativas de código abierto se utilizarán en su lugar. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 driver</strong><br/>por %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 driver gráficos</strong><br/><font color="Grey">por %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 plugin del navegador</strong><br/><font color="Grey">por %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">por %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 paquete</strong><br/><font color="Grey">por %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">por %2</font> - + <a href="%1">view license agreement</a> <a href="%1">vista contrato de licencia</a> @@ -1184,12 +1189,12 @@ Saldrá del instalador y se perderán todos los cambios. LocaleViewStep - + Loading location data... Detectando ubicación... - + Location Ubicación @@ -1197,22 +1202,22 @@ Saldrá del instalador y se perderán todos los cambios. NetInstallPage - + Name Nombre - + Description Descripción - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalación a través de la Red. (Desactivada: no se ha podido obtener una lista de paquetes, comprueba tu conexión a la red) - + Network Installation. (Disabled: Received invalid groups data) Instalación de red. (Deshabilitada: Se recibieron grupos de datos no válidos) @@ -1220,7 +1225,7 @@ Saldrá del instalador y se perderán todos los cambios. NetInstallViewStep - + Package selection Selección de paquetes @@ -1228,242 +1233,242 @@ Saldrá del instalador y se perderán todos los cambios. PWQ - + Password is too short La contraseña es demasiado corta - + Password is too long La contraseña es demasiado larga - + Password is too weak La contraseña es demasiado débil - + Memory allocation error when setting '%1' Error de asignación de memoria al establecer '%1' - + Memory allocation error Error de asignación de memoria - + The password is the same as the old one La contraseña es la misma que la antigua - + The password is a palindrome La contraseña es un palíndromo - + The password differs with case changes only La contraseña difiere sólo en cambios de mayúsculas/minúsculas - + The password is too similar to the old one La contraseña es demasiado similar a la antigua - + The password contains the user name in some form La contraseña contiene el nombre de usuario de alguna forma - + The password contains words from the real name of the user in some form La contraseña contiene palabras procedentes del nombre real del usuario de alguna forma - + The password contains forbidden words in some form La contraseña contiene palabras prohibidas de alguna forma - + The password contains less than %1 digits La contraseña contiene menos de %1 dígitos - + The password contains too few digits La contraseña contiene demasiado pocos dígitos - + The password contains less than %1 uppercase letters La contraseña contiene menos de %1 letras mayúsculas - + The password contains too few uppercase letters La contraseña contiene demasiado pocas letras mayúsculas - + The password contains less than %1 lowercase letters La contraseña contiene menos de %1 letras mayúsculas - + The password contains too few lowercase letters La contraseña contiene demasiado pocas letras minúsculas - + The password contains less than %1 non-alphanumeric characters La contraseña contiene menos de %1 caracteres alfanuméricos - + The password contains too few non-alphanumeric characters La contraseña contiene demasiado pocos caracteres alfanuméricos - + The password is shorter than %1 characters La contraseña tiene menos de %1 caracteres - + The password is too short La contraseña es demasiado corta - + The password is just rotated old one La contraseña sólo es la antigua invertida - + The password contains less than %1 character classes La contraseña contiene menos de %1 clases de caracteres - + The password does not contain enough character classes La contraseña no contiene suficientes clases de caracteres - + The password contains more than %1 same characters consecutively La contraseña contiene más de %1 caracteres iguales consecutivamente - + The password contains too many same characters consecutively La contraseña contiene demasiados caracteres iguales consecutivamente - + The password contains more than %1 characters of the same class consecutively La contraseña contiene más de %1 caracteres de la misma clase consecutivamente - + The password contains too many characters of the same class consecutively La contraseña contiene demasiados caracteres de la misma clase consecutivamente - + The password contains monotonic sequence longer than %1 characters La contraseña contiene una secuencia monótona de más de %1 caracteres - + The password contains too long of a monotonic character sequence La contraseña contiene una secuencia monótona de caracteres demasiado larga - + No password supplied No se proporcionó contraseña - + Cannot obtain random numbers from the RNG device No se puede obtener números aleatorios del dispositivo RNG (generador de números aleatorios) - + Password generation failed - required entropy too low for settings La generación de contraseña falló - la entropía requerida es demasiado baja para la configuración - + The password fails the dictionary check - %1 La contraseña no paso el test de diccionario - %1 - + The password fails the dictionary check La contraseña no pasó el test de diccionario - + Unknown setting - %1 Configuración desconocida - %1 - + Unknown setting Configuración desconocida - + Bad integer value of setting - %1 Valor entero de la configuración erróneo - %1 - + Bad integer value Valor entero erróneo - + Setting %1 is not of integer type La configuración %1 no es de tipo entero - + Setting is not of integer type La configuración no es de tipo entero - + Setting %1 is not of string type La configuración %1 no es de tipo cadena de caracteres - + Setting is not of string type La configuración no es de tipo cadena de caracteres - + Opening the configuration file failed No se pudo abrir el fichero de configuración - + The configuration file is malformed El fichero de configuración está mal formado - + Fatal failure Fallo fatal - + Unknown error Error desconocido @@ -1602,34 +1607,34 @@ Saldrá del instalador y se perderán todos los cambios. PartitionModel - - + + Free Space Espacio libre - - + + New partition Partición nueva - + Name Nombre - + File System Sistema de archivos - + Mount Point Punto de montaje - + Size Tamaño @@ -1658,8 +1663,8 @@ Saldrá del instalador y se perderán todos los cambios. - &Create - &Crear + Cre&ate + @@ -1677,105 +1682,115 @@ Saldrá del instalador y se perderán todos los cambios. Instalar gestor de arranque en: - + Are you sure you want to create a new partition table on %1? ¿Está seguro de querer crear una nueva tabla de particiones en %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Obteniendo información del sistema... - + Partitions Particiones - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>junto a</strong> otro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Borrar</strong> disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Reemplazar</strong> una partición con %1. - + <strong>Manual</strong> partitioning. Particionamiento <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>junto a</strong> otro sistema operativo en disco <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Borrar</strong> disco <strong>%2</strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Reemplazar</strong> una partición en disco <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionamiento <strong>manual</strong> en disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1<strong> (%2) - + Current: Corriente - + After: Despúes: - + No EFI system partition configured No hay una partición del sistema EFI configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Una partición EFI del sistema es necesaria para empezar %1.<br/><br/>Para configurar una partición EFI, vuelva atrás y seleccione crear un sistema de archivos FAT32 con el argumento <strong>esp</strong> activado y montada en <strong>%2</strong>.<br/><br/>Puede continuar sin configurar una partición EFI pero su sistema puede fallar al arrancar. - + EFI system partition flag not set Bandera EFI no establecida en la partición del sistema - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Una partición EFI del sistema es necesaria para empezar %1.<br/><br/>Una partición EFI fue configurada para ser montada en <strong>%2</strong> pero su argumento <strong>esp</strong> no fue seleccionado.<br/>Para activar el argumento, vuelva atrás y edite la partición.<br/><br/>Puede continuar sin configurar el argumento pero su sistema puede fallar al arrancar. - + Boot partition not encrypted Partición de arranque no cifrada - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Se estableció una partición de arranque aparte junto con una partición raíz cifrada, pero la partición de arranque no está cifrada.<br/><br/>Hay consideraciones de seguridad con esta clase de instalación, porque los ficheros de sistema importantes se mantienen en una partición no cifrada.<br/>Puede continuar si lo desea, pero el desbloqueo del sistema de ficheros ocurrirá más tarde durante el arranque del sistema.<br/>Para cifrar la partición de arranque, retroceda y vuelva a crearla, seleccionando <strong>Cifrar</strong> en la ventana de creación de la partición. @@ -1807,30 +1822,48 @@ Saldrá del instalador y se perderán todos los cambios. Indicador de posición - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. - Por favor, escoja una apariencia para el escritorio KDE Plasma. También puede omitir este paso y configurar la apariencia una vez el sistema esté instalado. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + PlasmaLnfViewStep - + Look-and-Feel Apariencia + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. No hubo salida del comando. - + Output: @@ -1839,52 +1872,52 @@ Salida: - + External command crashed. El comando externo falló. - + Command <i>%1</i> crashed. El comando <i>%1</i> falló. - + External command failed to start. El comando externo no se pudo iniciar. - + Command <i>%1</i> failed to start. El comando <i>%1</i> no se pudo iniciar. - + Internal error when starting command. Error interno al iniciar el comando. - + Bad parameters for process job call. Parámetros erróneos para la llamada de la tarea del procreso. - + External command failed to finish. El comando externo no se pudo finalizar. - + Command <i>%1</i> failed to finish in %2 seconds. El comando <i>%1</i> no se pudo finalizar en %2 segundos. - + External command finished with errors. El comando externo finalizó con errores. - + Command <i>%1</i> finished with exit code %2. El comando <i>%1</i> finalizó con un código de salida %2. @@ -1903,22 +1936,22 @@ Salida: Por defecto - + unknown desconocido - + extended extendido - + unformatted sin formato - + swap swap @@ -2011,52 +2044,52 @@ Salida: Obteniendo información del sistema... - + has at least %1 GB available drive space tiene al menos %1 GB espacio libre en el disco - + There is not enough drive space. At least %1 GB is required. No hay suficiente espació en el disco duro. Se requiere al menos %1 GB libre. - + has at least %1 GB working memory tiene al menos %1 GB de memoria. - + The system does not have enough working memory. At least %1 GB is required. El sistema no tiene suficiente memoria. Se requiere al menos %1 GB - + is plugged in to a power source esta conectado a una fuente de alimentación - + The system is not plugged in to a power source. El sistema no esta conectado a una fuente de alimentación. - + is connected to the Internet esta conectado a Internet - + The system is not connected to the Internet. El sistema no esta conectado a Internet - + The installer is not running with administrator rights. El instalador no esta ejecutándose con permisos de administrador. - + The screen is too small to display the installer. La pantalla es demasiado pequeña para mostrar el instalador. @@ -2100,29 +2133,29 @@ Salida: SetHostNameJob - + Set hostname %1 Hostname: %1 - + Set hostname <strong>%1</strong>. Configurar hostname <strong>%1</strong>. - + Setting hostname %1. Configurando hostname %1. - - + + Internal Error Error interno - - + + Cannot write hostname to target system No es posible escribir el hostname en el sistema de destino @@ -2329,6 +2362,15 @@ Salida: Tarea de procesos del interprete de comandos + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2499,7 +2541,7 @@ Salida: UsersViewStep - + Users Usuarios @@ -2557,7 +2599,7 @@ Salida: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Agradecimientos: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg y al <a href="https://www.transifex.com/calamares/calamares/">equipo de traductores de Calamares</a>.<br/><br/> El desarrollo <a href="https://calamares.io/">Calamares</a> está patrocinado por <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberando Software. - + %1 support %1 ayuda @@ -2565,7 +2607,7 @@ Salida: WelcomeViewStep - + Welcome Bienvenido diff --git a/lang/calamares_es_MX.ts b/lang/calamares_es_MX.ts index 802c58f36..ca8bd81f6 100644 --- a/lang/calamares_es_MX.ts +++ b/lang/calamares_es_MX.ts @@ -4,17 +4,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - + El <strong>entorno de arranque </strong>de este sistema. <br><br>Sistemas antiguos x86 solo admiten <strong>BIOS</strong>. <br>Sistemas modernos usualmente usan <strong>EFI</strong>, pero podrían aparecer como BIOS si inició en modo de compatibilidad. This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - + Este sistema fue iniciado con un entorno de arranque <strong>EFI. </strong><br><br>Para configurar el arranque desde un entorno EFI, este instalador debe hacer uso de un cargador de arranque, como <strong>GRUB</strong>, <strong>system-boot </strong> o una <strong>Partición de sistema EFI</strong>. Esto es automático, a menos que escoja el particionado manual, en tal caso debe escogerla o crearla por su cuenta. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - + Este sistema fue iniciado con un entorno de arranque <strong>BIOS. </strong><br><br>Para configurar el arranque desde un entorno BIOS, este instalador debe instalar un gestor de arranque como <strong>GRUB</strong>, ya sea al inicio de la partición o en el <strong> Master Boot Record</strong> cerca del inicio de la tabla de particiones (preferido). Esto es automático, a menos que escoja el particionado manual, en este caso debe configurarlo por su cuenta. @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Página en blanco + + Calamares::DebugWindow @@ -76,12 +84,12 @@ none - + ninguno Interface: - + Interfaz: @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalar @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Hecho @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Ejecutar comando %1 %2 - + Running command %1 %2 Ejecutando comando %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Ejecutando operación %1. - + Bad working directory path Ruta a la carpeta de trabajo errónea - + Working directory %1 for python job %2 is not readable. - La carpeta de trabajo %1 para la tarea de python %2 no se pudo leer. + La carpeta de trabajo %1 para la tarea de python %2 no es accesible. - + Bad main script file Script principal erróneo - + Main script file %1 for python job %2 is not readable. El script principal %1 del proceso python %2 no es accesible. - + Boost.Python error in job "%1". Error Boost.Python en el proceso "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Atrás - + + &Next &Siguiente - - + + &Cancel &Cancelar - - + + Cancel installation without changing the system. - + Cancelar instalación sin cambiar el sistema. + + + + Calamares Initialization Failed + La inicialización de Calamares ha fallado + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 no pudo ser instalado. Calamares no pudo cargar todos los módulos configurados. Este es un problema con la forma en que Calamares esta siendo usada por la distribución. + + + + <br/>The following modules could not be loaded: + <br/>Los siguientes módulos no pudieron ser cargados: - + + &Install + &Instalar + + + Cancel installation? - Cancelar la instalación? + ¿Cancelar la instalación? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - Realmente desea cancelar el proceso de instalación actual? + ¿Realmente desea cancelar el proceso de instalación actual? El instalador terminará y se perderán todos los cambios. - + &Yes - + &Si - + &No - + &No - + &Close - + &Cerrar - + Continue with setup? - Continuar con la instalación? + ¿Continuar con la instalación? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> El instalador %1 va a realizar cambios en su disco para instalar %2.<br/><strong>No podrá deshacer estos cambios.</strong> - + &Install now &Instalar ahora - + Go &back &Regresar - + &Done - + &Hecho - + The installation is complete. Close the installer. - + Instalación completa. Cierre el instalador. - + Error Error - + Installation Failed Instalación Fallida @@ -253,12 +282,12 @@ El instalador terminará y se perderán todos los cambios. Unknown exception type - Excepción desconocida + Tipo de excepción desconocida unparseable Python error - error no analizable Python + error Python no analizable @@ -268,7 +297,7 @@ El instalador terminará y se perderán todos los cambios. Unfetchable Python error. - Error de Python Unfetchable. + Error de Python inalcanzable. @@ -299,8 +328,7 @@ El instalador terminará y se perderán todos los cambios. This program will ask you some questions and set up %2 on your computer. - El programa le hará algunas preguntas y configurará %2 en su ordenador. - + El programa le hará algunas preguntas y configurará %2 en su ordenador. @@ -338,7 +366,7 @@ El instalador terminará y se perderán todos los cambios. %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - + %1 será reducido a %2MB y una nueva partición %3MB will be created for %4. @@ -356,7 +384,7 @@ El instalador terminará y se perderán todos los cambios. Reuse %1 as home partition for %2. - + Reuse %1 como partición home para %2. @@ -387,7 +415,7 @@ El instalador terminará y se perderán todos los cambios. This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento parece no tener un sistema operativo en el. ¿que le gustaría hacer?<br/> Usted podrá revisar y confirmar sus elecciones antes que cualquier cambio se realice al dispositivo de almacenamiento. @@ -395,12 +423,12 @@ El instalador terminará y se perderán todos los cambios. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - + <strong>Borrar disco</strong> <br/>Esto <font color="red">borrará</font> todos los datos presentes actualmente en el dispositivo de almacenamiento seleccionado. This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento tiene %1 en el. ¿Que le gustaría hacer? <br/>Usted podrá revisar y confirmar sus elecciones antes de que cualquier cambio se realice al dispositivo de almacenamiento. @@ -408,7 +436,7 @@ El instalador terminará y se perderán todos los cambios. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - + <strong>Instalar junto a</strong> <br/>El instalador reducirá una partición con el fin de hacer espacio para %1. @@ -416,36 +444,35 @@ El instalador terminará y se perderán todos los cambios. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>Reemplazar una partición</strong> <br/>Reemplaza una partición con %1. This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento ya tiene un sistema operativo en el. ¿Que le gustaría hacer?<br/> Usted podrá revisar y confirmar sus elecciones antes que cualquier cambio se realice al dispositivo de almacenamiento. This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Este dispositivo de almacenamiento tiene múltiples sistemas operativos en el. ¿Que le gustaria hacer?<br/> Usted podrá revisar y confirmar sus elecciones antes que cualquier cambio se realice al dispositivo de almacenamiento. ClearMountsJob - + Clear mounts for partitioning operations on %1 - <b>Instalar %1 en una partición existente</b><br/>Podrás elegir que partición borrar. + Borrar puntos de montaje para operaciones de particionamiento en %1 - + Clearing mounts for partitioning operations on %1. - Limpiar puntos de montaje para operaciones de particionamiento en %1 + Borrando puntos de montaje para operaciones de particionamiento en %1. - + Cleared all mounts for %1 - Todas las unidades desmontadas en %1 - + Puntos de montaje despejados para %1 @@ -453,12 +480,12 @@ El instalador terminará y se perderán todos los cambios. Clear all temporary mounts. - Quitar todos los puntos de montaje temporales. + Despejar todos los puntos de montaje temporales. Clearing all temporary mounts. - Limpiando todos los puntos de montaje temporales. + Despejando todos los puntos de montaje temporales. @@ -468,28 +495,34 @@ El instalador terminará y se perderán todos los cambios. Cleared all temporary mounts. - Se han quitado todos los puntos de montaje temporales. + Todos los puntos de montaje temporales despejados. CommandList - + + Could not run command. - + No puede ejecutarse el comando. + + + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Este comando se ejecuta en el entorno host y necesita saber la ruta root, pero no hay rootMountPoint definido. - - No rootMountPoint is defined, so command cannot be run in the target environment. - + + The command needs to know the user's name, but no username is defined. + Este comando necesita saber el nombre de usuario, pero no hay nombre de usuario definido. ContextualProcessJob - + Contextual Processes Job - + Tareas de procesos contextuales @@ -497,12 +530,12 @@ El instalador terminará y se perderán todos los cambios. Create a Partition - Crear partición + Crear una Partición MiB - + MiB @@ -527,47 +560,47 @@ El instalador terminará y se perderán todos los cambios. LVM LV name - + Nombre del LVM LV. Flags: - Banderas: + Indicadores: &Mount Point: - Punto de &montaje: + Punto de &Montaje: Si&ze: - &Tamaño: + Ta&maño: - + En&crypt - + En&criptar - + Logical Lógica - + Primary Primaria - + GPT GPT - + Mountpoint already in use. Please select another one. - + Punto de montaje ya esta en uso. Por favor seleccione otro. @@ -626,7 +659,7 @@ El instalador terminará y se perderán todos los cambios. Create new %1 partition table on %2. - Crear nueva tabla de particiones %1 en %2 + Crear nueva tabla de partición %1 en %2. @@ -647,70 +680,40 @@ El instalador terminará y se perderán todos los cambios. CreateUserJob - + Create user %1 Crear usuario %1 - + Create user <strong>%1</strong>. Crear usuario <strong>%1</strong>. - + Creating user %1. Creando cuenta de susuario %1. - + Sudoers dir is not writable. El directorio "Sudoers" no es editable. - + Cannot create sudoers file for writing. No se puede crear el archivo sudoers para editarlo. - + Cannot chmod sudoers file. No se puede aplicar chmod al archivo sudoers. - + Cannot open groups file for reading. No se puede abrir el archivo groups para lectura. - - - Cannot create user %1. - No se puede crear el usuario %1. - - - - useradd terminated with error code %1. - useradd ha finalizado con elcódigo de error %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod ha terminado con el código de error %1 - - - - Cannot set home directory ownership for user %1. - No se pueden aplicar permisos de propiedad a la carpeta home para el usuario %1. - - - - chown terminated with error code %1. - chown ha finalizado con elcódigo de error %1. - DeletePartitionJob @@ -740,32 +743,32 @@ El instalador terminará y se perderán todos los cambios. The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. - + Este tipo de <strong>tabla de partición</strong> en el dispositivo de almacenamiento seleccionado.<br> <br>La única forma de cambiar el tipo de tabla de partición es borrar y recrear la tabla de partición de cero. lo cual destruye todos los datos en el dispositivo de almacenamiento.<br> Este instalador conservará la actual tabla de partición a menos que usted explícitamente elija lo contrario. <br>Si no está seguro, en los sistemas modernos GPT es lo preferible. This device has a <strong>%1</strong> partition table. - + Este dispositivo tiene una tabla de partición <strong>%1</strong> This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. - + Este es un dispositivo<br> <strong>loop</strong>. <br>Es un pseudo - dispositivo sin tabla de partición que hace un archivo accesible como un dispositivo bloque. Este tipo de configuración usualmente contiene un solo sistema de archivos. This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. - + Este instalador <strong>no puede detectar una tabla de partición</strong> en el dispositivo de almacenamiento seleccionado.<br> <br>El dispositivo o no tiene tabla de partición, o la tabla de partición esta corrupta o de un tipo desconocido. <br>Este instalador puede crear una nueva tabla de partición por usted ya sea automáticamente, o a través de la página de particionado manual. <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - + <br><br>Este es el tipo de tabla de partición recomendada para sistemas modernos que inician desde un entorno de arranque <strong>EFI</strong>. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>Este tipo de tabla de partición solo es recomendable en sistemas antiguos que inician desde un entorno de arranque <strong>BIOS</strong>. GPT es recomendado en la otra mayoría de casos.<br><br><strong> Precaución:</strong> La tabla de partición MBR es una era estándar MS-DOS obsoleta.<br> Unicamente 4 particiones <em>primarias</em> pueden ser creadas, y de esas 4, una puede ser una partición <em>extendida</em>, la cual puede a su vez contener varias particiones <em>logicas</em>. @@ -781,25 +784,25 @@ El instalador terminará y se perderán todos los cambios. Write LUKS configuration for Dracut to %1 - + Escribe configuración LUKS para Dracut a %1 Skip writing LUKS configuration for Dracut: "/" partition is not encrypted - + Omitir escritura de configuración LUKS por Dracut: "/" partición no está encriptada. Failed to open %1 - + Falla al abrir %1 DummyCppJob - + Dummy C++ Job - + Trabajo C++ Simulado @@ -842,7 +845,7 @@ El instalador terminará y se perderán todos los cambios. MiB - + MiB @@ -852,12 +855,12 @@ El instalador terminará y se perderán todos los cambios. Flags: - Banderas: + Indicadores: - + Mountpoint already in use. Please select another one. - + Punto de montaje ya esta en uso. Por favor seleccione otro. @@ -870,22 +873,22 @@ El instalador terminará y se perderán todos los cambios. En&crypt system - + En&criptar sistema Passphrase - + Contraseña segura Confirm passphrase - + Confirmar contraseña segura Please enter the same passphrase in both boxes. - + Favor ingrese la misma contraseña segura en ambas casillas. @@ -898,7 +901,7 @@ El instalador terminará y se perderán todos los cambios. Install %1 on <strong>new</strong> %2 system partition. - Instalar %1 en <strong>nueva</strong> partición de sistema %2. + Instalar %1 en <strong>nueva</strong> %2 partición de sistema. @@ -931,12 +934,12 @@ El instalador terminará y se perderán todos los cambios. Form - Forma + Formulario <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Cuando esta casilla esta chequeada, su sistema reiniciará inmediatamente cuando de click en <span style=" font-style:italic;">Hecho</span> o cierre el instalador.</p></body></html> @@ -944,14 +947,14 @@ El instalador terminará y se perderán todos los cambios. &Reiniciar ahora - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Listo.</h1><br/>%1 ha sido instalado en su computadora.<br/>Ahora puede reiniciar su nuevo sistema, o continuar usando el entorno Live %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Instalación fallida</h1> <br/>%1 no ha sido instalado en su computador. <br/>El mensaje de error es: %2. @@ -964,12 +967,12 @@ El instalador terminará y se perderán todos los cambios. Installation Complete - + Instalación Completa The installation of %1 is complete. - + La instalación de %1 está completa. @@ -1005,7 +1008,7 @@ El instalador terminará y se perderán todos los cambios. Please install KDE Konsole and try again! - + Favor instale la Konsola KDE e intentelo de nuevo! @@ -1024,12 +1027,12 @@ El instalador terminará y se perderán todos los cambios. KeyboardPage - + Set keyboard model to %1.<br/> Ajustar el modelo de teclado a %1.<br/> - + Set keyboard layout to %1/%2. Ajustar teclado a %1/%2. @@ -1062,7 +1065,7 @@ El instalador terminará y se perderán todos los cambios. &OK - + &OK @@ -1073,64 +1076,64 @@ El instalador terminará y se perderán todos los cambios. Formulario - + I accept the terms and conditions above. Acepto los terminos y condiciones anteriores. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acuerdo de Licencia</h1>Este procediemiento de configuración instalará software que está sujeto a terminos de la licencia. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor, revise el acuerdo de licencia de usuario final (EULAs) anterior. <br/>Si usted no está de acuerdo con los términos, el procedimiento de configuración no podrá continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acuerdo de licencia</ h1> Este procedimiento de configuración se puede instalar software privativo que está sujeto a condiciones de licencia con el fin de proporcionar características adicionales y mejorar la experiencia del usuario. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor revise los acuerdos de licencia de usuario final (EULAs) anterior.<br/>Si usted no está de acuerdo con los términos, el software privativo no se instalará, y las alternativas de código abierto se utilizarán en su lugar. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>controlador %1</strong><br/>por %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>controladores gráficos de %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>plugin del navegador %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>codec %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>paquete %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">por %2</font> - + <a href="%1">view license agreement</a> <a href="%1">ver acuerdo de licencia</a> @@ -1148,12 +1151,12 @@ El instalador terminará y se perderán todos los cambios. The system language will be set to %1. - + El lenguaje del sistema será establecido a %1. The numbers and dates locale will be set to %1. - + Los números y datos locales serán establecidos a %1. @@ -1186,12 +1189,12 @@ El instalador terminará y se perderán todos los cambios. LocaleViewStep - + Loading location data... Cargando datos de ubicación... - + Location Ubicación @@ -1199,275 +1202,275 @@ El instalador terminará y se perderán todos los cambios. NetInstallPage - + Name Nombre - + Description - + Descripción - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Instalación de Red. (Deshabilitada: No se puede acceder a la lista de paquetes, verifique su conección de red) - + Network Installation. (Disabled: Received invalid groups data) - + Instalación de Red. (Deshabilitada: Grupos de datos invalidos recibidos) NetInstallViewStep - + Package selection - + Selección de paquete PWQ - + Password is too short - + La contraseña es muy corta - + Password is too long - + La contraseña es muy larga - + Password is too weak - + La contraseña es muy débil - + Memory allocation error when setting '%1' - + Error de asignación de memoria al configurar '%1' - + Memory allocation error - + Error en la asignación de memoria - + The password is the same as the old one - + La contraseña es la misma que la anterior - + The password is a palindrome - + La contraseña es un Palíndromo - + The password differs with case changes only - + La contraseña solo difiere en cambios de mayúsculas y minúsculas - + The password is too similar to the old one - + La contraseña es muy similar a la anterior. - + The password contains the user name in some form - + La contraseña contiene el nombre de usuario de alguna forma - + The password contains words from the real name of the user in some form - + La contraseña contiene palabras del nombre real del usuario de alguna forma - + The password contains forbidden words in some form - + La contraseña contiene palabras prohibidas de alguna forma - + The password contains less than %1 digits - + La contraseña contiene menos de %1 dígitos - + The password contains too few digits - + La contraseña contiene muy pocos dígitos - + The password contains less than %1 uppercase letters - + La contraseña contiene menos de %1 letras mayúsculas - + The password contains too few uppercase letters - + La contraseña contiene muy pocas letras mayúsculas - + The password contains less than %1 lowercase letters - + La contraseña continee menos de %1 letras minúsculas - + The password contains too few lowercase letters - + La contraseña contiene muy pocas letras minúsculas - + The password contains less than %1 non-alphanumeric characters - + La contraseña contiene menos de %1 caracteres no alfanuméricos - + The password contains too few non-alphanumeric characters - + La contraseña contiene muy pocos caracteres alfanuméricos - + The password is shorter than %1 characters - + La contraseña es mas corta que %1 caracteres - + The password is too short - + La contraseña es muy corta - + The password is just rotated old one - + La contraseña solo es la rotación de la anterior - + The password contains less than %1 character classes - + La contraseña contiene menos de %1 tipos de caracteres - + The password does not contain enough character classes - + La contraseña no contiene suficientes tipos de caracteres - + The password contains more than %1 same characters consecutively - + La contraseña contiene más de %1 caracteres iguales consecutivamente - + The password contains too many same characters consecutively - + La contraseña contiene muchos caracteres iguales repetidos consecutivamente - + The password contains more than %1 characters of the same class consecutively - + La contraseña contiene mas de %1 caracteres de la misma clase consecutivamente - + The password contains too many characters of the same class consecutively - + La contraseña contiene muchos caracteres de la misma clase consecutivamente - + The password contains monotonic sequence longer than %1 characters - + La contraseña contiene secuencias monotónicas mas larga que %1 caracteres - + The password contains too long of a monotonic character sequence - + La contraseña contiene secuencias monotónicas muy largas - + No password supplied - + Contraseña no suministrada - + Cannot obtain random numbers from the RNG device - + No pueden obtenerse números aleatorios del dispositivo RING - + Password generation failed - required entropy too low for settings - + Generación de contraseña fallida - entropía requerida muy baja para los ajustes - + The password fails the dictionary check - %1 - + La contraseña falla el chequeo del diccionario %1 - + The password fails the dictionary check - + La contraseña falla el chequeo del diccionario - + Unknown setting - %1 - + Configuración desconocida - %1 - + Unknown setting - + Configuración desconocida - + Bad integer value of setting - %1 - + Valor entero de configuración incorrecto - %1 - + Bad integer value - + Valor entero incorrecto - + Setting %1 is not of integer type - + Ajuste de % 1 no es de tipo entero - + Setting is not of integer type - + Ajuste no es de tipo entero - + Setting %1 is not of string type - + El ajuste %1 no es de tipo cadena - + Setting is not of string type - + El ajuste no es de tipo cadena - + Opening the configuration file failed - + Apertura del archivo de configuración fallida - + The configuration file is malformed - + El archivo de configuración está malformado - + Fatal failure - + Falla fatal - + Unknown error - + Error desconocido @@ -1563,32 +1566,32 @@ El instalador terminará y se perderán todos los cambios. Root - + Root Home - + Home Boot - + Boot EFI system - + Sistema EFI Swap - + Swap New partition for %1 - + Partición nueva para %1 @@ -1598,40 +1601,40 @@ El instalador terminará y se perderán todos los cambios. %1 %2 - + %1 %2 PartitionModel - - + + Free Space Espacio libre - - + + New partition Partición nueva - + Name Nombre - + File System Sistema de archivos - + Mount Point Punto de montaje - + Size Tamaño @@ -1646,7 +1649,7 @@ El instalador terminará y se perderán todos los cambios. Storage de&vice: - + Dis&positivo de almacenamiento: @@ -1660,8 +1663,8 @@ El instalador terminará y se perderán todos los cambios. - &Create - &Crear + Cre&ate + Cre&ar @@ -1676,110 +1679,120 @@ El instalador terminará y se perderán todos los cambios. Install boot &loader on: - + Instalar &cargador de arranque en: - + Are you sure you want to create a new partition table on %1? ¿Está seguro de querer crear una nueva tabla de particiones en %1? + + + Can not create new partition + No se puede crear nueva partición + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + La tabla de partición en %1 ya tiene %2 particiones primarias, y no pueden agregarse mas. Favor remover una partición primaria y en cambio, agregue una partición extendida. + PartitionViewStep - + Gathering system information... Obteniendo información del sistema... - + Partitions Particiones - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>junto con</strong> otro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Borrar</strong> el disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Reemplazar</strong> una parición con %1. - + <strong>Manual</strong> partitioning. Particionamiento <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>junto con</strong> otro sistema operativo en el disco <strong>%2</strong>(%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - <strong>Borrar</strong> el disco <strong>%2<strong> (%3) e instalar %1. + <strong>Borrar</strong> el disco <strong>%2<strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Reemplazar</strong> una parición en el disco <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionar <strong>manualmente</strong> el disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Actual: - + After: Después: - + No EFI system partition configured - + Sistema de partición EFI no configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + Un sistema de partición EFI es necesario para iniciar %1. <br/><br/>Para configurar un sistema de partición EFI, Regrese y seleccione o cree un sistema de archivos FAT32 con la bandera <strong>esp</strong> activada y el punto de montaje <strong>%2</strong>. <br/><br/>Puede continuar sin configurar una partición de sistema EFI, pero su sistema podría fallar al iniciar. - + EFI system partition flag not set - + Indicador de partición del sistema EFI no configurado - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Una partición del sistema EFI es necesaria para iniciar% 1. <br/><br/>Una partición se configuró con el punto de montaje <strong>% 2</strong>, pero su bandera <strong>esp</strong> no está configurada. <br/>Para establecer el indicador, retroceda y edite la partición.<br/><br/> Puede continuar sin configurar el indicador, pero su sistema puede fallar al iniciar. - + Boot partition not encrypted - + Partición de arranque no encriptada - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. - + Se creó una partición de arranque separada junto con una partición raíz cifrada, pero la partición de arranque no está encriptada.<br/><br/> Existen problemas de seguridad con este tipo de configuración, ya que los archivos importantes del sistema se guardan en una partición no encriptada. <br/>Puede continuar si lo desea, pero el desbloqueo del sistema de archivos ocurrirá más tarde durante el inicio del sistema. <br/>Para encriptar la partición de arranque, retroceda y vuelva a crearla, seleccionando <strong>Encriptar</strong> en la ventana de creación de la partición. @@ -1787,13 +1800,13 @@ El instalador terminará y se perderán todos los cambios. Plasma Look-and-Feel Job - + Trabajo Plasma Look-and-Feel Could not select KDE Plasma Look-and-Feel package - + No se pudo seleccionar el paquete KDE Plasma Look-and-Feel @@ -1806,86 +1819,107 @@ El instalador terminará y se perderán todos los cambios. Placeholder - + Marcador de posición - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. - + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + Favor seleccione un Escritorio Plasma KDE Look-and-Feel. También puede omitir este paso y configurar el Look-and-Feel una vez el sistema está instalado. Haciendo clic en la selección Look-and-Feel le dará una previsualización en vivo de ese Look-and-Feel. PlasmaLnfViewStep - + Look-and-Feel - + Look-and-Feel + + + + PreserveFiles + + + Saving files for later ... + Guardando archivos para más tarde ... + + + + No files configured to save for later. + No hay archivos configurados para guardar más tarde. + + + + Not all of the configured files could be preserved. + No todos los archivos configurados podrían conservarse. ProcessResult - + There was no output from the command. - + +No hubo salida desde el comando. - + Output: - + +Salida + - + External command crashed. - + El comando externo ha fallado. - + Command <i>%1</i> crashed. - + El comando <i>%1</i> ha fallado. - + External command failed to start. - + El comando externo falló al iniciar. - + Command <i>%1</i> failed to start. - + El comando <i>%1</i> Falló al iniciar. - + Internal error when starting command. - + Error interno al iniciar el comando. - + Bad parameters for process job call. Parámetros erróneos en la llamada al proceso. - + External command failed to finish. - + Comando externo falla al finalizar - + Command <i>%1</i> failed to finish in %2 seconds. - + Comando <i>%1</i> falló al finalizar en %2 segundos. - + External command finished with errors. - + Comando externo finalizado con errores - + Command <i>%1</i> finished with exit code %2. - + Comando <i>%1</i> finalizó con código de salida %2. @@ -1902,29 +1936,29 @@ Output: Por defecto - + unknown - + desconocido - + extended - + extendido - + unformatted - + no formateado - + swap - + swap Unpartitioned space or unknown partition table - + Espacio no particionado o tabla de partición desconocida @@ -2011,54 +2045,54 @@ Output: Obteniendo información del sistema... - + has at least %1 GB available drive space tiene al menos %1 GB de espacio en disco disponible - + There is not enough drive space. At least %1 GB is required. No hay suficiente espacio disponible en disco. Se requiere al menos %1 GB. - + has at least %1 GB working memory tiene al menos %1 GB de memoria para trabajar - + The system does not have enough working memory. At least %1 GB is required. No hay suficiente espacio disponible en disco. Se requiere al menos %1 GB. - + is plugged in to a power source está conectado a una fuente de energía - + The system is not plugged in to a power source. El sistema no está conectado a una fuente de energía. - + is connected to the Internet está conectado a Internet - + The system is not connected to the Internet. El sistema no está conectado a Internet. - + The installer is not running with administrator rights. El instalador no se está ejecutando con privilegios de administrador. - + The screen is too small to display the installer. - + La pantalla es muy pequeña para mostrar el instalador @@ -2089,40 +2123,40 @@ Output: Scanning storage devices... - + Escaneando dispositivos de almacenamiento... Partitioning - + Particionando SetHostNameJob - + Set hostname %1 Hostname: %1 - + Set hostname <strong>%1</strong>. Establecer nombre del equipo <strong>%1</strong>. - + Setting hostname %1. Configurando nombre de host %1. - - + + Internal Error Error interno - - + + Cannot write hostname to target system No es posible escribir el hostname en el sistema de destino @@ -2154,7 +2188,7 @@ Output: Failed to write keyboard configuration to existing /etc/default directory. - + Fallo al escribir la configuración del teclado en el directorio /etc/default existente. @@ -2162,82 +2196,82 @@ Output: Set flags on partition %1. - + Establecer indicadores en la partición% 1. Set flags on %1MB %2 partition. - + Establecer indicadores en la partición %1MB %2. Set flags on new partition. - + Establecer indicadores en la nueva partición. Clear flags on partition <strong>%1</strong>. - + Borrar indicadores en la partición <strong>%1</strong>. Clear flags on %1MB <strong>%2</strong> partition. - + Borrar indicadores %1MB en la partición <strong>%2</strong>. Clear flags on new partition. - + Borrar indicadores en la nueva partición. Flag partition <strong>%1</strong> as <strong>%2</strong>. - + Indicador de partición <strong>%1</strong> como <strong>%2</strong>. Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - + Indicador %1MB de partición <strong>%2</strong> como <strong>%3</strong>. Flag new partition as <strong>%1</strong>. - + Marcar la nueva partición como <strong>%1</strong>. Clearing flags on partition <strong>%1</strong>. - + Borrar indicadores en la partición <strong>%1</strong>. Clearing flags on %1MB <strong>%2</strong> partition. - + Borrar indicadores en la partición %1MB <strong>%2</strong>. Clearing flags on new partition. - + Borrar indicadores en la nueva partición. Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - + Establecer indicadores <strong>%2</strong> en la partición <strong>%1</strong>. Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - + Establecer indicadores <strong>%3</strong> en partición %1MB <strong>%2</strong> Setting flags <strong>%1</strong> on new partition. - + Establecer indicadores <strong>%1</strong> en nueva partición. The installer failed to set flags on partition %1. - + El instalador no pudo establecer indicadores en la partición% 1. @@ -2265,12 +2299,12 @@ Output: Cannot disable root account. - + No se puede deshabilitar la cuenta root. passwd terminated with error code %1. - + Contraseña terminada con un error de código %1. @@ -2326,7 +2360,16 @@ Output: Shell Processes Job - + Trabajo de procesos Shell + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 @@ -2350,22 +2393,22 @@ Output: Installation feedback - + Retroalimentacion de la instalación Sending installation feedback. - + Envío de retroalimentación de instalación. Internal error in install-tracking. - + Error interno en el seguimiento de instalación. HTTP request timed out. - + Tiempo de espera en la solicitud HTTP agotado. @@ -2373,28 +2416,28 @@ Output: Machine feedback - + Retroalimentación de la maquina Configuring machine feedback. - + Configurando la retroalimentación de la maquina. Error in machine feedback configuration. - + Error en la configuración de retroalimentación de la máquina. Could not configure machine feedback correctly, script error %1. - + No se pudo configurar correctamente la retroalimentación de la máquina, error de script% 1. Could not configure machine feedback correctly, Calamares error %1. - + No se pudo configurar la retroalimentación de la máquina correctamente, Calamares error% 1. @@ -2407,51 +2450,51 @@ Output: Placeholder - + Marcador de posición <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Al seleccionar esto, usted no enviará <span style=" font-weight:600;">ninguna información</span> acerca de su instalacion.</p></body></html> TextLabel - + Etiqueta de texto ... - + ... <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Haga clic aquí para más información acerca de comentarios del usuario</span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - + El seguimiento de instalación ayuda a% 1 a ver cuántos usuarios tienen, qué hardware instalan% 1 y (con las dos últimas opciones a continuación), obtener información continua sobre las aplicaciones preferidas. Para ver qué se enviará, haga clic en el ícono de ayuda al lado de cada área. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - + Al seleccionar esto usted enviará información acerca de su instalación y hardware. Esta informacion será <b>enviada unicamente una vez</b> después de terminada la instalación. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + Al seleccionar esto usted enviará información <b>periodicamente</b> acerca de su instalación, hardware y aplicaciones a %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + Al seleccionar esto usted enviará información <b>regularmente</b> acerca de su instalación, hardware y patrones de uso de aplicaciones a %1. @@ -2459,7 +2502,7 @@ Output: Feedback - + Retroalimentación @@ -2499,7 +2542,7 @@ Output: UsersViewStep - + Users Usuarios @@ -2544,7 +2587,7 @@ Output: <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Bienvenido al instalador Calamares para %1.</h1> @@ -2554,10 +2597,10 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>por %3</strong><br/><br/>Derechos de autor 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt; <br/> Derechos de autor 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/> Gracias a Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg y al <a href="https://www.transifex.com/calamares/calamares/">equipo de traductores Calamares</a>. <br/><br/> Desarrollo de <a href="https://calamares.io/">Calamares</a> patrocinado por <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 Soporte @@ -2565,7 +2608,7 @@ Output: WelcomeViewStep - + Welcome Bienvenido diff --git a/lang/calamares_es_PR.ts b/lang/calamares_es_PR.ts index 43165c76d..5b5580924 100644 --- a/lang/calamares_es_PR.ts +++ b/lang/calamares_es_PR.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalar @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Hecho @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Ejecutar comando %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path La ruta del directorio de trabajo es incorrecta - + Working directory %1 for python job %2 is not readable. El directorio de trabajo %1 para el script de python %2 no se puede leer. - + Bad main script file Script principal erróneo - + Main script file %1 for python job %2 is not readable. El script principal %1 del proceso python %2 no es accesible. - + Boost.Python error in job "%1". Error Boost.Python en el proceso "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back &Atrás - + + &Next &Próximo - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error Error - + Installation Failed Falló la instalación @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. Formulario - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location Ubicación @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Parámetros erróneos para el trabajo en proceso. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_et.ts b/lang/calamares_et.ts index 0afe5cf04..ebbcbcf02 100644 --- a/lang/calamares_et.ts +++ b/lang/calamares_et.ts @@ -4,17 +4,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - + Selle süsteemi <strong>käivituskeskkond</strong>.<br><br>Vanemad x86 süsteemid toetavad ainult <strong>BIOS</strong>i.<br>Modernsed süsteemid tavaliselt kasutavad <strong>EFI</strong>t, aga võib ka kasutada BIOSi, kui käivitatakse ühilduvusrežiimis. This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - + See süsteem käivitati <strong>EFI</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust EFI keskkonnast, peab see paigaldaja paigaldama käivituslaaduri rakenduse, näiteks <strong>GRUB</strong> või <strong>systemd-boot</strong> sinu <strong>EFI süsteemipartitsioonile</strong>. See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle valima või ise looma. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - + See süsteem käivitati <strong>BIOS</strong> käivituskeskkonnas.<br><br>Et seadistada käivitust BIOS keskkonnast, peab see paigaldaja paigaldama käivituslaaduri, näiteks <strong>GRUB</strong>, kas mõne partitsiooni algusse või <strong>Master Boot Record</strong>'i paritsioonitabeli alguse lähedale (eelistatud). See on automaatne, välja arvatud juhul, kui valid käsitsi partitsioneerimise, sel juhul pead sa selle ise seadistama. @@ -22,27 +22,35 @@ Master Boot Record of %1 - + %1 Master Boot Record Boot Partition - + Käivituspartitsioon System Partition - + Süsteemipartitsioon Do not install a boot loader - + Ära paigalda käivituslaadurit %1 (%2) - + %1 (%2) + + + + Calamares::BlankViewStep + + + Blank Page + Tühi leht @@ -50,62 +58,62 @@ Form - + Form GlobalStorage - + GlobalStorage JobQueue - + JobQueue Modules - + Moodulid Type: - + Tüüp: none - + puudub Interface: - + Liides: Tools - + Tööriistad Debug information - + Silumisteave Calamares::ExecutionViewStep - + Install - + Paigalda Calamares::JobThread - + Done Valmis @@ -113,138 +121,160 @@ Calamares::ProcessJob - + Run command %1 %2 - + Käivita käsklus %1 %2 - + Running command %1 %2 - + Käivitan käsklust %1 %2 Calamares::PythonJob - + Running %1 operation. - + Käivitan %1 tegevust. - + Bad working directory path - + Halb töökausta tee - + Working directory %1 for python job %2 is not readable. - + Töökaust %1 python tööle %2 pole loetav. - + Bad main script file - + Halb põhiskripti fail - + Main script file %1 for python job %2 is not readable. - + Põhiskripti fail %1 python tööle %2 pole loetav. - + Boost.Python error in job "%1". - + Boost.Python viga töös "%1". Calamares::ViewManager - + &Back - + &Tagasi - + + &Next - + &Edasi - - + + &Cancel - + &Tühista - - + + Cancel installation without changing the system. - + Tühista paigaldamine ilma süsteemi muutmata. + + + + Calamares Initialization Failed + Calamarese alglaadimine ebaõnnestus + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 ei saa paigaldada. Calamares ei saanud laadida kõiki konfigureeritud mooduleid. See on distributsiooni põhjustatud Calamarese kasutamise viga. + + + + <br/>The following modules could not be loaded: + <br/>Järgnevaid mooduleid ei saanud laadida: - + + &Install + &Paigalda + + + Cancel installation? - + Tühista paigaldamine? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + Kas sa tõesti soovid tühistada praeguse paigaldusprotsessi? +Paigaldaja sulgub ning kõik muutused kaovad. - + &Yes - + &Jah - + &No - + &Ei - + &Close - + &Sulge - + Continue with setup? - + Jätka seadistusega? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + %1 paigaldaja on tegemas muudatusi sinu kettale, et paigaldada %2.<br/><strong>Sa ei saa neid muudatusi tagasi võtta.</strong> - + &Install now - + &Paigalda kohe - + Go &back - + Mine &tagasi - + &Done - + &Valmis - + The installation is complete. Close the installer. - + Paigaldamine on lõpetatud. Sulge paigaldaja. - + Error Viga - + Installation Failed - + Paigaldamine ebaõnnestus @@ -252,22 +282,22 @@ The installer will quit and all changes will be lost. Unknown exception type - + Tundmatu veateade unparseable Python error - + mittetöödeldav Python'i viga unparseable Python traceback - + mittetöödeldav Python'i traceback Unfetchable Python error. - + Kättesaamatu Python'i viga. @@ -275,12 +305,12 @@ The installer will quit and all changes will be lost. %1 Installer - + %1 paigaldaja Show debug information - + Kuva silumisteavet @@ -288,27 +318,27 @@ The installer will quit and all changes will be lost. This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + See arvuti ei rahulda %1 paigldamiseks vajalikke minimaaltingimusi.<br/>Paigaldamine ei saa jätkuda. <a href="#details">Detailid...</a> This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + See arvuti ei rahulda mõnda %1 paigaldamiseks soovitatud tingimust.<br/>Paigaldamine võib jätkuda, ent mõned funktsioonid võivad olla keelatud. This program will ask you some questions and set up %2 on your computer. - + See programm küsib sult mõned küsimused ja seadistab %2 sinu arvutisse. For best results, please ensure that this computer: - + Parimate tulemuste jaoks palun veendu, et see arvuti: System requirements - + Süsteeminõudmised @@ -316,32 +346,32 @@ The installer will quit and all changes will be lost. Form - + Form After: - + Pärast: <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - + <strong>Käsitsi partitsioneerimine</strong><br/>Sa võid ise partitsioone luua või nende suurust muuta. Boot loader location: - + Käivituslaaduri asukoht: %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - + %1 vähendatakse suuruseni %2MB ja %4 jaoks luuakse uus %3MB partitsioon. Select storage de&vice: - + Vali mäluseade: @@ -349,42 +379,42 @@ The installer will quit and all changes will be lost. Current: - + Hetkel: Reuse %1 as home partition for %2. - + Taaskasuta %1 %2 kodupartitsioonina. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - + <strong>Vali vähendatav partitsioon, seejärel sikuta alumist riba suuruse muutmiseks</strong> <strong>Select a partition to install on</strong> - + <strong>Vali partitsioon, kuhu paigaldada</strong> An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + EFI süsteemipartitsiooni ei leitud sellest süsteemist. Palun mine tagasi ja kasuta käsitsi partitsioonimist, et seadistada %1. The EFI system partition at %1 will be used for starting %2. - + EFI süsteemipartitsioon asukohas %1 kasutatakse %2 käivitamiseks. EFI system partition: - + EFI süsteemipartitsioon: This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Sellel mäluseadmel ei paista olevat operatsioonisüsteemi peal. Mida soovid teha?<br/>Sa saad oma valikud üle vaadata ja kinnitada enne kui mistahes muudatus saab mäluseadmele teostatud. @@ -392,12 +422,12 @@ The installer will quit and all changes will be lost. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - + <strong>Tühjenda ketas</strong><br/>See <font color="red">kustutab</font> kõik valitud mäluseadmel olevad andmed. This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Sellel mäluseadmel on peal %1. Mida soovid teha?<br/>Sa saad oma valikud üle vaadata ja kinnitada enne kui mistahes muudatus saab mäluseadmele teostatud. @@ -405,7 +435,7 @@ The installer will quit and all changes will be lost. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - + <strong>Paigalda kõrvale</strong><br/>Paigaldaja vähendab partitsiooni, et teha ruumi operatsioonisüsteemile %1. @@ -413,35 +443,35 @@ The installer will quit and all changes will be lost. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>Asenda partitsioon</strong><br/>Asendab partitsiooni operatsioonisüsteemiga %1. This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Sellel mäluseadmel on juba operatsioonisüsteem peal. Mida soovid teha?<br/>Sa saad oma valikud üle vaadata ja kinnitada enne kui mistahes muudatus saab mäluseadmele teostatud. This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + Sellel mäluseadmel on mitu operatsioonisüsteemi peal. Mida soovid teha?<br/>Sa saad oma valikud üle vaadata ja kinnitada enne kui mistahes muudatus saab mäluseadmele teostatud. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Tühjenda monteeringud partitsioneerimistegevustes %1 juures - + Clearing mounts for partitioning operations on %1. - + Tühjendan monteeringud partitsioneerimistegevustes %1 juures. - + Cleared all mounts for %1 - + Kõik monteeringud tühjendatud %1 jaoks @@ -449,43 +479,49 @@ The installer will quit and all changes will be lost. Clear all temporary mounts. - + Tühjenda kõik ajutised monteeringud. Clearing all temporary mounts. - + Tühjendan kõik ajutised monteeringud. Cannot get list of temporary mounts. - + Ajutiste monteeringute nimekirja ei saa hankida. Cleared all temporary mounts. - + Kõik ajutised monteeringud tühjendatud. CommandList - + + Could not run command. - + Käsku ei saanud käivitada. - - No rootMountPoint is defined, so command cannot be run in the target environment. - + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + See käsklus käivitatakse hostikeskkonnas ning peab teadma juurteed, kuid rootMountPoint pole defineeritud. + + + + The command needs to know the user's name, but no username is defined. + Käsklus peab teadma kasutaja nime, aga kasutajanimi pole defineeritud. ContextualProcessJob - + Contextual Processes Job - + Kontekstipõhiste protsesside töö @@ -498,42 +534,42 @@ The installer will quit and all changes will be lost. MiB - + MiB Partition &Type: - + Partitsiooni tüüp: &Primary - + %Peamine E&xtended - + %Laiendatud Fi&le System: - + %Failisüsteem: LVM LV name - + LVM LV nimi Flags: - + Sildid: &Mount Point: - + &Monteerimispunkt: @@ -541,29 +577,29 @@ The installer will quit and all changes will be lost. Suurus: - + En&crypt - + &Krüpti - + Logical Loogiline köide - + Primary Peamine - + GPT GPT - + Mountpoint already in use. Please select another one. - + Monteerimispunkt on juba kasutusel. Palun vali mõni teine. @@ -571,22 +607,22 @@ The installer will quit and all changes will be lost. Create new %2MB partition on %4 (%3) with file system %1. - + Loo uus %2MB partitsioon kettal %4 (%3) failisüsteemiga %1. Create new <strong>%2MB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - + Loo uus <strong>%2MB</strong> partitsioon kettale <strong>%4</strong> (%3) failisüsteemiga <strong>%1</strong>. Creating new %1 partition on %2. - + Loon uut %1 partitsiooni kettal %2. The installer failed to create partition on disk '%1'. - + Paigaldaja ei suutnud luua partitsiooni kettale "%1". @@ -594,27 +630,27 @@ The installer will quit and all changes will be lost. Create Partition Table - + Loo partitsioonitabel Creating a new partition table will delete all existing data on the disk. - + Uue partitsioonitabeli loomine kustutab kettalt kõik olemasolevad andmed. What kind of partition table do you want to create? - + Millist partitsioonitabelit soovid luua? Master Boot Record (MBR) - + Master Boot Record (MBR) GUID Partition Table (GPT) - + GUID partitsioonitabel (GPT) @@ -622,90 +658,60 @@ The installer will quit and all changes will be lost. Create new %1 partition table on %2. - + Loo uus %1 partitsioonitabel kohta %2. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - + Loo uus <strong>%1</strong> partitsioonitabel kohta <strong>%2</strong> (%3). Creating new %1 partition table on %2. - + Loon uut %1 partitsioonitabelit kohta %2. The installer failed to create a partition table on %1. - + Paigaldaja ei suutnud luua partitsioonitabelit kettale %1. CreateUserJob - + Create user %1 - + Loo kasutaja %1 - + Create user <strong>%1</strong>. - + Loo kasutaja <strong>%1</strong>. - + Creating user %1. - + Loon kasutajat %1. - + Sudoers dir is not writable. - + Sudoja tee ei ole kirjutatav. - + Cannot create sudoers file for writing. - + Sudoja faili ei saa kirjutamiseks luua. - + Cannot chmod sudoers file. - + Sudoja faili ei saa chmod-ida. - + Cannot open groups file for reading. - - - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - + Grupifaili ei saa lugemiseks avada. @@ -713,22 +719,22 @@ The installer will quit and all changes will be lost. Delete partition %1. - + Kustuta partitsioon %1. Delete partition <strong>%1</strong>. - + Kustuta partitsioon <strong>%1</strong>. Deleting partition %1. - + Kustutan partitsiooni %1. The installer failed to delete partition %1. - + Paigaldaja ei suutnud kustutada partitsiooni %1. @@ -736,32 +742,32 @@ The installer will quit and all changes will be lost. The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. - + <strong>Partitsioonitabeli</strong> tüüp valitud mäluseadmel.<br><br>Ainuke viis partitsioonitabelit muuta on see kustutada ja nullist taasluua, mis hävitab kõik andmed mäluseadmel.<br>See paigaldaja säilitab praeguse partitsioonitabeli, v.a juhul kui sa ise valid vastupidist.<br>Kui pole kindel, eelista modernsetel süsteemidel GPT-d. This device has a <strong>%1</strong> partition table. - + Sellel seadmel on <strong>%1</strong> partitsioonitabel. This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. - + See on <strong>loop</strong>-seade.<br><br>See on pseudo-seade ilma partitsioonitabelita, mis muudab faili ligipääsetavaks plokiseadmena. Seda tüüpi seadistus sisaldab tavaliselt ainult ühte failisüsteemi. This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. - + See paigaldaja <strong>ei suuda tuvastada partitsioonitabelit</strong>valitud mäluseadmel.<br><br>Seadmel kas pole partitsioonitabelit, see on korrumpeerunud või on tundmatut tüüpi.<br>See paigaldaja võib sulle luua uue partitsioonitabeli, kas automaatselt või läbi käsitsi partitsioneerimise lehe. <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - + <br><br>See on soovitatav partitsioonitabeli tüüp modernsetele süsteemidele, mis käivitatakse <strong>EFI</strong>käivituskeskkonnast. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>See partitsioonitabel on soovitatav ainult vanemates süsteemides, mis käivitavad <strong>BIOS</strong>-i käivituskeskkonnast. GPT on soovitatav enamus teistel juhtudel.<br><br><strong>Hoiatus:</strong> MBR partitsioonitabel on vananenud MS-DOS aja standard.<br>aVõimalik on luua inult 4 <em>põhilist</em> partitsiooni ja nendest üks võib olla <em>laiendatud</em> partitsioon, mis omakorda sisaldab mitmeid <em>loogilisi</em> partitsioone. @@ -769,7 +775,7 @@ The installer will quit and all changes will be lost. %1 - %2 (%3) - + %1 - %2 (%3) @@ -777,25 +783,25 @@ The installer will quit and all changes will be lost. Write LUKS configuration for Dracut to %1 - + Kirjuta Dracut'ile LUKS konfiguratsioon kohta %1 Skip writing LUKS configuration for Dracut: "/" partition is not encrypted - + Lõpeta Dracut'ile LUKS konfigruatsiooni kirjutamine: "/" partitsioon pole krüptitud Failed to open %1 - + %1 avamine ebaõnnestus DummyCppJob - + Dummy C++ Job - + Testiv C++ töö @@ -803,32 +809,32 @@ The installer will quit and all changes will be lost. Edit Existing Partition - + Muuda olemasolevat partitsiooni Content: - + Sisu: &Keep - + &Säilita Format - + Vorminda Warning: Formatting the partition will erase all existing data. - + Hoiatus: Partitsiooni vormindamine tühjendab kõik olemasolevad andmed. &Mount Point: - + &Monteerimispunkt: @@ -838,22 +844,22 @@ The installer will quit and all changes will be lost. MiB - + MiB Fi&le System: - + %Failisüsteem: Flags: - + Sildid: - + Mountpoint already in use. Please select another one. - + Monteerimispunkt on juba kasutusel. Palun vali mõni teine. @@ -861,27 +867,27 @@ The installer will quit and all changes will be lost. Form - + Form En&crypt system - + Krüpti süsteem Passphrase - + Salaväljend Confirm passphrase - + Kinnita salaväljendit Please enter the same passphrase in both boxes. - + Palun sisesta sama salaväljend mõlemisse kasti. @@ -889,37 +895,37 @@ The installer will quit and all changes will be lost. Set partition information - + Sea partitsiooni teave Install %1 on <strong>new</strong> %2 system partition. - + Paigalda %1 <strong>uude</strong> %2 süsteemipartitsiooni. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - + Seadista <strong>uus</strong> %2 partitsioon monteerimiskohaga <strong>%1</strong>. Install %2 on %3 system partition <strong>%1</strong>. - + Paigalda %2 %3 süsteemipartitsioonile <strong>%1</strong>. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - + Seadista %3 partitsioon <strong>%1</strong> monteerimiskohaga <strong>%2</strong> Install boot loader on <strong>%1</strong>. - + Paigalda käivituslaadur kohta <strong>%1</strong>. Setting up mount points. - + Seadistan monteerimispunkte. @@ -927,27 +933,27 @@ The installer will quit and all changes will be lost. Form - + Form <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Kui see märkeruut on täidetud, taaskäivitab su süsteem automaatselt, kui vajutad <span style=" font-style:italic;">Valmis</span> või sulged paigaldaja.</p></body></html> &Restart now - + &Taaskäivita nüüd - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Kõik on valmis.</h1><br/>%1 on paigaldatud sinu arvutisse.<br/>Sa võid nüüd taaskäivitada oma uude süsteemi või jätkata %2 live-keskkonna kasutamist. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Paigaldamine ebaõnnestus</h1><br/>%1 ei paigaldatud sinu arvutisse.<br/>Veateade oli: %2. @@ -955,17 +961,17 @@ The installer will quit and all changes will be lost. Finish - + Valmis Installation Complete - + Paigaldus valmis The installation of %1 is complete. - + %1 paigaldus on valmis. @@ -973,22 +979,22 @@ The installer will quit and all changes will be lost. Format partition %1 (file system: %2, size: %3 MB) on %4. - + Vorminda partitsioon %1 (failisüsteem: %2, suurus: %3 MB) kohas %4. Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. - + Vorminda <strong>%3MB</strong> partitsioon <strong>%1</strong>failisüsteemiga <strong>%2</strong>. Formatting partition %1 with file system %2. - + Vormindan partitsiooni %1 failisüsteemiga %2. The installer failed to format partition %1 on disk '%2'. - + Paigaldaja ei suutnud vormindada partitsiooni %1 kettal "%2". @@ -996,17 +1002,17 @@ The installer will quit and all changes will be lost. Konsole not installed - + Konsole pole paigaldatud Please install KDE Konsole and try again! - + Palun paigalda KDE Konsole ja proovi uuesti! Executing script: &nbsp;<code>%1</code> - + Käivitan skripti: &nbsp;<code>%1</code> @@ -1014,20 +1020,20 @@ The installer will quit and all changes will be lost. Script - + Skript KeyboardPage - + Set keyboard model to %1.<br/> - + Sea klaviatuurimudeliks %1.<br/> - + Set keyboard layout to %1/%2. - + Sea klaviatuuripaigutuseks %1/%2. @@ -1035,7 +1041,7 @@ The installer will quit and all changes will be lost. Keyboard - + Klaviatuur @@ -1043,22 +1049,22 @@ The installer will quit and all changes will be lost. System locale setting - + Süsteemilokaali valik The system locale setting affects the language and character set for some command line user interface elements.<br/>The current setting is <strong>%1</strong>. - + Süsteemilokaali valik mõjutab keelt ja märgistikku teatud käsurea kasutajaliideste elementidel.<br/>Praegune valik on <strong>%1</strong>. &Cancel - + &Tühista &OK - + &OK @@ -1066,69 +1072,69 @@ The installer will quit and all changes will be lost. Form - + Form - + I accept the terms and conditions above. - + Ma nõustun alljärgevate tingimustega. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + <h1>Litsensileping</h1>See seadistusprotseduur paigaldab omandiõigusega tarkvara, mis vastab litsensitingimustele. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).<br/>Kui sa tingimustega ei nõustu, ei saa seadistusprotseduur jätkata. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + <h1>Litsensileping</h1>See seadistusprotseduur võib paigaldada omandiõigusega tarkvara, mis vastab litsensitingimustele, et pakkuda lisafunktsioone ja täiendada kasutajakogemust. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + Palun loe läbi allolevad lõppkasutaja litsensilepingud (EULAd).<br/>Kui sa tingimustega ei nõustu, ei paigaldata omandiõigusega tarkvara ning selle asemel kasutatakse avatud lähtekoodiga alternatiive. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 draiver</strong><br/>autorilt %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 graafikadraiver</strong><br/><font color="Grey">autorilt %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 brauseriplugin</strong><br/><font color="Grey">autorilt %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 koodek</strong><br/><font color="Grey">autorilt %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1 pakett</strong><br/><font color="Grey">autorilt %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">autorilt %2</font> - + <a href="%1">view license agreement</a> - + <a href="%1">vaata litsensitingimusi</a> @@ -1136,7 +1142,7 @@ The installer will quit and all changes will be lost. License - + Litsents @@ -1144,50 +1150,50 @@ The installer will quit and all changes will be lost. The system language will be set to %1. - + Süsteemikeeleks määratakse %1. The numbers and dates locale will be set to %1. - + Arvude ja kuupäevade lokaaliks seatakse %1. Region: - + Regioon: Zone: - + Tsoon: &Change... - + &Muuda... Set timezone to %1/%2.<br/> - + Määra ajatsooniks %1/%2.<br/> %1 (%2) Language (Country) - + %1 (%2) LocaleViewStep - + Loading location data... - + Laadin asukohaandmeid... - + Location Asukoht @@ -1195,275 +1201,275 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Nimi - + Description - + Kirjeldus - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Võrgupaigaldus. (Keelatud: paketinimistute saamine ebaõnnestus, kontrolli oma võrguühendust) - + Network Installation. (Disabled: Received invalid groups data) - + Võrgupaigaldus. (Keelatud: vastu võetud sobimatud grupiandmed) NetInstallViewStep - + Package selection - + Paketivalik PWQ - + Password is too short - + Parool on liiga lühike - + Password is too long - + Parool on liiga pikk - + Password is too weak - + Parool on liiga nõrk - + Memory allocation error when setting '%1' - + Mälu eraldamise viga valikut "%1" määrates - + Memory allocation error - + Mälu eraldamise viga - + The password is the same as the old one - + Parool on sama mis enne - + The password is a palindrome - + Parool on palindroom - + The password differs with case changes only - + Parool erineb ainult suurtähtede poolest - + The password is too similar to the old one - + Parool on eelmisega liiga sarnane - + The password contains the user name in some form - + Parool sisaldab mingil kujul kasutajanime - + The password contains words from the real name of the user in some form - + Parool sisaldab mingil kujul sõnu kasutaja pärisnimest - + The password contains forbidden words in some form - + Parool sisaldab mingil kujul sobimatuid sõnu - + The password contains less than %1 digits - + Parool sisaldab vähem kui %1 numbrit - + The password contains too few digits - + Parool sisaldab liiga vähe numbreid - + The password contains less than %1 uppercase letters - + Parool sisaldab vähem kui %1 suurtähte - + The password contains too few uppercase letters - + Parool sisaldab liiga vähe suurtähti - + The password contains less than %1 lowercase letters - + Parool sisaldab vähem kui %1 väiketähte - + The password contains too few lowercase letters - + Parool sisaldab liiga vähe väiketähti - + The password contains less than %1 non-alphanumeric characters - + Parool sisaldab vähem kui %1 mitte-tähestikulist märki - + The password contains too few non-alphanumeric characters - + Parool sisaldab liiga vähe mitte-tähestikulisi märke - + The password is shorter than %1 characters - + Parool on lühem kui %1 tähemärki - + The password is too short - + Parool on liiga lühike - + The password is just rotated old one - + Parool on lihtsalt pööratud eelmine parool - + The password contains less than %1 character classes - + Parool sisaldab vähem kui %1 tähemärgiklassi - + The password does not contain enough character classes - + Parool ei sisalda piisavalt tähemärgiklasse - + The password contains more than %1 same characters consecutively - + Parool sisaldab järjest rohkem kui %1 sama tähemärki - + The password contains too many same characters consecutively - + Parool sisaldab järjest liiga palju sama tähemärki - + The password contains more than %1 characters of the same class consecutively - + Parool sisaldab järjest samast klassist rohkem kui %1 tähemärki - + The password contains too many characters of the same class consecutively - + Parool sisaldab järjest liiga palju samast klassist tähemärke - + The password contains monotonic sequence longer than %1 characters - + Parool sisaldab monotoonset jada, mis on pikem kui %1 tähemärki - + The password contains too long of a monotonic character sequence - + Parool sisaldab liiga pikka monotoonsete tähemärkide jada - + No password supplied - + Parooli ei sisestatud - + Cannot obtain random numbers from the RNG device - + RNG seadmest ei saanud hankida juhuslikke numbreid - + Password generation failed - required entropy too low for settings - + Parooligenereerimine ebaõnnestus - nõutud entroopia on seadete jaoks liiga vähe - + The password fails the dictionary check - %1 - + Parool põrub sõnastikukontrolli - %1 - + The password fails the dictionary check - + Parool põrub sõnastikukontrolli - + Unknown setting - %1 - + Tundmatu valik - %1 - + Unknown setting - + Tundmatu valik - + Bad integer value of setting - %1 - + Halb täisarvuline väärtus valikul - %1 - + Bad integer value - + Halb täisarvuväärtus - + Setting %1 is not of integer type - + Valik %1 pole täisarvu tüüpi - + Setting is not of integer type - + Valik ei ole täisarvu tüüpi - + Setting %1 is not of string type - + Valik %1 ei ole string-tüüpi - + Setting is not of string type - + Valik ei ole string-tüüpi - + Opening the configuration file failed - + Konfiguratsioonifaili avamine ebaõnnestus - + The configuration file is malformed - + Konfiguratsioonifail on rikutud - + Fatal failure - + Saatuslik viga - + Unknown error - + Tundmatu viga @@ -1471,17 +1477,17 @@ The installer will quit and all changes will be lost. Form - + Form Keyboard Model: - + Klaviatuurimudel: Type here to test your keyboard - + Kirjuta siia, et testida oma klaviatuuri @@ -1489,69 +1495,69 @@ The installer will quit and all changes will be lost. Form - + Form What is your name? - + Mis on su nimi? What name do you want to use to log in? - + Mis nime soovid sisselogimiseks kasutada? font-weight: normal - + font-weight: normal <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - + <small>Kui rohkem kui üks inimene kasutab seda arvutit, saad sa pärast paigaldust määrata mitu kontot.</small> Choose a password to keep your account safe. - + Vali parool, et hoida oma konto turvalisena. <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> - + <small>Sisesta sama parool kaks korda, et kontrollida kirjavigade puudumist. Hea parool sisaldab segu tähtedest, numbritest ja kirjavahemärkidest, peaks olema vähemalt kaheksa märki pikk ja seda peaks muutma regulaarselt.</small> What is the name of this computer? - + Mis on selle arvuti nimi? <small>This name will be used if you make the computer visible to others on a network.</small> - + <small>Seda nime kasutatakse, kui teed arvuti võrgus teistele nähtavaks.</small> Log in automatically without asking for the password. - + Logi automaatselt sisse ilma parooli küsimata. Use the same password for the administrator account. - + Kasuta sama parooli administraatorikontole. Choose a password for the administrator account. - + Vali administraatori kontole parool. <small>Enter the same password twice, so that it can be checked for typing errors.</small> - + <small>Sisesta sama parooli kaks korda, et kontrollida kirjavigade puudumist.</small> @@ -1559,77 +1565,77 @@ The installer will quit and all changes will be lost. Root - + Juur Home - + Kodu Boot - + Käivitus EFI system - + EFI süsteem Swap - + Swap New partition for %1 - + Uus partitsioon %1 jaoks New partition - + Uus partitsioon %1 %2 - + %1 %2 PartitionModel - - + + Free Space - + Tühi ruum - - + + New partition - + Uus partitsioon - + Name - + Nimi - + File System - + Failisüsteem - + Mount Point - + Monteerimispunkt - + Size - + Suurus @@ -1637,145 +1643,155 @@ The installer will quit and all changes will be lost. Form - + Form Storage de&vice: - + Mäluseade: &Revert All Changes - + &Ennista kõik muutused New Partition &Table - + Uus partitsioonitabel - &Create - + Cre&ate + L&oo &Edit - + &Muuda &Delete - + &Kustuta Install boot &loader on: - + Paigalda käivituslaadur kohta: - + Are you sure you want to create a new partition table on %1? - + Kas soovid kindlasti luua uut partitsioonitabelit kettale %1? + + + + Can not create new partition + Uut partitsiooni ei saa luua + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + Partitsioonitabel kohas %1 juba omab %2 peamist partitsiooni ning rohkem juurde ei saa lisada. Palun eemalda selle asemel üks peamine partitsioon ja lisa juurde laiendatud partitsioon. PartitionViewStep - + Gathering system information... - + Hangin süsteemiteavet... - + Partitions - + Partitsioonid - + Install %1 <strong>alongside</strong> another operating system. - + Paigalda %1 praeguse operatsioonisüsteemi <strong>kõrvale</strong> - + <strong>Erase</strong> disk and install %1. - + <strong>Tühjenda</strong> ketas ja paigalda %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Asenda</strong> partitsioon operatsioonisüsteemiga %1. - + <strong>Manual</strong> partitioning. - + <strong>Käsitsi</strong> partitsioneerimine. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + Paigalda %1 teise operatsioonisüsteemi <strong>kõrvale</strong> kettal <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Tühjenda</strong> ketas <strong>%2</strong> (%3) ja paigalda %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Asenda</strong> partitsioon kettal <strong>%2</strong> (%3) operatsioonisüsteemiga %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + <strong>Käsitsi</strong> partitsioneerimine kettal <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Ketas <strong>%1</strong> (%2). - + Current: - + Hetkel: - + After: - + Pärast: - + No EFI system partition configured - + EFI süsteemipartitsiooni pole seadistatud - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + %1 käivitamiseks on vajalik EFI süsteemipartitsioon.<br/><br/>Et seadistada EFI süsteemipartitsiooni, mine tagasi ja vali või loo FAT32 failisüsteem sildiga <strong>esp</strong> ja monteerimispunktiga <strong>%2</strong>.<br/><br/>Sa võid jätkata ilma EFI süsteemipartitsiooni seadistamata aga su süsteem ei pruugi käivituda. - + EFI system partition flag not set - + EFI süsteemipartitsiooni silt pole määratud - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + %1 käivitamiseks on vajalik EFI süsteemipartitsioon.<br/><br/>Partitsioon seadistati monteerimispunktiga <strong>%2</strong> aga sellel ei määratud <strong>esp</strong> silti.<br/>Sildi määramiseks mine tagasi ja muuda partitsiooni.<br/><br/>Sa võid jätkata ilma silti seadistamata aga su süsteem ei pruugi käivituda. - + Boot partition not encrypted - + Käivituspartitsioon pole krüptitud - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. - + Eraldi käivituspartitsioon seadistati koos krüptitud juurpartitsiooniga, aga käivituspartitsioon ise ei ole krüptitud.<br/><br/>Selle seadistusega kaasnevad turvaprobleemid, sest tähtsad süsteemifailid hoitakse krüptimata partitsioonil.<br/>Sa võid soovi korral jätkata, aga failisüsteemi lukust lahti tegemine toimub hiljem süsteemi käivitusel.<br/>Et krüpteerida käivituspartisiooni, mine tagasi ja taasloo see, valides <strong>Krüpteeri</strong> partitsiooni loomise aknas. @@ -1783,13 +1799,13 @@ The installer will quit and all changes will be lost. Plasma Look-and-Feel Job - + Plasma välimuse-ja-tunnetuse töö Could not select KDE Plasma Look-and-Feel package - + KDE Plasma välimuse-ja-tunnetuse paketti ei saanud valida @@ -1797,91 +1813,112 @@ The installer will quit and all changes will be lost. Form - + Form Placeholder - + Kohatäitja - - 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. - + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + Palun vali KDE Plasma 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. PlasmaLnfViewStep - + Look-and-Feel - + Välimus-ja-tunnetus + + + + PreserveFiles + + + Saving files for later ... + Salvestan faile hiljemaks... + + + + No files configured to save for later. + Ühtegi faili ei konfigureeritud hiljemaks salvestamiseks. + + + + Not all of the configured files could be preserved. + Ühtegi konfigureeritud faili ei suudetud säilitada. ProcessResult - + There was no output from the command. - + +Käsul polnud väljundit. - + Output: - + +Väljund: + - + External command crashed. - + Väline käsk jooksis kokku. - + Command <i>%1</i> crashed. - + Käsk <i>%1</i> jooksis kokku. - + External command failed to start. - + Välise käsu käivitamine ebaõnnestus. - + Command <i>%1</i> failed to start. - + Käsu <i>%1</i> käivitamine ebaõnnestus. - + Internal error when starting command. - + Käsu käivitamisel esines sisemine viga. - + Bad parameters for process job call. - + Protsessi töö kutsel olid halvad parameetrid. - + External command failed to finish. - + Väline käsk ei suutnud lõpetada. - + Command <i>%1</i> failed to finish in %2 seconds. - + Käsk <i>%1</i> ei suutnud lõpetada %2 sekundi jooksul. - + External command finished with errors. - + Väline käsk lõpetas vigadega. - + Command <i>%1</i> finished with exit code %2. - + Käsk <i>%1</i> lõpetas sulgemiskoodiga %2. @@ -1889,38 +1926,38 @@ Output: Default Keyboard Model - + Vaikimisi klaviatuurimudel Default - + Vaikimisi - + unknown - + tundmatu - + extended - + laiendatud - + unformatted - + vormindamata - + swap - + swap Unpartitioned space or unknown partition table - + Partitsioneerimata ruum või tundmatu partitsioonitabel @@ -1928,74 +1965,74 @@ Output: Form - + Form Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - + Vali, kuhu soovid %1 paigaldada.<br/><font color="red">Hoiatus: </font>see kustutab valitud partitsioonilt kõik failid. The selected item does not appear to be a valid partition. - + Valitud üksus ei paista olevat sobiv partitsioon. %1 cannot be installed on empty space. Please select an existing partition. - + %1 ei saa paigldada tühjale kohale. Palun vali olemasolev partitsioon. %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - + %1 ei saa paigaldada laiendatud partitsioonile. Palun vali olemasolev põhiline või loogiline partitsioon. %1 cannot be installed on this partition. - + %1 ei saa sellele partitsioonile paigaldada. Data partition (%1) - + Andmepartitsioon (%1) Unknown system partition (%1) - + Tundmatu süsteemipartitsioon (%1) %1 system partition (%2) - + %1 süsteemipartitsioon (%2) <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. - + <strong>%4</strong><br/><br/>Partitsioon %1 on liiga väike %2 jaoks. Palun vali partitsioon suurusega vähemalt %3 GiB. <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + <strong>%2</strong><br/><br/>Sellest süsteemist ei leitud EFI süsteemipartitsiooni. Palun mine tagasi ja kasuta käsitsi partitsioneerimist, et seadistada %1. <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. - + <strong>%3</strong><br/><br/>%1 paigaldatakse partitsioonile %2.<br/><font color="red">Hoiatus: </font>kõik andmed partitsioonil %2 kaovad. The EFI system partition at %1 will be used for starting %2. - + EFI süsteemipartitsioon asukohas %1 kasutatakse %2 käivitamiseks. EFI system partition: - + EFI süsteemipartitsioon: @@ -2003,57 +2040,57 @@ Output: Gathering system information... - + Hangin süsteemiteavet... - + has at least %1 GB available drive space - + omab vähemalt %1 GB vaba kettaruumi - + There is not enough drive space. At least %1 GB is required. - + Pole piisavalt kettaruumi. Vähemalt %1 GB on nõutud. - + has at least %1 GB working memory - + omab vähemalt %1 GB töötamismälu - + The system does not have enough working memory. At least %1 GB is required. - + Süsteemil pole piisavalt töötamismälu. Vähemalt %1 GB on nõutud. - + is plugged in to a power source - + on ühendatud vooluallikasse - + The system is not plugged in to a power source. - + Süsteem pole ühendatud vooluallikasse. - + is connected to the Internet - + on ühendatud Internetti - + The system is not connected to the Internet. - + Süsteem pole ühendatud Internetti. - + The installer is not running with administrator rights. - + Paigaldaja pole käivitatud administraatoriõigustega. - + The screen is too small to display the installer. - + Ekraan on paigaldaja kuvamiseks liiga väike. @@ -2061,22 +2098,22 @@ Output: Resize partition %1. - + Muuda partitsiooni %1 suurust. Resize <strong>%2MB</strong> partition <strong>%1</strong> to <strong>%3MB</strong>. - + Muuda <strong>%2MB</strong> partitsiooni <strong>%1</strong>suuruseks <strong>%3MB</strong>. Resizing %2MB partition %1 to %3MB. - + Muudan %2MB partitsiooni %1 suuruseks %3MB The installer failed to resize partition %1 on disk '%2'. - + Paigaldajal ebaõnnestus partitsiooni %1 suuruse muutmine kettal "%2". @@ -2084,42 +2121,42 @@ Output: Scanning storage devices... - + Skaneerin mäluseadmeid... Partitioning - + Partitsioneerimine SetHostNameJob - + Set hostname %1 - + Määra hostinimi %1 - + Set hostname <strong>%1</strong>. - + Määra hostinimi <strong>%1</strong>. - + Setting hostname %1. - + Määran hostinime %1. - - + + Internal Error - + Sisemine viga - - + + Cannot write hostname to target system - + Hostinime ei saa sihtsüsteemile kirjutada @@ -2127,29 +2164,29 @@ Output: Set keyboard model to %1, layout to %2-%3 - + Klaviatuurimudeliks on seatud %1, paigutuseks %2-%3 Failed to write keyboard configuration for the virtual console. - + Klaviatuurikonfiguratsiooni kirjutamine virtuaalkonsooli ebaõnnestus. Failed to write to %1 - + Kohta %1 kirjutamine ebaõnnestus Failed to write keyboard configuration for X11. - + Klaviatuurikonsooli kirjutamine X11-le ebaõnnestus. Failed to write keyboard configuration to existing /etc/default directory. - + Klaviatuurikonfiguratsiooni kirjutamine olemasolevale /etc/default kaustateele ebaõnnestus. @@ -2157,82 +2194,82 @@ Output: Set flags on partition %1. - + Määratud sildid partitsioonil %1: Set flags on %1MB %2 partition. - + Sildid määratud %1MB %2 partitsioonile. Set flags on new partition. - + Määra sildid uuele partitsioonile. Clear flags on partition <strong>%1</strong>. - + Tühjenda sildid partitsioonil <strong>%1</strong>. Clear flags on %1MB <strong>%2</strong> partition. - + Tühjenda sildid %1MB <strong>%2</strong> partitsioonilt. Clear flags on new partition. - + Tühjenda sildid uuel partitsioonil Flag partition <strong>%1</strong> as <strong>%2</strong>. - + Määra partitsioonile <strong>%1</strong> silt <strong>%2</strong>. Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - + Määra %1MB <strong>%2</strong> partitsiooni sildiks <strong>%3</strong>. Flag new partition as <strong>%1</strong>. - + Määra uuele partitsioonile silt <strong>%1</strong>. Clearing flags on partition <strong>%1</strong>. - + Eemaldan sildid partitsioonilt <strong>%1</strong>. Clearing flags on %1MB <strong>%2</strong> partition. - + Eemaldan sildid %1MB <strong>%2</strong> partitsioonilt. Clearing flags on new partition. - + Eemaldan uuelt partitsioonilt sildid. Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - + Määran sildid <strong>%1</strong> partitsioonile <strong>%1</strong>. Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - + Määran sildid <strong>%3</strong> %1MB <strong>%2</strong> partitsioonile. Setting flags <strong>%1</strong> on new partition. - + Määran sildid <strong>%1</strong> uuele partitsioonile. The installer failed to set flags on partition %1. - + Paigaldaja ei suutnud partitsioonile %1 silte määrata. @@ -2240,42 +2277,42 @@ Output: Set password for user %1 - + Määra kasutajale %1 parool Setting password for user %1. - + Määran kasutajale %1 parooli. Bad destination system path. - + Halb sihtsüsteemi tee. rootMountPoint is %1 - + rootMountPoint on %1 Cannot disable root account. - + Juurkasutajat ei saa keelata. passwd terminated with error code %1. - + passwd peatatud veakoodiga %1. Cannot set password for user %1. - + Kasutajale %1 ei saa parooli määrata. usermod terminated with error code %1. - + usermod peatatud veateatega %1. @@ -2283,37 +2320,37 @@ Output: Set timezone to %1/%2 - + Määra ajatsooniks %1/%2 Cannot access selected timezone path. - + Valitud ajatsooni teele ei saa ligi. Bad path: %1 - + Halb tee: %1 Cannot set timezone. - + Ajatsooni ei saa määrata. Link creation failed, target: %1; link name: %2 - + Lingi loomine ebaõnnestus, siht: %1; lingi nimi: %2 Cannot set timezone, - + Ajatsooni ei saa määrata, Cannot open /etc/timezone for writing - + /etc/timezone ei saa kirjutamiseks avada @@ -2321,7 +2358,16 @@ Output: Shell Processes Job - + Kesta protsesside töö + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 @@ -2329,7 +2375,7 @@ Output: This is an overview of what will happen once you start the install procedure. - + See on ülevaade sellest mis juhtub, kui alustad paigaldusprotseduuri. @@ -2345,22 +2391,22 @@ Output: Installation feedback - + Paigalduse tagasiside Sending installation feedback. - + Saadan paigalduse tagasisidet. Internal error in install-tracking. - + Paigaldate jälitamisel esines sisemine viga. HTTP request timed out. - + HTTP taotlusel esines ajalõpp. @@ -2368,28 +2414,28 @@ Output: Machine feedback - + Seadme tagasiside Configuring machine feedback. - + Seadistan seadme tagasisidet. Error in machine feedback configuration. - + Masina tagasiside konfiguratsioonis esines viga. Could not configure machine feedback correctly, script error %1. - + Masina tagasisidet ei suudetud korralikult konfigureerida, skripti viga %1. Could not configure machine feedback correctly, Calamares error %1. - + Masina tagasisidet ei suudetud korralikult konfigureerida, Calamares'e viga %1. @@ -2397,56 +2443,56 @@ Output: Form - + Form Placeholder - + Kohatäitja <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Seda valides <span style=" font-weight:600;">ei saada sa üldse</span> teavet oma paigalduse kohta.</p></body></html> TextLabel - + TextLabel ... - + ... <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klõpsa siia, et saada rohkem teavet kasutaja tagasiside kohta</span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - + Paigalduse jälitamine aitab %1-l näha, mitu kasutajat neil on, mis riistvarale nad %1 paigaldavad ja (märkides kaks alumist valikut) saada pidevat teavet eelistatud rakenduste kohta. Et näha, mis infot saadetakse, palun klõpsa abiikooni iga ala kõrval. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - + Seda valides saadad sa teavet oma paigalduse ja riistvara kohta. See teave <b>saadetakse ainult korra</b>peale paigalduse lõppu. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + Seda valides saadad sa %1-le <b>perioodiliselt</b> infot oma paigalduse, riistvara ja rakenduste kohta. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + Seda valides saadad sa %1-le <b>regulaarselt</b> infot oma paigalduse, riistvara, rakenduste ja kasutusharjumuste kohta. @@ -2454,7 +2500,7 @@ Output: Feedback - + Tagasiside @@ -2462,41 +2508,41 @@ Output: Your username is too long. - + Sinu kasutajanimi on liiga pikk. Your username contains invalid characters. Only lowercase letters and numbers are allowed. - + Sinu kasutajanimi sisaldab sobimatuid tähemärke. Lubatud on ainult väiketähed ja numbrid. Your hostname is too short. - + Sinu hostinimi on liiga lühike. Your hostname is too long. - + Sinu hostinimi on liiga pikk. Your hostname contains invalid characters. Only letters, numbers and dashes are allowed. - + Sinu hostinimi sisaldab sobimatuid tähemärke. Ainult tähed, numbrid ja sidekriipsud on lubatud. Your passwords do not match! - + Sinu paroolid ei ühti! UsersViewStep - + Users - + Kasutajad @@ -2504,65 +2550,65 @@ Output: Form - + Form &Language: - + &Keel: &Release notes - + &Väljalaskemärkmed &Known issues - + &Teadaolevad vead &Support - + &Tugi &About - + &Teave <h1>Welcome to the %1 installer.</h1> - + <h1>Tere tulemast %1 paigaldajasse.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>Tere tulemast Calamares'i paigaldajasse %1 jaoks.</h1> About %1 installer - + Teave %1 paigaldaja kohta <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>%3 jaoks</strong><br/><br/>Autoriõigus 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autoriõigus 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Täname: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg ja <a href="https://www.transifex.com/calamares/calamares/">Calamares'i tõlkijate meeskonda</a>.<br/><br/><a href="https://calamares.io/">Calamares'i</a> arendust toetab <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support - + %1 tugi WelcomeViewStep - + Welcome - + Tervist \ No newline at end of file diff --git a/lang/calamares_eu.ts b/lang/calamares_eu.ts index 545b1cb4c..a52f3bb3e 100644 --- a/lang/calamares_eu.ts +++ b/lang/calamares_eu.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalatu @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Egina @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 %1 %2 komandoa abiarazi - + Running command %1 %2 %1 %2 komandoa exekutatzen @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. %1 eragiketa burutzen. - + Bad working directory path Direktorio ibilbide ezegokia - + Working directory %1 for python job %2 is not readable. - + Bad main script file Script fitxategi nagusi okerra - + Main script file %1 for python job %2 is not readable. %1 script fitxategi nagusia ezin da irakurri python %2 lanerako - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back &Atzera - + + &Next &Hurrengoa - - + + &Cancel &Utzi - - + + Cancel installation without changing the system. Instalazioa bertan behera utsi da sisteman aldaketarik gabe. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Bertan behera utzi instalazioa? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes &Bai - + &No &Ez - + &Close &Itxi - + Continue with setup? Ezarpenarekin jarraitu? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now &Instalatu orain - + Go &back &Atzera - + &Done E&ginda - + The installation is complete. Close the installer. Instalazioa burutu da. Itxi instalatzailea. - + Error Akatsa - + Installation Failed Instalazioak huts egin du @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. Ta&maina: - + En&crypt - + Logical Logikoa - + Primary Primarioa - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Sortu %1 erabiltzailea - + Create user <strong>%1</strong>. - + Creating user %1. %1 erabiltzailea sortzen. - + Sudoers dir is not writable. Ezin da sudoers direktorioan idatzi. - + Cannot create sudoers file for writing. Ezin da sudoers fitxategia sortu bertan idazteko. - + Cannot chmod sudoers file. Ezin zaio chmod egin sudoers fitxategiari. - + Cannot open groups file for reading. Ezin da groups fitxategia ireki berau irakurtzeko. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. &Berrabiarazi orain - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. Goiko baldintzak onartzen ditut. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... Kokapen datuak kargatzen... - + Location Kokapena @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Izena - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space Espazio librea - - + + New partition Partizio berria - + Name Izena - + File System Fitxategi Sistema - + Mount Point Muntatze Puntua - + Size Tamaina @@ -1656,8 +1661,8 @@ The installer will quit and all changes will be lost. - &Create - &Sortu + Cre&ate + @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Sistemaren informazioa eskuratzen... - + Partitions Partizioak - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: Unekoa: - + After: Ondoren: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: Lehenetsia - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: Sistemaren informazioa eskuratzen... - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. Sistema ez dago indar iturri batetara konektatuta. - + is connected to the Internet Internetera konektatuta dago - + The system is not connected to the Internet. Sistema ez dago Internetera konektatuta. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error Barne errorea - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users Erabiltzaileak @@ -2552,7 +2594,7 @@ Output: - + %1 support %1 euskarria @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome Ongi etorri diff --git a/lang/calamares_fa.ts b/lang/calamares_fa.ts index 93cdf9659..29ac52d3c 100644 --- a/lang/calamares_fa.ts +++ b/lang/calamares_fa.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back - + + &Next - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error - + Installation Failed @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_fi_FI.ts b/lang/calamares_fi_FI.ts index 7dba1b44b..10e71bf2c 100644 --- a/lang/calamares_fi_FI.ts +++ b/lang/calamares_fi_FI.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Asenna @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Valmis @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Suorita komento %1 %2 - + Running command %1 %2 Suoritetaan komentoa %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Suoritetaan %1 toimenpidettä. - + Bad working directory path Epäkelpo työskentelyhakemiston polku - + Working directory %1 for python job %2 is not readable. Työkansio %1 pythonin työlle %2 ei ole luettavissa. - + Bad main script file Huono pää-skripti tiedosto - + Main script file %1 for python job %2 is not readable. Pääskriptitiedosto %1 pythonin työlle %2 ei ole luettavissa. - + Boost.Python error in job "%1". Boost.Python virhe työlle "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Takaisin - + + &Next &Seuraava - - + + &Cancel &Peruuta - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Peruuta asennus? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Oletko varma että haluat peruuttaa käynnissä olevan asennusprosessin? Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. - + &Yes &Kyllä - + &No &Ei - + &Close &Sulje - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now &Asenna nyt - + Go &back - + &Done &Valmis - + The installation is complete. Close the installer. Asennus on valmis. Sulje asennusohjelma. - + Error Virhe - + Installation Failed Asennus Epäonnistui @@ -430,17 +459,17 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. ClearMountsJob - + Clear mounts for partitioning operations on %1 Poista osiointitoimenpiteitä varten tehdyt liitokset kohteesta %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 Kaikki liitokset poistettu kohteesta %1 @@ -471,20 +500,26 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. K&oko: - + En&crypt - + Logical Looginen - + Primary Ensisijainen - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. CreateUserJob - + Create user %1 Luo käyttäjä %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. Ei voitu kirjoittaa Sudoers -hakemistoon. - + Cannot create sudoers file for writing. Ei voida luoda sudoers -tiedostoa kirjoitettavaksi. - + Cannot chmod sudoers file. Ei voida tehdä käyttöoikeuden muutosta sudoers -tiedostolle. - + Cannot open groups file for reading. Ei voida avata ryhmätiedostoa luettavaksi. - - - Cannot create user %1. - Käyttäjää %1 ei voi luoda. - - - - useradd terminated with error code %1. - useradd päättyi virhekoodilla %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod päättyi virhekoodilla %1. - - - - Cannot set home directory ownership for user %1. - Ei voida asettaa kotihakemiston omistusoikeutta käyttäjälle %1. - - - - chown terminated with error code %1. - chown päättyi virhekoodilla %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. Liput: - + Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. &Käynnistä uudelleen - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Kaikki tehty.</h1><br/>%1 on asennettu tietokoneellesi.<br/>Voit joko uudelleenkäynnistää uuteen kokoonpanoosi, tai voit jatkaa %2 live-ympäristön käyttöä. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. KeyboardPage - + Set keyboard model to %1.<br/> Aseta näppäimiston malli %1.<br/> - + Set keyboard layout to %1/%2. Aseta näppäimiston asetelmaksi %1/%2. @@ -1070,64 +1075,64 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. Lomake - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1183,12 +1188,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. LocaleViewStep - + Loading location data... Ladataan sijainnin tietoja... - + Location Sijainti @@ -1196,22 +1201,22 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. NetInstallPage - + Name Nimi - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. NetInstallViewStep - + Package selection @@ -1227,242 +1232,242 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. PartitionModel - - + + Free Space Vapaa tila - - + + New partition Uusi osiointi - + Name Nimi - + File System Tiedostojärjestelmä - + Mount Point Liitoskohta - + Size Koko @@ -1657,8 +1662,8 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. - &Create - &Luo + Cre&ate + @@ -1676,105 +1681,115 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. - + Are you sure you want to create a new partition table on %1? Oletko varma, että haluat luoda uuden osion %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Kerätään järjestelmän tietoja... - + Partitions Osiot - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: Jälkeen: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Huonot parametrit prosessin kutsuun. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: Oletus - + unknown - + extended - + unformatted - + swap @@ -2007,52 +2040,52 @@ Output: Kerätään järjestelmän tietoja... - + has at least %1 GB available drive space sisältää vähintään %1 GB käytettävissä olevaa asematilaa - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory sisältää vähintään %1 GB muistia - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source on yhdistetty virtalähteeseen - + The system is not plugged in to a power source. - + is connected to the Internet on yhdistetty internetiin - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 Aseta isäntänimi %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error Sisäinen Virhe - - + + Cannot write hostname to target system Ei voida kirjoittaa isäntänimeä kohdejärjestelmään. @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Käyttäjät @@ -2553,7 +2595,7 @@ Output: - + %1 support @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Tervetuloa diff --git a/lang/calamares_fr.ts b/lang/calamares_fr.ts index 70fca7610..572a4b1df 100644 --- a/lang/calamares_fr.ts +++ b/lang/calamares_fr.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Page blanche + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Installer @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Fait @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Exécution de la commande %1 %2 - + Running command %1 %2 Exécution de la commande %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Exécution de l'opération %1. - + Bad working directory path Chemin du répertoire de travail invalide - + Working directory %1 for python job %2 is not readable. Le répertoire de travail %1 pour le job python %2 n'est pas accessible en lecture. - + Bad main script file Fichier de script principal invalide - + Main script file %1 for python job %2 is not readable. Le fichier de script principal %1 pour la tâche python %2 n'est pas accessible en lecture. - + Boost.Python error in job "%1". Erreur Boost.Python pour le job "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Précédent - + + &Next &Suivant - - + + &Cancel &Annuler - - + + Cancel installation without changing the system. Annuler l'installation sans modifier votre système. - + + Calamares Initialization Failed + L'initialisation de Calamares a échoué + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 n'a pas pu être installé. Calamares n'a pas pu charger tous les modules configurés. C'est un problème avec la façon dont Calamares est utilisé par la distribution. + + + + <br/>The following modules could not be loaded: + Les modules suivants n'ont pas pu être chargés : + + + + &Install + &Installer + + + Cancel installation? Abandonner l'installation ? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Voulez-vous réellement abandonner le processus d'installation ? L'installateur se fermera et les changements seront perdus. - + &Yes &Oui - + &No &Non - + &Close &Fermer - + Continue with setup? Poursuivre la configuration ? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> L'installateur %1 est sur le point de procéder aux changements sur le disque afin d'installer %2.<br/> <strong>Vous ne pourrez pas annulez ces changements.<strong> - + &Install now &Installer maintenant - + Go &back &Retour - + &Done &Terminé - + The installation is complete. Close the installer. L'installation est terminée. Fermer l'installateur. - + Error Erreur - + Installation Failed L'installation a échoué @@ -430,17 +459,17 @@ L'installateur se fermera et les changements seront perdus. ClearMountsJob - + Clear mounts for partitioning operations on %1 Retirer les montages pour les opérations de partitionnement sur %1 - + Clearing mounts for partitioning operations on %1. Libération des montages pour les opérations de partitionnement sur %1. - + Cleared all mounts for %1 Tous les montages ont été retirés pour %1 @@ -471,20 +500,26 @@ L'installateur se fermera et les changements seront perdus. CommandList - + + Could not run command. La commande n'a pas pu être exécutée. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Aucun point de montage racine n'est défini, la commande n'a pas pu être exécutée dans l'environnement cible. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + La commande est exécutée dans l'environnement hôte et a besoin de connaître le chemin racine, mais aucun point de montage racine n'est défini. + + + + The command needs to know the user's name, but no username is defined. + La commande a besoin de connaître le nom de l'utilisateur, mais aucun nom d'utilisateur n'est défini. ContextualProcessJob - + Contextual Processes Job Tâche des processus contextuels @@ -542,27 +577,27 @@ L'installateur se fermera et les changements seront perdus. Ta&ille : - + En&crypt Chi&ffrer - + Logical Logique - + Primary Primaire - + GPT GPT - + Mountpoint already in use. Please select another one. Le point de montage est déjà utilisé. Merci d'en sélectionner un autre. @@ -644,70 +679,40 @@ L'installateur se fermera et les changements seront perdus. CreateUserJob - + Create user %1 Créer l'utilisateur %1 - + Create user <strong>%1</strong>. Créer l'utilisateur <strong>%1</strong>. - + Creating user %1. Création de l'utilisateur %1. - + Sudoers dir is not writable. Le répertoire Superutilisateur n'est pas inscriptible. - + Cannot create sudoers file for writing. Impossible de créer le fichier sudoers en écriture. - + Cannot chmod sudoers file. Impossible d'exécuter chmod sur le fichier sudoers. - + Cannot open groups file for reading. Impossible d'ouvrir le fichier groups en lecture. - - - Cannot create user %1. - Impossible de créer l'utilisateur %1. - - - - useradd terminated with error code %1. - useradd s'est terminé avec le code erreur %1. - - - - Cannot add user %1 to groups: %2. - Impossible d'ajouter l'utilisateur %1 au groupe %2. - - - - usermod terminated with error code %1. - usermod s'est terminé avec le code erreur %1. - - - - Cannot set home directory ownership for user %1. - Impossible de définir le propriétaire du répertoire home pour l'utilisateur %1. - - - - chown terminated with error code %1. - chown s'est terminé avec le code erreur %1. - DeletePartitionJob @@ -794,7 +799,7 @@ L'installateur se fermera et les changements seront perdus. DummyCppJob - + Dummy C++ Job Tâche C++ fictive @@ -852,7 +857,7 @@ L'installateur se fermera et les changements seront perdus. Drapeaux: - + Mountpoint already in use. Please select another one. Le point de montage est déjà utilisé. Merci d'en sélectionner un autre. @@ -941,12 +946,12 @@ L'installateur se fermera et les changements seront perdus. &Redémarrer maintenant - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Installation terminée.</h1><br/>%1 a été installé sur votre ordinateur.<br/>Vous pouvez redémarrer sur le nouveau système, ou continuer d'utiliser l'environnement actuel %2 . - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installation échouée</h1><br/>%1 n'a pas été installée sur cet ordinateur.<br/>Le message d'erreur était : %2. @@ -1021,12 +1026,12 @@ L'installateur se fermera et les changements seront perdus. KeyboardPage - + Set keyboard model to %1.<br/> Configurer le modèle de clavier à %1.<br/> - + Set keyboard layout to %1/%2. Configurer la disposition clavier à %1/%2. @@ -1070,64 +1075,64 @@ L'installateur se fermera et les changements seront perdus. Formulaire - + I accept the terms and conditions above. J'accepte les termes et conditions ci-dessus. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Accord de licence</h1>Cette procédure de configuration va installer des logiciels propriétaire sujet à des termes de licence. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Merci de relire les Contrats de Licence Utilisateur Final (CLUF/EULA) ci-dessus.<br/>Si vous n'acceptez pas les termes, la procédure ne peut pas continuer. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Accord de licence</h1>Cette procédure peut installer des logiciels propriétaires qui sont soumis à des termes de licence afin d'ajouter des fonctionnalités et améliorer l'expérience utilisateur. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Merci de relire les Contrats de Licence Utilisateur Final (CLUF/EULA) ci-dessus.<br/>Si vous n'acceptez pas les termes, les logiciels propriétaires ne seront pas installés, et des alternatives open-source seront utilisées à la place. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>Pilote %1</strong><br/>par %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>Pilote graphique %1</strong><br/><font color="Grey">par %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>Module de navigateur %1</strong><br/><font color="Grey">par %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>Codec %1</strong><br/><font color="Grey">par %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>Paquet %1</strong><br/><font color="Grey">par %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">par %2</font> - + <a href="%1">view license agreement</a> <a href="%1">Consulter l'accord de licence</a> @@ -1183,12 +1188,12 @@ L'installateur se fermera et les changements seront perdus. LocaleViewStep - + Loading location data... Chargement des données de localisation... - + Location Localisation @@ -1196,22 +1201,22 @@ L'installateur se fermera et les changements seront perdus. NetInstallPage - + Name Nom - + Description Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Installation par le réseau (Désactivée : impossible de récupérer leslistes de paquets, vérifiez la connexion réseau) - + Network Installation. (Disabled: Received invalid groups data) Installation par le réseau. (Désactivée : données de groupes reçues invalides) @@ -1219,7 +1224,7 @@ L'installateur se fermera et les changements seront perdus. NetInstallViewStep - + Package selection Sélection des paquets @@ -1227,242 +1232,242 @@ L'installateur se fermera et les changements seront perdus. PWQ - + Password is too short Le mot de passe est trop court - + Password is too long Le mot de passe est trop long - + Password is too weak Le mot de passe est trop faible - + Memory allocation error when setting '%1' Erreur d'allocation mémoire lors du paramétrage de '%1' - + Memory allocation error Erreur d'allocation mémoire - + The password is the same as the old one Le mot de passe est identique au précédent - + The password is a palindrome Le mot de passe est un palindrome - + The password differs with case changes only Le mot de passe ne diffère que sur la casse - + The password is too similar to the old one Le mot de passe est trop similaire à l'ancien - + The password contains the user name in some form Le mot de passe contient le nom d'utilisateur sous une certaine forme - + The password contains words from the real name of the user in some form Le mot de passe contient des mots provenant du nom d'utilisateur sous une certaine forme - + The password contains forbidden words in some form Le mot de passe contient des mots interdits sous une certaine forme - + The password contains less than %1 digits Le mot de passe contient moins de %1 chiffres - + The password contains too few digits Le mot de passe ne contient pas assez de chiffres - + The password contains less than %1 uppercase letters Le mot de passe contient moins de %1 lettres majuscules - + The password contains too few uppercase letters Le mot de passe ne contient pas assez de lettres majuscules - + The password contains less than %1 lowercase letters Le mot de passe contient moins de %1 lettres minuscules - + The password contains too few lowercase letters Le mot de passe ne contient pas assez de lettres minuscules - + The password contains less than %1 non-alphanumeric characters Le mot de passe contient moins de %1 caractères spéciaux - + The password contains too few non-alphanumeric characters Le mot de passe ne contient pas assez de caractères spéciaux - + The password is shorter than %1 characters Le mot de passe fait moins de %1 caractères - + The password is too short Le mot de passe est trop court - + The password is just rotated old one Le mot de passe saisit correspond avec un de vos anciens mot de passe - + The password contains less than %1 character classes Le mot de passe contient moins de %1 classes de caractères - + The password does not contain enough character classes Le mot de passe ne contient pas assez de classes de caractères - + The password contains more than %1 same characters consecutively Le mot de passe contient plus de %1 fois le même caractère à la suite - + The password contains too many same characters consecutively Le mot de passe contient trop de fois le même caractère à la suite - + The password contains more than %1 characters of the same class consecutively Le mot de passe contient plus de %1 caractères de la même classe consécutivement - + The password contains too many characters of the same class consecutively Le mot de passe contient trop de caractères de la même classe consécutivement - + The password contains monotonic sequence longer than %1 characters Le mot de passe contient une séquence de caractères monotones de %1 caractères - + The password contains too long of a monotonic character sequence Le mot de passe contient une trop longue séquence de caractères monotones - + No password supplied Aucun mot de passe saisi - + Cannot obtain random numbers from the RNG device Impossible d'obtenir des nombres aléatoires depuis le générateur de nombres aléatoires - + Password generation failed - required entropy too low for settings La génération du mot de passe a échoué - L'entropie minimum nécessaire n'est pas satisfaite par les paramètres - + The password fails the dictionary check - %1 Le mot de passe a échoué le contrôle de qualité par dictionnaire - %1 - + The password fails the dictionary check Le mot de passe a échoué le contrôle de qualité par dictionnaire - + Unknown setting - %1 Paramètre inconnu - %1 - + Unknown setting Paramètre inconnu - + Bad integer value of setting - %1 Valeur incorrect du paramètre - %1 - + Bad integer value Mauvaise valeur d'entier - + Setting %1 is not of integer type Le paramètre %1 n'est pas de type entier - + Setting is not of integer type Le paramètre n'est pas de type entier - + Setting %1 is not of string type Le paramètre %1 n'est pas une chaîne de caractères - + Setting is not of string type Le paramètre n'est pas une chaîne de caractères - + Opening the configuration file failed L'ouverture du fichier de configuration a échouée - + The configuration file is malformed Le fichier de configuration est mal formé - + Fatal failure Erreur fatale - + Unknown error Erreur inconnue @@ -1601,34 +1606,34 @@ L'installateur se fermera et les changements seront perdus. PartitionModel - - + + Free Space Espace libre - - + + New partition Nouvelle partition - + Name Nom - + File System Système de fichiers - + Mount Point Point de montage - + Size Taille @@ -1657,8 +1662,8 @@ L'installateur se fermera et les changements seront perdus. - &Create - &Créer + Cre&ate + Cré&er @@ -1676,105 +1681,115 @@ L'installateur se fermera et les changements seront perdus. Installer le chargeur de démarrage sur: - + Are you sure you want to create a new partition table on %1? Êtes-vous sûr de vouloir créer une nouvelle table de partitionnement sur %1 ? + + + Can not create new partition + Impossible de créer une nouvelle partition + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + La table de partition sur %1 contient déjà %2 partitions primaires, et aucune supplémentaire ne peut être ajoutée. Veuillez supprimer une partition primaire et créer une partition étendue à la place. + PartitionViewStep - + Gathering system information... Récupération des informations système… - + Partitions Partitions - + Install %1 <strong>alongside</strong> another operating system. Installer %1 <strong>à côté</strong>d'un autre système d'exploitation. - + <strong>Erase</strong> disk and install %1. <strong>Effacer</strong> le disque et installer %1. - + <strong>Replace</strong> a partition with %1. <strong>Remplacer</strong> une partition avec %1. - + <strong>Manual</strong> partitioning. Partitionnement <strong>manuel</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installer %1 <strong>à côté</strong> d'un autre système d'exploitation sur le disque <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Effacer</strong> le disque <strong>%2</strong> (%3) et installer %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Remplacer</strong> une partition sur le disque <strong>%2</strong> (%3) avec %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Partitionnement <strong>manuel</strong> sur le disque <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disque <strong>%1</strong> (%2) - + Current: Actuel : - + After: Après : - + No EFI system partition configured Aucune partition système EFI configurée - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Une partition système EFI est nécessaire pour démarrer %1.<br/><br/>Pour configurer une partition système EFI, revenez en arrière et sélectionnez ou créez une partition FAT32 avec le drapeau <strong>esp</strong> activé et le point de montage <strong>%2</strong>.<br/><br/>Vous pouvez continuer sans configurer de partition système EFI mais votre système pourrait refuser de démarrer. - + EFI system partition flag not set Drapeau de partition système EFI non configuré - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Une partition système EFI est nécessaire pour démarrer %1.<br/><br/>Une partition a été configurée avec le point de montage <strong>%2</strong> mais son drapeau <strong>esp</strong> n'est pas activé.<br/>Pour activer le drapeau, revenez en arrière et éditez la partition.<br/><br/>Vous pouvez continuer sans activer le drapeau mais votre système pourrait refuser de démarrer. - + Boot partition not encrypted Partition d'amorçage non chiffrée. - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Une partition d'amorçage distincte a été configurée avec une partition racine chiffrée, mais la partition d'amorçage n'est pas chiffrée. <br/> <br/> Il y a des problèmes de sécurité avec ce type d'installation, car des fichiers système importants sont conservés sur une partition non chiffrée <br/> Vous pouvez continuer si vous le souhaitez, mais le déverrouillage du système de fichiers se produira plus tard au démarrage du système. <br/> Pour chiffrer la partition d'amorçage, revenez en arrière et recréez-la, en sélectionnant <strong> Chiffrer </ strong> dans la partition Fenêtre de création. @@ -1806,30 +1821,49 @@ L'installateur se fermera et les changements seront perdus. Emplacement - - 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. - Merci de choisir l'apparence du bureau KDE Plasma. Vous pouvez aussi passer cette étape et configurer l'apparence une fois le système installé. + + 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. + Merci de choisir l'apparence du bureau KDE Plasma. Vous pouvez aussi passer cette étape et configurer l'apparence une fois le système installé. +Vous pouvez obtenir un aperçu des différentes apparences en cliquant sur celles-ci. PlasmaLnfViewStep - + Look-and-Feel Apparence + + PreserveFiles + + + Saving files for later ... + Sauvegarde des fichiers en cours pour plus tard... + + + + No files configured to save for later. + Aucun fichier de sélectionné pour sauvegarde ultérieure. + + + + Not all of the configured files could be preserved. + Certains des fichiers configurés n'ont pas pu être préservés. + + ProcessResult - + There was no output from the command. Il y a eu aucune sortie de la commande - + Output: @@ -1838,52 +1872,52 @@ Sortie - + External command crashed. La commande externe s'est mal terminée. - + Command <i>%1</i> crashed. La commande <i>%1</i> s'est arrêtée inopinément. - + External command failed to start. La commande externe n'a pas pu être lancée. - + Command <i>%1</i> failed to start. La commande <i>%1</i> n'a pas pu être lancée. - + Internal error when starting command. Erreur interne au lancement de la commande - + Bad parameters for process job call. Mauvais paramètres pour l'appel au processus de job. - + External command failed to finish. La commande externe ne s'est pas terminée. - + Command <i>%1</i> failed to finish in %2 seconds. La commande <i>%1</i> ne s'est pas terminée en %2 secondes. - + External command finished with errors. La commande externe s'est terminée avec des erreurs. - + Command <i>%1</i> finished with exit code %2. La commande <i>%1</i> s'est terminée avec le code de sortie %2. @@ -1902,22 +1936,22 @@ Sortie Défaut - + unknown inconnu - + extended étendu - + unformatted non formaté - + swap swap @@ -2010,52 +2044,52 @@ Sortie Récupération des informations système... - + has at least %1 GB available drive space a au moins %1 Go d'espace disque disponible - + There is not enough drive space. At least %1 GB is required. Il n'y a pas assez d'espace disque. Au moins %1 Go sont requis. - + has at least %1 GB working memory a au moins %1 Go de mémoire vive - + The system does not have enough working memory. At least %1 GB is required. Le système n'a pas assez de mémoire vive. Au moins %1 Go sont requis. - + is plugged in to a power source est relié à une source de courant - + The system is not plugged in to a power source. Le système n'est pas relié à une source de courant. - + is connected to the Internet est connecté à Internet - + The system is not connected to the Internet. Le système n'est pas connecté à Internet. - + The installer is not running with administrator rights. L'installateur ne dispose pas des droits administrateur. - + The screen is too small to display the installer. L'écran est trop petit pour afficher l'installateur. @@ -2099,29 +2133,29 @@ Sortie SetHostNameJob - + Set hostname %1 Définir le nom d'hôte %1 - + Set hostname <strong>%1</strong>. Configurer le nom d'hôte <strong>%1</strong>. - + Setting hostname %1. Configuration du nom d'hôte %1. - - + + Internal Error Erreur interne - - + + Cannot write hostname to target system Impossible d'écrire le nom d'hôte sur le système cible. @@ -2328,6 +2362,15 @@ Sortie Tâche des processus de l'intérpréteur de commande + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2498,7 +2541,7 @@ Sortie UsersViewStep - + Users Utilisateurs @@ -2556,7 +2599,7 @@ Sortie <h1>%1</h1><br/><strong>%2<br/> pour %3</strong><br/><br/> Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/> Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/> Merci à : Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg et <a href="https://www.transifex.com/calamares/calamares/">l'équipe de traducteurs de Calamares</a>.<br/><br/> Le développement de <a href="https://calamares.io/">Calamares</a> est sponsorisé par <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support Support de %1 @@ -2564,7 +2607,7 @@ Sortie WelcomeViewStep - + Welcome Bienvenue diff --git a/lang/calamares_fr_CH.ts b/lang/calamares_fr_CH.ts index c65ea113c..23e755b8b 100644 --- a/lang/calamares_fr_CH.ts +++ b/lang/calamares_fr_CH.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back - + + &Next - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error - + Installation Failed @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_gl.ts b/lang/calamares_gl.ts index 43a959f9d..2c11acc24 100644 --- a/lang/calamares_gl.ts +++ b/lang/calamares_gl.ts @@ -46,6 +46,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -98,7 +106,7 @@ Calamares::ExecutionViewStep - + Install Instalar @@ -106,7 +114,7 @@ Calamares::JobThread - + Done Feito @@ -114,12 +122,12 @@ Calamares::ProcessJob - + Run command %1 %2 Executar a orde %1 %2 - + Running command %1 %2 Executando a orde %1 %2 @@ -127,32 +135,32 @@ Calamares::PythonJob - + Running %1 operation. Excutando a operación %1. - + Bad working directory path A ruta ó directorio de traballo é errónea - + Working directory %1 for python job %2 is not readable. O directorio de traballo %1 para o traballo de python %2 non é lexible - + Bad main script file Ficheiro de script principal erróneo - + Main script file %1 for python job %2 is not readable. O ficheiro principal de script %1 para a execución de python %2 non é lexible. - + Boost.Python error in job "%1". Boost.Python tivo un erro na tarefa "%1". @@ -160,91 +168,112 @@ Calamares::ViewManager - + &Back &Atrás - + + &Next &Seguinte - - + + &Cancel &Cancelar - - + + Cancel installation without changing the system. Cancela-la instalación sen cambia-lo sistema - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Cancelar a instalación? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Desexa realmente cancelar o proceso actual de instalación? O instalador pecharase e perderanse todos os cambios. - + &Yes &Si - + &No &Non - + &Close &Pechar - + Continue with setup? Continuar coa posta en marcha? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> O %1 instalador está a piques de realizar cambios no seu disco para instalar %2.<br/><strong>Estes cambios non poderán desfacerse.</strong> - + &Install now &Instalar agora - + Go &back Ir &atrás - + &Done &Feito - + The installation is complete. Close the installer. Completouse a instalacion. Peche o instalador - + Error Erro - + Installation Failed Erro na instalación @@ -431,17 +460,17 @@ O instalador pecharase e perderanse todos os cambios. ClearMountsJob - + Clear mounts for partitioning operations on %1 Desmontar os volumes para levar a cabo as operacións de particionado en %1 - + Clearing mounts for partitioning operations on %1. Desmontando os volumes para levar a cabo as operacións de particionado en %1. - + Cleared all mounts for %1 Os volumes para %1 foron desmontados @@ -472,20 +501,26 @@ O instalador pecharase e perderanse todos os cambios. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -543,27 +578,27 @@ O instalador pecharase e perderanse todos os cambios. &Tamaño: - + En&crypt Encriptar - + Logical Lóxica - + Primary Primaria - + GPT GPT - + Mountpoint already in use. Please select another one. Punto de montaxe xa en uso. Faga o favor de escoller outro @@ -645,70 +680,40 @@ O instalador pecharase e perderanse todos os cambios. CreateUserJob - + Create user %1 Crear o usuario %1 - + Create user <strong>%1</strong>. Crear usario <strong>%1</strong> - + Creating user %1. Creación do usuario %1. - + Sudoers dir is not writable. O directorio sudoers non ten permisos de escritura. - + Cannot create sudoers file for writing. Non foi posible crear o arquivo de sudoers. - + Cannot chmod sudoers file. Non se puideron cambiar os permisos do arquivo sudoers. - + Cannot open groups file for reading. Non foi posible ler o arquivo grupos. - - - Cannot create user %1. - Non foi posible crear o usuario %1. - - - - useradd terminated with error code %1. - useradd terminou co código de erro %1. - - - - Cannot add user %1 to groups: %2. - Non foi posible engadir o usuario %1 ós grupos: %2. - - - - usermod terminated with error code %1. - usermod terminou co código de erro %1. - - - - Cannot set home directory ownership for user %1. - Non foi posible asignar o directorio home como propio para o usuario %1. - - - - chown terminated with error code %1. - chown terminou co código de erro %1. - DeletePartitionJob @@ -795,7 +800,7 @@ O instalador pecharase e perderanse todos os cambios. DummyCppJob - + Dummy C++ Job @@ -853,7 +858,7 @@ O instalador pecharase e perderanse todos os cambios. Bandeiras: - + Mountpoint already in use. Please select another one. Punto de montaxe xa en uso. Faga o favor de escoller outro. @@ -942,12 +947,12 @@ O instalador pecharase e perderanse todos os cambios. &Reiniciar agora. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Todo feito.</h1><br/>%1 foi instalado na súa computadora.<br/>Agora pode reiniciar no seu novo sistema ou continuar a usalo entorno Live %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Fallou a instalación</h1><br/>%1 non se pudo instalar na sua computadora. <br/>A mensaxe de erro foi: %2. @@ -1022,12 +1027,12 @@ O instalador pecharase e perderanse todos os cambios. KeyboardPage - + Set keyboard model to %1.<br/> Seleccionado modelo de teclado a %1.<br/> - + Set keyboard layout to %1/%2. Seleccionada a disposición do teclado a %1/%2. @@ -1071,64 +1076,64 @@ O instalador pecharase e perderanse todos os cambios. Formulario - + I accept the terms and conditions above. Acepto os termos e condicións anteriores. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acordo de licencia</h1>Este proceso de configuración instalará programas privativos suxeito a termos de licencia. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Faga o favor de revisalos Acordos de Licencia de Usuario Final (ALUF) seguintes. <br/>De non estar dacordo cos termos non se pode seguir co proceso de configuración. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acordo de licencia</h1>Este proceso de configuración pode instalar programas privativos suxeito a termos de licencia para fornecer características adicionaís e mellorala experiencia do usuario. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Faga o favor de revisalos Acordos de Licencia de Usuario Final (ALUF) seguintes. <br/>De non estar dacordo cos termos non se instalará o programa privativo e no seu lugar usaranse alternativas de código aberto. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>dispositivo %1</strong><br/>por %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1184,12 +1189,12 @@ O instalador pecharase e perderanse todos os cambios. LocaleViewStep - + Loading location data... Cargando datos de localización... - + Location Localización... @@ -1197,22 +1202,22 @@ O instalador pecharase e perderanse todos os cambios. NetInstallPage - + Name Nome - + Description Descripción - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Installación por rede. (Desactivadas. Non se pudo recupera-la lista de pacotes, comprobe a sua conexión a rede) - + Network Installation. (Disabled: Received invalid groups data) @@ -1220,7 +1225,7 @@ O instalador pecharase e perderanse todos os cambios. NetInstallViewStep - + Package selection Selección de pacotes. @@ -1228,242 +1233,242 @@ O instalador pecharase e perderanse todos os cambios. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1602,34 +1607,34 @@ O instalador pecharase e perderanse todos os cambios. PartitionModel - - + + Free Space - - + + New partition - + Name Nome - + File System - + Mount Point - + Size @@ -1658,7 +1663,7 @@ O instalador pecharase e perderanse todos os cambios. - &Create + Cre&ate @@ -1677,105 +1682,115 @@ O instalador pecharase e perderanse todos os cambios. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: Actual: - + After: Despois: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1807,81 +1822,99 @@ O instalador pecharase e perderanse todos os cambios. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Erro nos parámetros ao chamar o traballo - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1900,22 +1933,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2008,52 +2041,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2097,29 +2130,29 @@ Output: SetHostNameJob - + Set hostname %1 Hostname: %1 - + Set hostname <strong>%1</strong>. Configurar hostname <strong>%1</strong>. - + Setting hostname %1. Configurando hostname %1. - - + + Internal Error Erro interno - - + + Cannot write hostname to target system Non foi posíbel escreber o nome do servidor do sistema obxectivo @@ -2326,6 +2359,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2496,7 +2538,7 @@ Output: UsersViewStep - + Users Usuarios @@ -2554,7 +2596,7 @@ Output: - + %1 support %1 axuda @@ -2562,7 +2604,7 @@ Output: WelcomeViewStep - + Welcome Benvido diff --git a/lang/calamares_gu.ts b/lang/calamares_gu.ts index ef94d2ece..82cc90e63 100644 --- a/lang/calamares_gu.ts +++ b/lang/calamares_gu.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back - + + &Next - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error - + Installation Failed @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_he.ts b/lang/calamares_he.ts index df6cf90a2..13edcfac2 100644 --- a/lang/calamares_he.ts +++ b/lang/calamares_he.ts @@ -4,17 +4,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - <strong>תצורת האתחול</strong> של מערכת זו. <br><br> מערכות x86 ישנות יותר תומכות אך ורק ב <strong>BIOS</strong>.<br> מערכות חדשות משתמשות בדרך כלל ב <strong>EFI</strong>, אך יכולות להיות מוצגות כ BIOS במידה והן מופעלות במצב תאימות לאחור. + <strong>תצורת האתחול</strong> של מערכת זו. <br><br> מערכות x86 ישנות יותר תומכות אך ורק ב <strong>BIOS</strong>.<br> מערכות חדשות משתמשות בדרך כלל ב־<strong>EFI</strong>, אך עשוית להופיע כ־BIOS אם הן מופעלות במצב תאימות לאחור. This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - מערכת זו הופעלה בתצורת אתחול <strong>EFI</strong>.<br><br> בכדי להגדיר הפעלה מתצורת אתחול EFI, על אשף ההתקנה להתקין מנהל אתחול מערכת, לדוגמה <strong>GRUB</strong> או <strong>systemd-boot</strong> על <strong>מחיצת מערכת EFI</strong>. פעולה זו היא אוטומטית, אלא אם כן תבחר להגדיר מחיצות באופן ידני, במקרה זה עליך לבחור זאת או להגדיר בעצמך. + מערכת זו הופעלה בתצורת אתחול <strong>EFI</strong>.<br><br> כדי להגדיר הפעלה מתצורת אתחול EFI, על אשף ההתקנה להתקין מנהל אתחול מערכת, לדוגמה <strong>GRUB</strong> או <strong>systemd-boot</strong> על <strong>מחיצת מערכת EFI</strong>. פעולה זו היא אוטומטית, אלא אם כן העדפתך היא להגדיר מחיצות באופן ידני, במקרה זה עליך לבחור זאת או להגדיר בעצמך. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - מערכת זו הופעלה בתצורת אתחול <strong>BIOS</strong>.<br><br> בכדי להגדיר הפעלה מתצורת אתחול BIOS, על אשף ההתקנה להתקין מנהל אתחול מערכת, לדוגמה <strong>GRUB</strong>, בתחלית מחיצה או על ה <strong>Master Boot Record</strong> בצמוד להתחלה של טבלת המחיצות (מועדף). פעולה זו היא אוטומטית, אלא אם כן תבחר להגדיר מחיצות באופן ידני, במקרה זה עליך להגדיר זאת בעצמך. + מערכת זו הופעלה בתצורת אתחול <strong>BIOS</strong>.<br><br> כדי להגדיר הפעלה מתצורת אתחול BIOS, על אשף ההתקנה להתקין מנהל אתחול מערכת, לדוגמה <strong>GRUB</strong>, בתחילת המחיצה או על ה־<strong>Master Boot Record</strong> בצמוד להתחלה של טבלת המחיצות (מועדף). פעולה זו היא אוטומטית, אלא אם כן תבחר להגדיר מחיצות באופן ידני, במקרה זה עליך להגדיר זאת בעצמך. @@ -37,7 +37,7 @@ Do not install a boot loader - אל תתקין מנהל אתחול מערכת, boot loader + לא להתקין מנהל אתחול מערכת @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + עמוד ריק + + Calamares::DebugWindow @@ -97,153 +105,174 @@ Calamares::ExecutionViewStep - + Install - התקן + התקנה Calamares::JobThread - + Done - בוצע + הסתיים Calamares::ProcessJob - + Run command %1 %2 - הרץ פקודה %1 %2 + הרצת הפקודה %1 %2 - + Running command %1 %2 - מריץ פקודה %1 %2 + הפקודה %1 %2 רצה Calamares::PythonJob - + Running %1 operation. - מריץ פעולה %1. + הפעולה %1 רצה. - + Bad working directory path - נתיב תיקיית עבודה לא תקין + נתיב תיקיית עבודה שגוי - + Working directory %1 for python job %2 is not readable. - תיקיית עבודה %1 עבור משימת python %2 לא קריאה. + תיקיית העבודה %1 עבור משימת python‏ %2 אינה קריאה. - + Bad main script file קובץ תסריט הרצה ראשי לא תקין - + Main script file %1 for python job %2 is not readable. קובץ תסריט הרצה ראשי %1 עבור משימת python %2 לא קריא. - + Boost.Python error in job "%1". - שגיאת Boost.Python במשימה "%1". + שגיאת Boost.Python במשימה „%1”. Calamares::ViewManager - + &Back - &קודם + ה&קודם - + + &Next - &הבא + הב&א - - + + &Cancel - &בטל + &ביטול - - + + Cancel installation without changing the system. - בטל התקנה ללא ביצוע שינוי במערכת. + ביטול התקנה ללא ביצוע שינוי במערכת. - + + Calamares Initialization Failed + הפעלת Calamares נכשלה + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + אין אפשרות להתקין את %1. ל־Calamares אין אפשרות לטעון את המודולים המוגדרים. מדובר בתקלה באופן בו ההפצה משתמשת ב־Calamares. + + + + <br/>The following modules could not be loaded: + <br/>לא ניתן לטעון את המודולים הבאים: + + + + &Install + הת&קנה + + + Cancel installation? - בטל את ההתקנה? + לבטל את ההתקנה? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - האם אתה בטוח שברצונך לבטל את תהליך ההתקנה? + לבטל את תהליך ההתקנה? אשף ההתקנה ייסגר וכל השינויים יאבדו. - + &Yes &כן - + &No &לא - + &Close - &סגור + &סגירה - + Continue with setup? - המשך עם הליך ההתקנה? + להמשיך בהתקנה? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> אשף ההתקנה של %1 הולך לבצע שינויים בכונן שלך לטובת התקנת %2.<br/><strong>לא תוכל לבטל את השינויים הללו.</strong> - + &Install now - &התקן כעת + להת&קין כעת - + Go &back - &אחורה + ח&זרה - + &Done - &בוצע + &סיום - + The installation is complete. Close the installer. - תהליך ההתקנה הושלם. אנא סגור את אשף ההתקנה. + תהליך ההתקנה הושלם. נא לסגור את אשף ההתקנה. - + Error שגיאה - + Installation Failed ההתקנה נכשלה @@ -281,7 +310,7 @@ The installer will quit and all changes will be lost. Show debug information - הצג מידע על ניפוי שגיאות + הצגת מידע ניפוי שגיאות @@ -294,17 +323,17 @@ The installer will quit and all changes will be lost. This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - המחשב לא עומד בחלק מרף דרישות המינימום להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך חלק מהתכונות יכולות להיות מבוטלות. + המחשב לא עומד בחלק מרף דרישות המינימום להתקנת %1.<br/> ההתקנה יכולה להמשיך, אך יתכן כי חלק מהתכונות יושבתו. This program will ask you some questions and set up %2 on your computer. - אשף התקנה זה נכתב בלשון זכר אך מיועד לשני המינים. תוכנה זו תשאל אותך מספר שאלות ותגדיר את %2 על המחשב שלך. + תכנית זו תשאל אותך מספר שאלות ותתקין את %2 על המחשב שלך. For best results, please ensure that this computer: - לקבלת התוצאות הטובות ביותר, אנא וודא כי מחשב זה: + לקבלת התוצאות הטובות ביותר, נא לוודא כי מחשב זה: @@ -327,7 +356,7 @@ The installer will quit and all changes will be lost. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - <strong>הגדרת מחיצות באופן ידני</strong><br/>תוכל ליצור או לשנות את גודל המחיצות בעצמך. + <strong>הגדרת מחיצות באופן ידני</strong><br/>ניתן ליצור או לשנות את גודל המחיצות בעצמך. @@ -337,12 +366,12 @@ The installer will quit and all changes will be lost. %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - %1 תוקטן ל %2 MB ומחיצה חדשה בגודל %3 MB תיווצר עבור %4. + %1 תוקטן לכדי %2 מ״ב ותיווצר מחיצה חדשה בגודל %3 מ״ב עבור %4. Select storage de&vice: - בחר ה&תקן אחסון: + בחירת התקן א&חסון: @@ -355,27 +384,27 @@ The installer will quit and all changes will be lost. Reuse %1 as home partition for %2. - השתמש ב %1 כמחיצת הבית, home, עבור %2. + להשתמש ב־%1 כמחיצת הבית (home) עבור %2. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - <strong>בחר מחיצה לכיווץ, לאחר מכן גרור את הסרגל התחתון בכדי לשנות את גודלה</strong> + <strong>ראשית יש לבחור מחיצה לכיווץ, לאחר מכן לגרור את הסרגל התחתון כדי לשנות את גודלה</strong> <strong>Select a partition to install on</strong> - <strong>בחר מחיצה בכדי לבצע את ההתקנה עליה</strong> + <strong>נא לבחור מחיצה כדי להתקין עליה</strong> An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - מחיצת מערכת EFI לא נמצאה במערכת. אנא חזור והשתמש ביצירת מחיצות באופן ידני בכדי להגדיר את %1. + במערכת זו לא נמצאה מחיצת מערכת EFI. נא לחזור ולהשתמש ביצירת מחיצות באופן ידני כדי להגדיר את %1. The EFI system partition at %1 will be used for starting %2. - מחיצת מערכת EFI ב %1 תשמש עבור טעינת %2. + מחיצת מערכת ה־EFI שב־%1 תשמש עבור טעינת %2. @@ -385,7 +414,7 @@ The installer will quit and all changes will be lost. This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - לא נמצאה מערכת הפעלה על התקן אחסון זה. מה ברצונך לעשות?<br/> תוכל לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. + לא נמצאה מערכת הפעלה על התקן אחסון זה. מה ברצונך לעשות?<br/> ניתן לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. @@ -393,12 +422,12 @@ The installer will quit and all changes will be lost. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - <strong>מחק כונן</strong><br/> פעולה זו <font color="red">תמחק</font> את כל המידע השמור על התקן האחסון הנבחר. + <strong>מחיקת כונן</strong><br/> פעולה זו <font color="red">תמחק</font> את כל המידע השמור על התקן האחסון הנבחר. This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - נמצא %1 על התקן אחסון זה. מה ברצונך לעשות?<br/> תוכל לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. + בהתקן אחסון זה נמצאה %1. מה ברצונך לעשות?<br/> ניתן לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. @@ -406,7 +435,7 @@ The installer will quit and all changes will be lost. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - <strong>התקן לצד</strong><br/> אשף ההתקנה יכווץ מחיצה בכדי לפנות מקום עבור %1. + <strong>התקנה לצד</strong><br/> אשף ההתקנה יכווץ מחיצה כדי לפנות מקום לטובת %1. @@ -414,35 +443,35 @@ The installer will quit and all changes will be lost. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - <strong>החלף מחיצה</strong><br/> מבצע החלפה של המחיצה עם %1. + <strong>החלפת מחיצה</strong><br/> ביצוע החלפה של המחיצה ב־%1. This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - מערכת הפעלה קיימת על התקן האחסון הזה. מה ברצונך לעשות?<br/> תוכל לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. + כבר קיימת מערכת הפעלה על התקן האחסון הזה. כיצד להמשיך?<br/> ניתן לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - מערכות הפעלה מרובות קיימות על התקן אחסון זה. מה ברצונך לעשות? <br/>תוכל לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. + ישנן מגוון מערכות הפעלה על התקן אחסון זה. איך להמשיך? <br/>ניתן לסקור ולאשר את בחירתך לפני ששינויים יתבצעו על התקן האחסון. ClearMountsJob - + Clear mounts for partitioning operations on %1 - מחק נקודות עיגון עבור ביצוע פעולות של הגדרות מחיצה על %1. + מחיקת נקודות עיגון עבור פעולות חלוקה למחיצות על %1. - + Clearing mounts for partitioning operations on %1. - מבצע מחיקה של נקודות עיגון עבור ביצוע פעולות של הגדרות מחיצה על %1. + מתבצעת מחיקה של נקודות עיגון לטובת פעולות חלוקה למחיצות על %1. - + Cleared all mounts for %1 - בוצעה מחיקה עבור כל נקודות העיגון על %1. + כל נקודות העיגון על %1 נמחקו. @@ -450,7 +479,7 @@ The installer will quit and all changes will be lost. Clear all temporary mounts. - מחק את כל נקודות העיגון הזמניות. + מחיקת כל נקודות העיגון הזמניות. @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - + לא ניתן להריץ את הפקודה. - - No rootMountPoint is defined, so command cannot be run in the target environment. - + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + הפקודה פועלת בסביבת המארח ועליה לדעת מה נתיב השורש, אך לא צוין rootMountPoint. + + + + The command needs to know the user's name, but no username is defined. + הפקודה צריכה לדעת מה שם המשתמש, אך לא הוגדר שם משתמש. ContextualProcessJob - + Contextual Processes Job @@ -494,7 +529,7 @@ The installer will quit and all changes will be lost. Create a Partition - צור מחיצה + יצירת מחיצה @@ -524,7 +559,7 @@ The installer will quit and all changes will be lost. LVM LV name - + שם כרך לוגי במנהל הכרכים הלוגיים @@ -542,29 +577,29 @@ The installer will quit and all changes will be lost. גו&דל: - + En&crypt - ה&צפן + ה&צפנה - + Logical לוגי - + Primary ראשי - + GPT GPT - + Mountpoint already in use. Please select another one. - נקודת העיגון בשימוש. אנא בחר נקודת עיגון אחרת. + נקודת העיגון בשימוש. נא לבחור בנקודת עיגון אחרת. @@ -572,7 +607,7 @@ The installer will quit and all changes will be lost. Create new %2MB partition on %4 (%3) with file system %1. - צור מחיצה חדשה בגודל %2 MB על %4 (%3) עם מערכת קבצים %1. + יצירת מחיצה חדשה בגודל של %2 מ״ב על גבי %4 (%3) עם מערכת הקבצים %1. @@ -582,12 +617,12 @@ The installer will quit and all changes will be lost. Creating new %1 partition on %2. - מגדיר מחיצה %1 חדשה על %2. + מוגדרת מחיצת %1 חדשה על %2. The installer failed to create partition on disk '%1'. - אשף ההתקנה נכשל ביצירת מחיצה על כונן '%1'. + אשף ההתקנה נכשל ביצירת מחיצה על הכונן ‚%1’. @@ -595,7 +630,7 @@ The installer will quit and all changes will be lost. Create Partition Table - צור טבלת מחיצות + יצירת טבלת מחיצות @@ -623,17 +658,17 @@ The installer will quit and all changes will be lost. Create new %1 partition table on %2. - צור טבלת מחיצות %1 חדשה על %2. + יצירת טבלת מחיצות חדשה מסוג %1 על %2. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - צור טבלת מחיצות <strong>%1</strong> חדשה על <strong>%2</strong> (%3). + יצירת טבלת מחיצות חדשה מסוג <strong>%1</strong> על <strong>%2</strong> (%3). Creating new %1 partition table on %2. - יוצר טבלת מחיצות %1 חדשה על %2. + נוצרת טבלת מחיצות חדשה מסוג %1 על %2. @@ -644,77 +679,47 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - צור משתמש %1 + יצירת משתמש %1 - + Create user <strong>%1</strong>. - צור משתמש <strong>%1</strong>. + יצירת משתמש <strong>%1</strong>. - + Creating user %1. - יוצר משתמש %1. + נוצר משתמש %1. - + Sudoers dir is not writable. תיקיית מנהלי המערכת לא ניתנת לכתיבה. - + Cannot create sudoers file for writing. לא ניתן ליצור את קובץ מנהלי המערכת לכתיבה. - + Cannot chmod sudoers file. לא ניתן לשנות את מאפייני קובץ מנהלי המערכת. - + Cannot open groups file for reading. לא ניתן לפתוח את קובץ הקבוצות לקריאה. - - - Cannot create user %1. - לא ניתן ליצור משתמש %1. - - - - useradd terminated with error code %1. - פקודת יצירת המשתמש, useradd, נכשלה עם קוד יציאה %1. - - - - Cannot add user %1 to groups: %2. - לא ניתן להוסיף את המשתמש %1 לקבוצות: %2. - - - - usermod terminated with error code %1. - פקודת שינוי מאפייני המשתמש, usermod, נכשלה עם קוד יציאה %1. - - - - Cannot set home directory ownership for user %1. - לא ניתן להגדיר בעלות על תיקיית הבית עבור משתמש %1. - - - - chown terminated with error code %1. - פקודת שינוי בעלות, chown, נכשלה עם קוד יציאה %1. - DeletePartitionJob Delete partition %1. - מחק את מחיצה %1. + מחיקת המחיצה %1. @@ -788,15 +793,15 @@ The installer will quit and all changes will be lost. Failed to open %1 - נכשלה פתיחת %1. + הפתיחה של %1 נכשלה. DummyCppJob - + Dummy C++ Job - משימת דמה של C++ + משימת דמה של C++‎ @@ -804,17 +809,17 @@ The installer will quit and all changes will be lost. Edit Existing Partition - ערוך מחיצה קיימת + עריכת מחיצה קיימת Content: - תכולה: + תוכן: &Keep - &השאר + לה&שאיר @@ -852,9 +857,9 @@ The installer will quit and all changes will be lost. סימונים: - + Mountpoint already in use. Please select another one. - נקודת העיגון בשימוש. אנא בחר נקודת עיגון אחרת. + נקודת העיגון בשימוש. נא לבחור בנקודת עיגון אחרת. @@ -867,22 +872,22 @@ The installer will quit and all changes will be lost. En&crypt system - ה&צפן את המערכת + ה&צפנת המערכת Passphrase - ביטוי אבטחה + מילת צופן Confirm passphrase - אשר ביטוי אבטחה + אישור מילת צופן Please enter the same passphrase in both boxes. - אנא הכנס ביטוי אבטחה זהה בשני התאים. + נא להקליד את אותה מילת הצופן בשתי התיבות. @@ -890,37 +895,37 @@ The installer will quit and all changes will be lost. Set partition information - הגדר מידע עבור המחיצה + הגדרת מידע עבור המחיצה Install %1 on <strong>new</strong> %2 system partition. - התקן %1 על מחיצת מערכת %2 <strong>חדשה</strong>. + התקנת %1 על מחיצת מערכת <strong>חדשה</strong> מסוג %2. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - הגדר מחיצת מערכת %2 <strong>חדשה</strong>בעלת נקודת עיגון <strong>%1</strong>. + הגדרת מחיצת מערכת <strong>חדשה</strong> מסוג %2 עם נקודת העיגון <strong>%1</strong>. Install %2 on %3 system partition <strong>%1</strong>. - התקן %2 על מחיצת מערכת %3 <strong>%1</strong>. + התקנת %2 על מחיצת מערכת <strong>%1</strong> מסוג %3. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - התקן מחיצה %3 <strong>%1</strong> עם נקודת עיגון <strong>%2</strong>. + התקן מחיצה מסוג %3 <strong>%1</strong> עם נקודת העיגון <strong>%2</strong>. Install boot loader on <strong>%1</strong>. - התקן מנהל אתחול מערכת על <strong>%1</strong>. + התקנת מנהל אתחול מערכת על <strong>%1</strong>. Setting up mount points. - מגדיר נקודות עיגון. + נקודות עיגון מוגדרות. @@ -933,20 +938,20 @@ The installer will quit and all changes will be lost. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>כאשר תיבה זו מסומנת, המערכת שלך תופעל מחדש מיידית עם הלחיצה על <span style=" font-style:italic;">סיום</span> או עם סגירת תכנית ההתקנה.</p></body></html> &Restart now - &אתחל כעת + ה&פעלה מחדש כעת - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>תהליך ההתקנה הסתיים.</h1><br/>%1 הותקן על המחשב שלך.<br/> כעת ניתן לאתחל את המחשב אל תוך המערכת החדשה שהותקנה, או להמשיך להשתמש בסביבה הנוכחית של %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>ההתקנה נכשלה</h1><br/>%1 לא הותקן על מחשבך.<br/> הודעת השגיאה: %2. @@ -974,7 +979,7 @@ The installer will quit and all changes will be lost. Format partition %1 (file system: %2, size: %3 MB) on %4. - אתחל מחיצה %1 (מערכת קבצים: %2, גודל: %3 MB) על %4. + אתחל מחיצה %1 (מערכת קבצים: %2, גודל: %3 מ״ב) על %4. @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> הגדר את דגם המקלדת ל %1.<br/> - + Set keyboard layout to %1/%2. הגדר את פריסת לוח המקשים ל %1/%2. @@ -1070,66 +1075,66 @@ The installer will quit and all changes will be lost. Form - + I accept the terms and conditions above. - אני מאשר את התנאים וההתניות מעלה. + התנאים וההגבלות שלמעלה מקובלים עלי. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - <h1>הסכם רישיון</h1>אשף התקנה זה יבצע התקנה של תוכנות קנייניות אשר כפופות לתנאי רישיון. + <h1>הסכם רישיון</h1>אשף התקנה זה יבצע התקנה של תכניות קנייניות אשר כפופות לתנאי רישיון. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - אנא סקור את הסכם משתמש הקצה (EULA) מעלה.<br/> במידה ואינך מסכים עם התנאים, תהליך ההתקנה יופסק. + נא לעיין בהסכם משתמש הקצה (EULA) מעלה.<br/> אם התנאים אינם מקובלים עליך, תהליך ההתקנה יופסק. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>הסכם רישיון</h1>אשף התקנה זה יכול לבצע התקנה של תוכנות קנייניות אשר כפופות לתנאי רישיון בכדי לספק תכולות נוספות ולשדרג את חווית המשתמש. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. אנא סקור את הסכם משתמש הקצה (EULA) מעלה.<br/> במידה ואינך מסכים עם התנאים, תוכנות קנייניות לא יותקנו, ותוכנות חליפיות מבוססות קוד פתוח יותקנו במקומן. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>התקן %1</strong><br/> מאת %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>התקן תצוגה %1</strong><br/><font color="Grey"> מאת %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>תוסף לדפדפן %1</strong><br/><font color="Grey"> מאת %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>קידוד %1</strong><br/><font color="Grey"> מאת %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>חבילה %1</strong><br/><font color="Grey"> מאת %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">מאת %2</font> - + <a href="%1">view license agreement</a> - <a href="%1">צפה בהסכם הרשיון</a> + <a href="%1">הצגת הסכם הרישיון</a> @@ -1137,7 +1142,7 @@ The installer will quit and all changes will be lost. License - רשיון + רישיון @@ -1166,7 +1171,7 @@ The installer will quit and all changes will be lost. &Change... - &החלף... + ה&חלפה… @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - טוען נתונים על המיקום... + הנתונים על המיקום נטענים… - + Location מיקום @@ -1196,30 +1201,30 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name שם - + Description תיאור - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - התקנת רשת. (מנוטרלת: לא ניתן לאחזר רשימות של חבילות תוכנה, אנא בדוק את חיבורי הרשת) + התקנה מהרשת. (מושבתת: לא ניתן לקבל רשימות של חבילות תכנה, נא לבדוק את החיבור לרשת) - + Network Installation. (Disabled: Received invalid groups data) - התקנה מהרשת. (מנוטרל: התקבל מידע שגוי בנושא הקבוצות) + התקנה מהרשת. (מושבתת: המידע שהתקבל על קבוצות שגוי) NetInstallViewStep - + Package selection בחירת חבילות @@ -1227,244 +1232,244 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - הסיסמה קצרה מדי + הססמה קצרה מדי - + Password is too long - הסיסמה ארוכה מדי + הססמה ארוכה מדי - + Password is too weak - + הססמה חלשה מדי - + Memory allocation error when setting '%1' - + שגיאת הקצאת זיכרון בעת הגדרת ‚%1’ - + Memory allocation error - + שגיאת הקצאת זיכרון - + The password is the same as the old one - + הססמה זהה לישנה - + The password is a palindrome - + הססמה היא פלינדרום - + The password differs with case changes only - + מורכבות הססמה טמונה בשינויי סוגי אותיות בלבד - + The password is too similar to the old one - + הססמה דומה מדי לישנה - + The password contains the user name in some form - + הססמה מכילה את שם המשתמש בצורה כלשהי - + The password contains words from the real name of the user in some form - + הססמה מכילה מילים מהשם האמתי של המשתמש בצורה זו או אחרת - + The password contains forbidden words in some form - + הססמה מכילה מילים אסורות בצורה כלשהי - + The password contains less than %1 digits - + הססמה מכילה פחות מ־%1 ספרות - + The password contains too few digits - + הססמה לא מכילה מספיק ספרות - + The password contains less than %1 uppercase letters - + הססמה מכילה פחות מ־%1 אותיות גדולות - + The password contains too few uppercase letters - + הססמה מכילה מעט מדי אותיות גדולות - + The password contains less than %1 lowercase letters - + הססמה מכילה פחות מ־%1 אותיות קטנות - + The password contains too few lowercase letters - + הססמה אינה מכילה מספיק אותיות קטנות - + The password contains less than %1 non-alphanumeric characters - + הססמה מכילה פחות מ־%1 תווים שאינם אלפאנומריים - + The password contains too few non-alphanumeric characters - + הססמה מכילה מעט מדי תווים שאינם אלפאנומריים - + The password is shorter than %1 characters - + אורך הססמה קצר מ־%1 תווים - + The password is too short - + הססמה קצרה מדי - + The password is just rotated old one - + הססמה היא פשוט סיכול של ססמה קודמת - + The password contains less than %1 character classes - + הססמה מכילה פחות מ־%1 סוגי תווים - + The password does not contain enough character classes - + הססמה לא מכילה מספיק סוגי תווים - + The password contains more than %1 same characters consecutively - + הססמה מכילה יותר מ־%1 תווים זהים ברצף - + The password contains too many same characters consecutively - + הססמה מכילה יותר מדי תווים זהים ברצף - + The password contains more than %1 characters of the same class consecutively - + הססמה מעילה יותר מ־%1 תווים מאותו הסוג ברצף - + The password contains too many characters of the same class consecutively - + הססמה מכילה יותר מדי תווים מאותו הסוג ברצף - + The password contains monotonic sequence longer than %1 characters - + הססמה מכילה רצף תווים מונוטוני של יותר מ־%1 תווים - + The password contains too long of a monotonic character sequence - + הססמה מכילה רצף תווים מונוטוני ארוך מדי - + No password supplied - + לא צוינה ססמה - + Cannot obtain random numbers from the RNG device - + לא ניתן לקבל מספרים אקראיים מהתקן ה־RNG - + Password generation failed - required entropy too low for settings - + יצירת הססמה נכשלה - רמת האקראיות הנדרשת נמוכה ביחס להגדרות - + The password fails the dictionary check - %1 - + הססמה נכשלה במבחן המילון - %1 - + The password fails the dictionary check - + הססמה נכשלה במבחן המילון - + Unknown setting - %1 - + הגדרה לא מוכרת - %1 - + Unknown setting - + הגדרה לא מוכרת - + Bad integer value of setting - %1 - + ערך מספרי שגוי להגדרה - %1 - + Bad integer value - + ערך מספרי שגוי - + Setting %1 is not of integer type - + ההגדרה %1 אינה מסוג מספר שלם - + Setting is not of integer type - + ההגדרה אינה מסוג מספר שלם - + Setting %1 is not of string type - + ההגדרה %1 אינה מסוג מחרוזת - + Setting is not of string type - + ההגדרה אינה מסוג מחרוזת - + Opening the configuration file failed - + פתיחת קובץ התצורה נכשלה - + The configuration file is malformed - + קובץ התצורה פגום - + Fatal failure - + כשל מכריע - + Unknown error - + שגיאה לא ידועה @@ -1482,7 +1487,7 @@ The installer will quit and all changes will be lost. Type here to test your keyboard - הקלד כאן בכדי לבדוק את המקלדת שלך + ניתן להקליד כאן כדי לבדוק את המקלדת שלך @@ -1495,19 +1500,19 @@ The installer will quit and all changes will be lost. What is your name? - מהו שמך? + מה שמך? What name do you want to use to log in? - באיזה שם ברצונך להשתמש בעת כניסה למחשב? + איזה שם ברצונך שישמש אותך לכניסה? font-weight: normal - משקל-גופן: נורמלי + font-weight: normal @@ -1517,42 +1522,42 @@ The installer will quit and all changes will be lost. Choose a password to keep your account safe. - בחר סיסמה בכדי להגן על חשבונך. + נא לבחור ססמה להגנה על חשבונך. <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> - <small>הכנס את אותה הסיסמה פעמיים, בכדי שניתן יהיה לבדוק שגיאות הקלדה. סיסמה טובה אמורה להכיל שילוב של אותיות, מספרים וסימני פיסוק, להיות באורך שמונה תווים לפחות, ועליה להשתנות במרווחי זמן קבועים.</small> + <small>יש להקליד את אותה הססמה פעמיים כדי שניתן יהיה לבדוק שגיאות הקלדה. ססמה טובה אמורה להכיל שילוב של אותיות, מספרים וסימני פיסוק, להיות באורך של שמונה תווים לפחות ויש להחליף אותה במרווחי זמן קבועים.</small> What is the name of this computer? - מהו שם מחשב זה? + מהו השם של המחשב הזה? <small>This name will be used if you make the computer visible to others on a network.</small> - <small>שם זה יהיה בשימוש במידה ומחשב זה יוגדר להיות נראה על ידי עמדות אחרות ברשת.</small> + <small>בשם זה ייעשה שימוש לטובת זיהוי מול מחשבים אחרים ברשת במידת הצורך.</small> Log in automatically without asking for the password. - התחבר באופן אוטומטי מבלי לבקש סיסמה. + כניסה אוטומטית מבלי לבקש ססמה. Use the same password for the administrator account. - השתמש באותה הסיסמה עבור חשבון המנהל. + להשתמש באותה הססמה עבור חשבון המנהל. Choose a password for the administrator account. - בחר סיסמה עבור חשבון המנהל. + בחירת ססמה עבור חשבון המנהל. <small>Enter the same password twice, so that it can be checked for typing errors.</small> - <small>הכנס את אותה הסיסמה פעמיים, בכדי שניתן יהיה לבדוק שגיאות הקלדה.</small> + <small>עליך להקליד את אותה הססמה פעמיים כדי לאפשר זיהוי של שגיאות הקלדה.</small> @@ -1601,34 +1606,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space זכרון פנוי - - + + New partition מחיצה חדשה - + Name שם - + File System מערכת קבצים - + Mount Point נקודת עיגון - + Size גודל @@ -1643,12 +1648,12 @@ The installer will quit and all changes will be lost. Storage de&vice: - &התקן זכרון: + ה&תקן זיכרון: &Revert All Changes - &בטל את כל השינויים + &ביטול כל השינויים @@ -1657,124 +1662,134 @@ The installer will quit and all changes will be lost. - &Create - &צור + Cre&ate + י&צירה &Edit - &ערוך + &עריכה &Delete - &מחק + מ&חיקה Install boot &loader on: - התקן &מנהל אתחול מערכת על: + התקנת מ&נהל אתחול מערכת על: - + Are you sure you want to create a new partition table on %1? - האם אתה בטוח שברצונך ליצור טבלת מחיצות חדשה על %1? + ליצור טבלת מחיצות חדשה על %1? + + + + Can not create new partition + לא ניתן ליצור מחיצה חדשה + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + לטבלת המחיצות על %1 כבר יש %2 מחיצות עיקריות ואי אפשר להוסיף עוד כאלה. נא להסיר מחיצה עיקרית אחת ולהוסיף מחיצה מורחבת במקום. PartitionViewStep - + Gathering system information... - מלקט מידע אודות המערכת... + נאסף מידע על המערכת… - + Partitions מחיצות - + Install %1 <strong>alongside</strong> another operating system. - התקן את %1 <strong>לצד</strong> מערכת הפעלה אחרת. + להתקין את %1 <strong>לצד</strong> מערכת הפעלה אחרת. - + <strong>Erase</strong> disk and install %1. - <strong>מחק</strong> את הכונן והתקן את %1. + <strong>למחוק</strong> את הכונן ולהתקין את %1. - + <strong>Replace</strong> a partition with %1. - <strong>החלף</strong> מחיצה עם %1. + <strong>החלפת</strong> מחיצה עם %1. - + <strong>Manual</strong> partitioning. - מגדיר מחיצות באופן <strong>ידני</strong>. + להגדיר מחיצות באופן <strong>ידני</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - התקן את %1 <strong>לצד</strong> מערכת הפעלה אחרת על כונן <strong>%2</strong> (%3). + להתקין את %1 <strong>לצד</strong> מערכת הפעלה אחרת על כונן <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - <strong>מחק</strong> כונן <strong>%2</strong> (%3) והתקן %1. + <strong>למחוק</strong> את הכונן <strong>%2</strong> (%3) ולהתקין את %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>החלף</strong> מחיצה על כונן <strong>%2</strong> (%3) עם %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). מגדיר מחיצות באופן <strong>ידני</strong> על כונן <strong>%1</strong>(%2). - + Disk <strong>%1</strong> (%2) כונן <strong>%1</strong> (%2) - + Current: נוכחי: - + After: לאחר: - + No EFI system partition configured לא הוגדרה מחיצת מערכת EFI - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. מחיצת מערכת EFI נדרשת בשביל להפעיל את %1.<br/><br/> בכדי להגדיר מחיצת מערכת EFI, חזור ובחר או צור מערכת קבצים מסוג FAT32 עם סימון <strong>esp</strong> מופעל ונקודת עיגון <strong>%2</strong>.<br/><br/> ניתן להמשיך ללא הגדרת מחיצת מערכת EFI אך המערכת יכולה להיכשל בטעינה. - + EFI system partition flag not set סימון מחיצת מערכת EFI לא מוגדר - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. מחיצת מערכת EFI נדרשת להפעלת %1.<br/><br/> מחיצה הוגדרה עם נקודת עיגון <strong>%2</strong> אך סימון <strong>esp</strong> לא הוגדר.<br/> בכדי לסמן את המחיצה, חזור וערוך את המחיצה.<br/><br/> תוכל להמשיך ללא ביצוע הסימון אך המערכת יכולה להיכשל בטעינה. - + Boot partition not encrypted מחיצת טעינת המערכת Boot לא מוצפנת. - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. מחיצת טעינה, boot, נפרדת הוגדרה יחד עם מחיצת מערכת ההפעלה, root, מוצפנת, אך מחיצת הטעינה לא הוצפנה.<br/><br/> ישנן השלכות בטיחותיות עם התצורה שהוגדרה, מכיוון שקבצי מערכת חשובים נשמרים על מחיצה לא מוצפנת.<br/>תוכל להמשיך אם תרצה, אך שחרור מערכת הקבצים יתרחש מאוחר יותר כחלק מטעינת המערכת.<br/>בכדי להצפין את מחיצת הטעינה, חזור וצור אותה מחדש, על ידי בחירה ב <strong>הצפן</strong> בחלונית יצירת המחיצה. @@ -1784,13 +1799,13 @@ The installer will quit and all changes will be lost. Plasma Look-and-Feel Job - + משימת מראה ותחושה של Plasma Could not select KDE Plasma Look-and-Feel package - + לא ניתן לבחור את חבילת המראה והתחושה של KDE Plasma. @@ -1803,86 +1818,107 @@ The installer will quit and all changes will be lost. Placeholder - שומר מקום + ממלא מקום - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel - + מראה ותחושה + + + + PreserveFiles + + + Saving files for later ... + הקבצים נשמרים להמשך… + + + + No files configured to save for later. + לא הוגדרו קבצים לשמירה בהמשך. + + + + Not all of the configured files could be preserved. + לא ניתן לשמר את כל הקבצים שהוגדרו. ProcessResult - + There was no output from the command. - + +לא היה פלט מהפקודה. - + Output: - + +פלט: + - + External command crashed. - + הפקודה החיצונית נכשלה. - + Command <i>%1</i> crashed. - + הפקודה <i>%1</i> קרסה. - + External command failed to start. - + הפעלת הפעולה החיצונית נכשלה. - + Command <i>%1</i> failed to start. - + הפעלת הפקודה <i>%1</i> נכשלה. - + Internal error when starting command. - + שגיאה פנימית בעת הפעלת פקודה. - + Bad parameters for process job call. פרמטרים לא תקינים עבור קריאת עיבוד פעולה. - + External command failed to finish. - + סיום הפקודה החיצונית נכשל. - + Command <i>%1</i> failed to finish in %2 seconds. - + הפקודה <i>%1</i> לא הסתיימה תוך %2 שניות. - + External command finished with errors. - + הפקודה החיצונית הסתיימה עם שגיאות. - + Command <i>%1</i> finished with exit code %2. - + הפקודה <i>%1</i> הסתיימה עם קוד היציאה %2. @@ -1890,38 +1926,38 @@ Output: Default Keyboard Model - ברירת מחדל של דגם המקלדת + דגם מקלדת כבררת מחדל Default - ברירת מחדל + בררת מחדל - + unknown - לא מוכר/ת + לא ידוע - + extended - מורחב/ת + מורחבת - + unformatted - לא מאותחל/ת + לא מאותחלת - + swap דפדוף, swap Unpartitioned space or unknown partition table - הזכרון לא מחולק למחיצות או טבלת מחיצות לא מוכרת + הזכרון לא מחולק למחיצות או שטבלת המחיצות אינה מוכרת @@ -2004,57 +2040,57 @@ Output: Gathering system information... - מלקט מידע אודות המערכת... + נאסף מידע על המערכת… - + has at least %1 GB available drive space - קיים לפחות %1 GB של נפח אחסון + עם %1 ג״ב של נפח אחסון לפחות - + There is not enough drive space. At least %1 GB is required. - נפח האחסון לא מספק. נדרש לפחות %1 GB. + נפח האחסון לא מספיק. נדרשים %1 ג״ב לפחות. - + has at least %1 GB working memory - קיים לפחות %1 GB של זכרון פעולה + עם %1 ג״ב של זכרון פעולה לפחות - + The system does not have enough working memory. At least %1 GB is required. - כמות הזכרון הנדרשת לפעולה, לא מספיקה. נדרש לפחות %1 GB. + כמות הזיכרון הנדרשת לפעולה אינה מספיקה. נדרשים %1 ג״ב לפחות. - + is plugged in to a power source מחובר לספק חשמל חיצוני - + The system is not plugged in to a power source. המערכת לא מחוברת לספק חשמל חיצוני. - + is connected to the Internet מחובר לאינטרנט - + The system is not connected to the Internet. המערכת לא מחוברת לאינטרנט. - + The installer is not running with administrator rights. אשף ההתקנה לא רץ עם הרשאות מנהל. - + The screen is too small to display the installer. - גודל המסך קטן מדי בכדי להציג את מנהל ההתקנה. + גודל המסך קטן מכדי להציג את תכנית ההתקנה. @@ -2062,7 +2098,7 @@ Output: Resize partition %1. - שנה גודל מחיצה %1. + שינוי גודל המחיצה %1. @@ -2085,42 +2121,42 @@ Output: Scanning storage devices... - סורק התקני זכרון... + התקני אחסון נסרקים… Partitioning - מגדיר מחיצות + חלוקה למחיצות SetHostNameJob - + Set hostname %1 - הגדר שם עמדה %1 + הגדרת שם מארח %1 - + Set hostname <strong>%1</strong>. - הגדר שם עמדה <strong>%1</strong>. + הגדרת שם מארח <strong>%1</strong>. - + Setting hostname %1. - מגדיר את שם העמדה %1. + שם העמדה %1 מוגדר. - - + + Internal Error שגיאה פנימית - - + + Cannot write hostname to target system - נכשלה כתיבת שם העמדה למערכת המטרה + כתיבת שם העמדה למערכת היעד נכשלה @@ -2168,12 +2204,12 @@ Output: Set flags on new partition. - הגדר סימונים על מחיצה חדשה. + הגדרת סימונים על מחיצה חדשה. Clear flags on partition <strong>%1</strong>. - מחק סימונים על מחיצה <strong>%1</strong>. + מחיקת סימונים מהמחיצה <strong>%1</strong>. @@ -2325,6 +2361,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2403,7 +2448,7 @@ Output: Placeholder - שומר מקום + ממלא מקום @@ -2495,7 +2540,7 @@ Output: UsersViewStep - + Users משתמשים @@ -2535,17 +2580,17 @@ Output: <h1>Welcome to the %1 installer.</h1> - <h1>ברוכים הבאים להתקנת %1.</h1> + <h1>ברוך בואך להתקנת %1.</h1> <h1>Welcome to the Calamares installer for %1.</h1> - <h1>ברוכים הבאים להתקנת Calamares עבור %1.</h1> + <h1>ברוך בואך להתקנת %1 עם Calamares.</h1> About %1 installer - אודות התקנת %1 + על אודות התקנת %1 @@ -2553,17 +2598,17 @@ Output: - + %1 support - תמיכה ב - %1 + תמיכה ב־%1 WelcomeViewStep - + Welcome - ברוכים הבאים + ברוך בואך \ No newline at end of file diff --git a/lang/calamares_hi.ts b/lang/calamares_hi.ts index 5e36c160c..42750f9a0 100644 --- a/lang/calamares_hi.ts +++ b/lang/calamares_hi.ts @@ -4,17 +4,17 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - + इस सिस्टम का <strong>बूट वातावरण</strong>।<br><br>पुराने x86 सिस्टम केवल <strong>BIOS</strong> का समर्थन करते हैं। आधुनिक सिस्टम आमतौर पर <strong>EFI</strong> का उपयोग करते हैं, लेकिन संगतता मोड में शुरू होने पर BIOS के रूप में दिखाई दे सकते हैं । This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - + यह सिस्टम <strong>EFI</strong>बूट वातावरण के साथ शुरू किया गया।<br><br>EFI वातावरण से स्टार्टअप विन्यस्त करने के लिए इंस्टॉलर को <strong>GRUB</strong> या <strong>systemd-boot</strong> जैसे बूट लोडर अनुप्रयोग <strong>EFI सिस्टम विभाजन</strong>पर स्थापित करने जरूरी हैं। यह स्वत: होता है, परंतु अगर आप मैनुअल विभाजन करना चुनते है; तो आपको या तो इसे चुनना होगा या फिर खुद ही बनाना होगा। This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - + यह सिस्टम <strong>BIOS</strong>बूट वातावरण के साथ शुरू किया गया।<br><br>BIOS वातावरण से स्टार्टअप विन्यस्त करने के लिए इंस्टॉलर को <strong>GRUB</strong> जैसे बूट लोडर को, या तो विभाजन की शुरुआत में या फिर <strong>Master Boot Record</strong> पर विभाजन तालिका की शुरुआत में इंस्टॉल (सुझाया जाता है) करना होगा। यह स्वत: होता है, परंतु अगर आप मैनुअल विभाजन करना चुनते है; तो आपको इसे खुद ही बनाना होगा। @@ -22,27 +22,35 @@ Master Boot Record of %1 - + %1 का Master Boot Record Boot Partition - + बूट विभाजन System Partition - + सिस्टम विभाजन Do not install a boot loader - + बूट लोडर इंस्टॉल न करें %1 (%2) - + %1 (%2) + + + + Calamares::BlankViewStep + + + Blank Page + खाली पृष्ठ @@ -50,201 +58,223 @@ Form - + रूप GlobalStorage - + GlobalStorage JobQueue - + JobQueue Modules - + मापांक Type: - + प्रकार none - + कुछ नहीं Interface: - + अंतरफलक : Tools - + साधन Debug information - + डीबग संबंधी जानकारी Calamares::ExecutionViewStep - + Install - + इंस्टॉल करें Calamares::JobThread - + Done - + पूर्ण Calamares::ProcessJob - + Run command %1 %2 - + कमांड %1%2 चलाएँ - + Running command %1 %2 - + कमांड %1%2 चल रही हैं Calamares::PythonJob - + Running %1 operation. - + %1 चल रहा है। - + Bad working directory path - + कार्यरत फोल्डर का पथ गलत है - + Working directory %1 for python job %2 is not readable. - + Python job %2 के लिए कार्यरत डायरेक्टरी %1 रीड करने योग्य नहीं है। - + Bad main script file - + मुख्य स्क्रिप्ट फ़ाइल गलत है - + Main script file %1 for python job %2 is not readable. - + Python job %2 के लिए मुख्य स्क्रिप्ट फ़ाइल %1 रीड करने योग्य नहीं है। - + Boost.Python error in job "%1". - + Job "%1" में Boost.Python त्रुटि। Calamares::ViewManager - + &Back - + वापस (&B) - + + &Next - + आगे (&N) - - + + &Cancel - + रद्द करें (&C) - - + + Cancel installation without changing the system. - + सिस्टम में बदलाव किये बिना इंस्टॉल रद्द करें। + + + + Calamares Initialization Failed + Calamares का आरंभीकरण विफल रहा + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 को इंस्टॉल नहीं किया जा सका। Calamares सारे विन्यस्त मापांकों को लोड करने में विफल रहा। इस समस्या का कारण लिनक्स-वितरण द्वारा Calamares के उपयोग-संबंधी कोई त्रुटि है। + + + + <br/>The following modules could not be loaded: + <br/>निम्नलिखित मापांक लोड नहीं हो सकें : + + + + &Install + इंस्टॉल करें (&I) - + Cancel installation? - + इंस्टॉल रद्द करें? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + क्या आप वाकई वर्तमान इंस्टॉल प्रक्रिया रद्द करना चाहते हैं? +इंस्टॉलर बंद हो जाएगा व सभी बदलाव नष्ट। - + &Yes - + हाँ (&Y) - + &No - + नहीं (&N) - + &Close - + बंद करें (&C) - + Continue with setup? - + सेटअप करना जारी रखें? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + %2 इंस्टॉल करने के लिए %1 इंस्टॉलर आपकी डिस्क में बदलाव करने वाला है।<br/><strong>आप इन बदलावों को पूर्ववत नहीं कर पाएंगे।</strong> - + &Install now - + अभी इंस्टॉल करें (&I) - + Go &back - + वापस जाएँ (&b) - + &Done - + पूर्ण हुआ (&D) - + The installation is complete. Close the installer. - + इंस्टॉल पूर्ण हुआ। अब इंस्टॉलर को बंद करें। - + Error - + त्रुटि - + Installation Failed - + इंस्टॉल विफल रहा। @@ -252,22 +282,22 @@ The installer will quit and all changes will be lost. Unknown exception type - + अपवाद का प्रकार अज्ञात है unparseable Python error - + unparseable Python त्रुटि unparseable Python traceback - + unparseable Python traceback Unfetchable Python error. - + Unfetchable Python त्रुटि। @@ -275,12 +305,12 @@ The installer will quit and all changes will be lost. %1 Installer - + %1 इंस्टॉलर Show debug information - + डीबग संबंधी जानकारी दिखाएँ @@ -288,27 +318,27 @@ The installer will quit and all changes will be lost. This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + यह कंप्यूटर %1 को इंस्टॉल करने की न्यूनतम आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी नहीं रखा जा सकता।<a href="#details">विवरण...</a> This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. - + यह कंप्यूटर %1 को इंस्टॉल करने की सुझायी गई आवश्यकताओं को पूरा नहीं करता।<br/>इंस्टॉल जारी रखा जा सकता, लेकिन कुछ विशेषताएँ निष्क्रिय हो सकती हैं। This program will ask you some questions and set up %2 on your computer. - + यह प्रोग्राम आपसे कुछ सवाल पूछ आपके कंप्यूटर पर %2 को सेट करेगा। For best results, please ensure that this computer: - + उत्तम परिणामों के लिए, कृपया सुनिश्चित करें कि यह कंप्यूटर: System requirements - + सिस्टम इंस्टॉल हेतु आवश्यकताएँ @@ -316,32 +346,32 @@ The installer will quit and all changes will be lost. Form - + रूप After: - + बाद में: <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - + <strong>मैनुअल विभाजन</strong><br/> आप स्वयं भी विभाजन बना व उनका आकार बदल सकते है। Boot loader location: - + बूट लोडर का स्थान: %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - + %1 को छोटा करके %2MB किया जाएगा व %4 के लिए %3MB का एक नया विभाजन बनेगा। Select storage de&vice: - + डिवाइस चुनें (&v): @@ -349,42 +379,42 @@ The installer will quit and all changes will be lost. Current: - + मौजूदा : Reuse %1 as home partition for %2. - + %2 के होम विभाजन के लिए %1 को पुनः उपयोग करें। <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - + <strong>छोटा करने के लिए विभाजन चुनें, फिर नीचे bar से उसका आकर सेट करें</strong> <strong>Select a partition to install on</strong> - + <strong>इंस्टॉल के लिए विभाजन चुनें</strong> An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + इस सिस्टम पर कहीं भी कोई EFI सिस्टम विभाजन नहीं मिला। कृपया वापस जाएँ व %1 को सेट करने के लिए मैनुअल रूप से विभाजन करें। The EFI system partition at %1 will be used for starting %2. - + %1 वाले EFI सिस्टम विभाजन का उपयोग %2 को शुरू करने के लिए किया जाएगा। EFI system partition: - + EFI सिस्टम विभाजन: This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + इस डिवाइस पर लगता है कि कोई ऑपरेटिंग सिस्टम नहीं है। आप क्या करना चाहेंगे?<br/>आप डिवाइस में किसी भी बदलाव से पहले उसकी समीक्षा व पुष्टि कर सकेंगे। @@ -392,12 +422,12 @@ The installer will quit and all changes will be lost. <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. - + <strong>डिस्क का सारा डाटा हटाएँ</strong><br/>इससे चयनित डिवाइस पर मौजूद सारा डाटा <font color="red">हटा</font>हो जाएगा। This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + इस डिवाइस पर %1 है। आप क्या करना चाहेंगे?<br/>आप डिवाइस में किसी भी बदलाव से पहले उसकी समीक्षा व पुष्टि कर सकेंगे। @@ -405,7 +435,7 @@ The installer will quit and all changes will be lost. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - + <strong>साथ में इंस्टॉल करें</strong><br/>इंस्टॉलर %1 के लिए स्थान बनाने हेतु एक विभाजन को छोटा कर देगा। @@ -413,35 +443,35 @@ The installer will quit and all changes will be lost. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - + <strong>विभाजन को बदलें</strong><br/>एक विभाजन को %1 से बदलें। This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + इस डिवाइस पर पहले से एक ऑपरेटिंग सिस्टम है। आप क्या करना चाहेंगे?<br/>आप डिवाइस में किसी भी बदलाव से पहले उसकी समीक्षा व पुष्टि कर सकेंगे। This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - + इस डिवाइस पर एक से अधिक ऑपरेटिंग सिस्टम है। आप क्या करना चाहेंगे?<br/>आप डिवाइस में किसी भी बदलाव से पहले उसकी समीक्षा व पुष्टि कर सकेंगे। ClearMountsJob - + Clear mounts for partitioning operations on %1 - + %1 पर विभाजन कार्य हेतु माउंट हटाएँ - + Clearing mounts for partitioning operations on %1. - + %1 पर विभाजन कार्य हेतु माउंट हटाएँ जा रहे हैं। - + Cleared all mounts for %1 - + %1 के लिए सभी माउंट हटा दिए गए @@ -449,43 +479,49 @@ The installer will quit and all changes will be lost. Clear all temporary mounts. - + सभी अस्थायी माउंट हटाएँ। Clearing all temporary mounts. - + सभी अस्थायी माउंट हटाएँ जा रहे हैं। Cannot get list of temporary mounts. - + अस्थाई माउंट की सूची नहीं मिली। Cleared all temporary mounts. - + सभी अस्थायी माउंट हटा दिए गए। CommandList - + + Could not run command. + कमांड चलाई नहीं जा सकी। + + + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job - + Contextual Processes Job @@ -493,77 +529,77 @@ The installer will quit and all changes will be lost. Create a Partition - + एक विभाजन बनाएँ MiB - + MiB Partition &Type: - + विभाजन का प्रकार (&T): &Primary - + मुख्य (&P) E&xtended - + विस्तृत (&x) Fi&le System: - + फ़ाइल सिस्टम (&l): LVM LV name - + LVM LV का नाम Flags: - + Flags: &Mount Point: - + माउंट पॉइंट (&M): Si&ze: - + आकार (&z): - + En&crypt - + एन्क्रिप्ट (&c) - + Logical - + तार्किक - + Primary - + मुख्य - + GPT - + GPT - + Mountpoint already in use. Please select another one. - + माउंट पॉइंट पहले से उपयोग में है । कृपया दूसरा चुनें। @@ -571,22 +607,22 @@ The installer will quit and all changes will be lost. Create new %2MB partition on %4 (%3) with file system %1. - + फ़ाइल सिस्टम %1 के साथ %4 (%3) पर नया %2MB का विभाजन बनाएँ। Create new <strong>%2MB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - + फ़ाइल सिस्टम <strong>%1</strong> के साथ <strong>%4</strong> (%3) पर नया <strong>%2MB</strong> का विभाजन बनाएँ। Creating new %1 partition on %2. - + %2 पर नया %1 विभाजन बनाया जा रहा है। The installer failed to create partition on disk '%1'. - + इंस्टॉलर डिस्क '%1' पर विभाजन बनाने में विफल रहा। @@ -594,27 +630,27 @@ The installer will quit and all changes will be lost. Create Partition Table - + विभाजन तालिका बनाएँ Creating a new partition table will delete all existing data on the disk. - + नई विभाजन तालिका बनाने से डिस्क पर मौजूद सारा डाटा हट जाएगा। What kind of partition table do you want to create? - + आप किस तरह की विभाजन तालिका बनाना चाहते हैं? Master Boot Record (MBR) - + Master Boot Record (MBR) GUID Partition Table (GPT) - + GUID विभाजन तालिका (GPT) @@ -622,90 +658,60 @@ The installer will quit and all changes will be lost. Create new %1 partition table on %2. - + %2 पर नई %1 विभाजन तालिका बनाएँ। Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - + <strong>%2</strong> (%3) पर नई <strong>%1</strong> विभाजन तालिका बनाएँ। Creating new %1 partition table on %2. - + %2 पर नई %1 विभाजन तालिका बनाई जा रही है। The installer failed to create a partition table on %1. - + इंस्टॉलर डिस्क '%1' पर विभाजन तालिका बनाने में विफल रहा। CreateUserJob - + Create user %1 - + %1 उपयोक्ता बनाएँ - + Create user <strong>%1</strong>. - + <strong>%1</strong> उपयोक्ता बनाएँ। - + Creating user %1. - + %1 उपयोक्ता बनाया जा रहा है। - + Sudoers dir is not writable. - + Sudoers डायरेक्टरी राइट करने योग्य नहीं है। - + Cannot create sudoers file for writing. - + राइट हेतु sudoers फ़ाइल नहीं बन सकती। - + Cannot chmod sudoers file. - + sudoers फ़ाइल chmod नहीं की जा सकती। - + Cannot open groups file for reading. - - - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - + रीड हेतु groups फ़ाइल खोली नहीं जा सकती। @@ -713,22 +719,22 @@ The installer will quit and all changes will be lost. Delete partition %1. - + विभाजन %1 हटाएँ। Delete partition <strong>%1</strong>. - + विभाजन <strong>%1</strong> हटाएँ। Deleting partition %1. - + %1 विभाजन हटाया जा रहा है। The installer failed to delete partition %1. - + इंस्टॉलर विभाजन %1 को हटाने में विफल रहा । @@ -736,32 +742,32 @@ The installer will quit and all changes will be lost. The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. - + चयनित डिवाइस पर <strong>विभाजन तालिका</strong> का प्रकार।<br><br>विभाजन तालिका का प्रकार केवल विभाजन तालिका को हटा दुबारा बनाकर ही किया जा सकता है, इससे डिस्क पर मौजूद सभी डाटा नहीं नष्ट हो जाएगा।<br>अगर आप कुछ अलग नहीं चुनते तो यह इंस्टॉलर वर्तमान विभाजन तालिका उपयोग करेगा।<br>अगर सुनिश्चित नहीं है तो नए व आधुनिक सिस्टम के लिए GPT चुनें। This device has a <strong>%1</strong> partition table. - + इस डिवाइस में <strong>%1</strong> विभाजन तालिका है। This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. - + यह एक <strong>लूप</strong> डिवाइस है।<br><br>इस छद्म-डिवाइस में कोई विभाजन तालिका नहीं है जो फ़ाइल को ब्लॉक डिवाइस के रूप में उपयोग कर सकें। इस तरह के सेटअप में केवल एक फ़ाइल सिस्टम होता है। This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. - + इंस्टॉलर को चयनित डिवाइस पर <strong>कोई विभाजन तालिका नहीं मिली</strong>।<br><br> डिवाइस पर विभाजन तालिका नहीं है या फिर जो है वो ख़राब है या उसका प्रकार अज्ञात है। <br>इंस्टॉलर एक नई विभाजन तालिका, स्वतः व मैनुअल दोनों तरह से बना सकता है। <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - + <br><br><strong>EFI</strong>वातावरण से शुरू होने वाले आधुनिक सिस्टम के लिए यही विभाजन तालिका सुझाई जाती है। <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - + <br><br>यह विभाजन तालिका केवल <strong>BIOS</strong>वातावरण से शुरू होने वाले पुराने सिस्टम के लिए ही सुझाई जाती है। बाकी सब के लिए GPT ही सबसे उपयुक्त है।<br><br><strong>चेतावनी:</strong> MBR विभाजन तालिका MS-DOS के समय की एक पुरानी तकनीक है।<br> इसमें केवल 4 <em>मुख्य</em> विभाजन बनाये जा सकते हैं, इनमें से एक <em>विस्तृत</em> हो सकता है व इसके अंदर भी कई <em>तार्किक</em> विभाजन हो सकते हैं। @@ -769,7 +775,7 @@ The installer will quit and all changes will be lost. %1 - %2 (%3) - + %1 - %2 (%3) @@ -787,15 +793,15 @@ The installer will quit and all changes will be lost. Failed to open %1 - + %1 खोलने में विफल DummyCppJob - + Dummy C++ Job - + Dummy C++ Job @@ -803,57 +809,57 @@ The installer will quit and all changes will be lost. Edit Existing Partition - + मौजूदा विभाजन को संपादित करें Content: - + सामग्री : &Keep - + रखें (&K) Format - + फॉर्मेट करें Warning: Formatting the partition will erase all existing data. - + चेतावनी: विभाजन फॉर्मेट करने से सारा मौजूदा डाटा मिट जायेगा। &Mount Point: - + माउंट पॉइंट (&M): Si&ze: - + आकार (&z): MiB - + MiB Fi&le System: - + फ़ाइल सिस्टम (&l): Flags: - + Flags: - + Mountpoint already in use. Please select another one. - + माउंट पॉइंट पहले से उपयोग में है । कृपया दूसरा चुनें। @@ -861,27 +867,27 @@ The installer will quit and all changes will be lost. Form - + रूप En&crypt system - + सिस्टम एन्क्रिप्ट करें (&E) Passphrase - + कूटशब्द Confirm passphrase - + कूटशब्द की पुष्टि करें Please enter the same passphrase in both boxes. - + कृपया दोनों स्थानों में समान कूटशब्द दर्ज करें। @@ -889,37 +895,37 @@ The installer will quit and all changes will be lost. Set partition information - + विभाजन संबंधी जानकारी सेट करें Install %1 on <strong>new</strong> %2 system partition. - + <strong>नए</strong> %2 सिस्टम विभाजन पर %1 इंस्टॉल करें। Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - + <strong>नया</strong> %2 विभाजन माउंट पॉइंट <strong>%1</strong> के साथ सेट करें। Install %2 on %3 system partition <strong>%1</strong>. - + %3 सिस्टम विभाजन <strong>%1</strong> पर %2 इंस्टॉल करें। Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - + %3 विभाजन <strong>%1</strong> माउंट पॉइंट <strong>%2</strong> के साथ सेट करें। Install boot loader on <strong>%1</strong>. - + बूट लोडर <strong>%1</strong> पर इंस्टॉल करें। Setting up mount points. - + माउंट पॉइंट सेट किए जा रहे हैं। @@ -927,27 +933,27 @@ The installer will quit and all changes will be lost. Form - + रूप <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>इस विकल्प के चेक होने पर आपका सिस्टम तुरंत पुनः आरंभ हो जाएगा जब आप <span style=" font-style:italic;">हो गया</span>पर क्लिक करेंगे या इंस्टॉलर बंद करें ।</p></body></html> &Restart now - + अभी पुनः आरंभ करें (&R) - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>सब हो गया।</h1><br/>आपके कंप्यूटर पर %1 इंस्टॉल हो चुका है।<br/>अब आप आपने नए सिस्टम को पुनः आरंभ कर सकते है, या फिर %2 लाइव वातावरण उपयोग करना जारी रखें। - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>इंस्टॉल विफल रहा</h1><br/>%1 आपके कंप्यूटर पर इंस्टॉल नहीं हुआ।<br/>त्रुटि संदेश : %2। @@ -955,17 +961,17 @@ The installer will quit and all changes will be lost. Finish - + समाप्त करें Installation Complete - + इंस्टॉल पूर्ण हुआ The installation of %1 is complete. - + %1 का इंस्टॉल पूर्ण हुआ। @@ -973,22 +979,22 @@ The installer will quit and all changes will be lost. Format partition %1 (file system: %2, size: %3 MB) on %4. - + विभाजन %1 (फ़ाइल सिस्टम: %2, आकार: %3MB) को %4 पर फॉर्मेट करें। Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. - + फ़ाइल सिस्टम <strong>%2</strong> के साथ <strong>%3MB</strong> के विभाजन <strong>%1</strong> को फॉर्मेट करें। Formatting partition %1 with file system %2. - + फ़ाइल सिस्टम %2 के साथ विभाजन %1 को फॉर्मेट किया जा रहा है। The installer failed to format partition %1 on disk '%2'. - + इंस्टॉलर डिस्क '%2' पर विभाजन %1 को फॉर्मेट करने में विफल रहा। @@ -996,12 +1002,12 @@ The installer will quit and all changes will be lost. Konsole not installed - + Konsole इंस्टॉल नहीं है Please install KDE Konsole and try again! - + कृपया केडीई Konsole इंस्टॉल कर, पुनः प्रयास करें। @@ -1014,20 +1020,20 @@ The installer will quit and all changes will be lost. Script - + Script KeyboardPage - + Set keyboard model to %1.<br/> - + कुंजीपटल का मॉडल %1 सेट करें।<br/> - + Set keyboard layout to %1/%2. - + कुंजीपटल का अभिन्यास %1/%2 सेट करें। @@ -1035,7 +1041,7 @@ The installer will quit and all changes will be lost. Keyboard - कीबोर्ड + कुंजीपटल @@ -1043,22 +1049,22 @@ The installer will quit and all changes will be lost. System locale setting - + सिस्टम स्थानिकी सेटिंग्स The system locale setting affects the language and character set for some command line user interface elements.<br/>The current setting is <strong>%1</strong>. - + सिस्टम स्थानिकी सेटिंग कमांड लाइन के कुछ उपयोक्ता अंतरफलक तत्वों की भाषा व अक्षर सेट पर असर डालती है।<br/>मौजूदा सेटिंग है <strong>%1</strong>। &Cancel - + रद्द करें (&C) &OK - + ठीक है (&O) @@ -1066,69 +1072,69 @@ The installer will quit and all changes will be lost. Form - + रूप - + I accept the terms and conditions above. - + मैं उपर्युक्त नियम व शर्तें स्वीकार करता हूँ। - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + <h1>लाइसेंस अनुबंध</h1>यह लाइसेंस शर्तों के अधीन अमुक्त सॉफ्टवेयर को इंस्टॉल करेगा। - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + कृपया ऊपर दिए गए लक्षित उपयोक्ता लाइसेंस अनुबंध (EULAs) ध्यानपूर्वक पढ़ें।<br/> यदि आप शर्तों से असहमत है, तो सेटअप को ज़ारी नहीं रखा जा सकता। - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + कृपया ऊपर दिए गए लक्षित उपयोक्ता लाइसेंस अनुबंध (EULAs) ध्यानपूर्वक पढ़ें।<br/> यदि आप शर्तों से असहमत है, तो अमुक्त सॉफ्टवेयर इंस्टाल नहीं किया जाएगा व उनके मुक्त विकल्प उपयोग किए जाएँगे। - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 ड्राइवर</strong><br/>%2 द्वारा - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 ग्राफ़िक्स ड्राइवर</strong><br/><font color="Grey">%2 द्वारा</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 ब्राउज़र प्लगिन</strong><br/><font color="Grey">%2 द्वारा</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 कोडेक</strong><br/><font color="Grey">%2 द्वारा</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1 पैकेज</strong><br/><font color="Grey">%2 द्वारा</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">%2 द्वारा</font> - + <a href="%1">view license agreement</a> - + <a href="%1">लाइसेंस अनुबंध देखें</a> @@ -1136,7 +1142,7 @@ The installer will quit and all changes will be lost. License - + लाइसेंस @@ -1144,73 +1150,73 @@ The installer will quit and all changes will be lost. The system language will be set to %1. - + सिस्टम भाषा %1 सेट की जाएगी। The numbers and dates locale will be set to %1. - + संख्या व दिनांक स्थानिकी %1 सेट की जाएगी। Region: - + क्षेत्र : Zone: - + क्षेत्र : &Change... - + बदलें (&C)... Set timezone to %1/%2.<br/> - + समय क्षेत्र %1%2 पर सेट करें।<br/> %1 (%2) Language (Country) - + %1 (%2) LocaleViewStep - + Loading location data... - + स्थान संबंधी डाटा लोड किया जा रहा है... - + Location - + स्थान NetInstallPage - + Name - + नाम - + Description - + विवरण - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,252 +1224,252 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection - + पैकेज चयन PWQ - + Password is too short - + कूटशब्द बहुत छोटा है - + Password is too long - + कूटशब्द बहुत लंबा है - + Password is too weak - + कूटशब्द बहुत कमज़ोर है - + Memory allocation error when setting '%1' - + '%1' सेट करते समय मेमोरी आवंटन त्रुटि - + Memory allocation error - + मेमोरी आवंटन त्रुटि - + The password is the same as the old one - + यह कूटशब्द पुराने वाला ही है - + The password is a palindrome - + कूटशब्द एक विलोमपद है - + The password differs with case changes only - + इसमें और पिछले कूटशब्द में केवल lower/upper case का फर्क है - + The password is too similar to the old one - + यह कूटशब्द पुराने वाले जैसा ही है - + The password contains the user name in some form - + इस कूटशब्द में किसी रूप में उपयोक्ता नाम है - + The password contains words from the real name of the user in some form - + इस कूटशब्द में किसी रूप में उपयोक्ता के असली नाम के शब्द शामिल है - + The password contains forbidden words in some form - + इस कूटशब्द में किसी रूप में वर्जित शब्द है - + The password contains less than %1 digits - + इस कूटशब्द में %1 से कम अंक हैं - + The password contains too few digits - + इस कूटशब्द में काफ़ी कम अंक हैं - + The password contains less than %1 uppercase letters - + इस कूटशब्द में %1 से कम uppercase अक्षर हैं - + The password contains too few uppercase letters - + इस कूटशब्द में काफ़ी कम uppercase अक्षर हैं - + The password contains less than %1 lowercase letters - + इस कूटशब्द में %1 से कम lowercase अक्षर हैं - + The password contains too few lowercase letters - + इस कूटशब्द में काफ़ी कम lowercase अक्षर हैं - + The password contains less than %1 non-alphanumeric characters - + इस कूटशब्द में %1 से कम ऐसे अक्षर हैं जो अक्षरांक नहीं हैं - + The password contains too few non-alphanumeric characters - + इस कूटशब्द में काफ़ी कम अक्षरांक हैं - + The password is shorter than %1 characters - + कूटशब्द %1 अक्षरों से छोटा है - + The password is too short - + कूटशब्द बहुत छोटा है - + The password is just rotated old one - + यह कूटशब्द पुराने वाला ही है, बस घुमा रखा है - + The password contains less than %1 character classes - + इस कूटशब्द में %1 से कम अक्षर classes हैं - + The password does not contain enough character classes - + इस कूटशब्द में नाकाफ़ी अक्षर classes हैं - + The password contains more than %1 same characters consecutively - + कूटशब्द में %1 से अधिक समान अक्षर लगातार हैं - + The password contains too many same characters consecutively - + कूटशब्द में काफ़ी ज्यादा समान अक्षर लगातार हैं - + The password contains more than %1 characters of the same class consecutively - + कूटशब्द में %1 से अधिक समान अक्षर classes लगातार हैं - + The password contains too many characters of the same class consecutively - + कूटशब्द में काफ़ी ज्यादा एक ही class के अक्षर लगातार हैं - + The password contains monotonic sequence longer than %1 characters - + कूटशब्द में %1 अक्षरों से लंबा monotonic अनुक्रम है - + The password contains too long of a monotonic character sequence - + कूटशब्द में काफ़ी बड़ा monotonic अनुक्रम है - + No password supplied - + कोई कूटशब्द नहीं दिया गया - + Cannot obtain random numbers from the RNG device - + RNG डिवाइस से यादृच्छिक अंक नहीं मिल सके - + Password generation failed - required entropy too low for settings - + कूटशब्द बनाना विफल रहा - सेटिंग्स के लिए आवश्यक entropy बहुत कम है - + The password fails the dictionary check - %1 - + कूटशब्द शब्दकोश की जाँच में विफल रहा - %1 - + The password fails the dictionary check - + कूटशब्द शब्दकोश की जाँच में विफल रहा - + Unknown setting - %1 - + अज्ञात सेटिंग- %1 - + Unknown setting - + अज्ञात सेटिंग - + Bad integer value of setting - %1 - + सेटिंग का गलत integer मान - %1 - + Bad integer value - + गलत integer मान - + Setting %1 is not of integer type - + सेटिंग %1 integer नहीं है - + Setting is not of integer type - + सेटिंग integer नहीं है - + Setting %1 is not of string type - + सेटिंग %1 string नहीं है - + Setting is not of string type - + सेटिंग string नहीं है - + Opening the configuration file failed - + विन्यास फ़ाइल खोलने में विफल - + The configuration file is malformed - + विन्यास फाइल ख़राब है - + Fatal failure - + गंभीर विफलता - + Unknown error - + अज्ञात त्रुटि @@ -1471,17 +1477,17 @@ The installer will quit and all changes will be lost. Form - + रूप Keyboard Model: - + कुंजीपटल का मॉडल Type here to test your keyboard - + अपना कुंजीपटल जाँचने के लिए यहां टाइप करें @@ -1489,69 +1495,69 @@ The installer will quit and all changes will be lost. Form - + रूप What is your name? - + आपका नाम क्या है? What name do you want to use to log in? - + लॉग इन के लिए आप किस नाम का उपयोग करना चाहते हैं? font-weight: normal - + मुद्रलिपि-weight: सामान्य <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - + <small>अगर इस कंप्यूटर को एक से अधिक व्यक्ति उपयोग करते हैं, तो आप इंस्टॉल के उपरांत एकाधिक अकाउंट सेट कर सकते हैं।</small> Choose a password to keep your account safe. - + अपना अकाउंट सुरक्षित रखने के लिए पासवर्ड चुनें । <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> - + <small>एक ही कूटशब्द दो बार दर्ज़ करें, ताकि उसे टाइप त्रुटि के लिए जांचा जा सके । एक अच्छे कूटशब्द में अक्षर, अंक व विराम चिन्हों का मेल होता है, उसमें कम-से-कम आठ अक्षर होने चाहिए, और उसे नियमित अंतराल पर बदलते रहना चाहिए।</small> What is the name of this computer? - + इस कंप्यूटर का नाम ? <small>This name will be used if you make the computer visible to others on a network.</small> - + <small>यदि आपका कंप्यूटर किसी नेटवर्क पर दृश्यमान होता है, तो यह नाम उपयोग किया जाएगा।</small> Log in automatically without asking for the password. - + कूटशब्द बिना पूछे ही स्वतः लॉग इन करें। Use the same password for the administrator account. - + प्रबंधक अकाउंट के लिए भी यही कूटशब्द उपयोग करें। Choose a password for the administrator account. - + प्रबंधक अकाउंट के लिए कूटशब्द चुनें। <small>Enter the same password twice, so that it can be checked for typing errors.</small> - + <small>समान कूटशब्द दो बार दर्ज करें, ताकि जाँच की जा सके कि कहीं टाइपिंग त्रुटि तो नहीं है।</small> @@ -1559,77 +1565,77 @@ The installer will quit and all changes will be lost. Root - + रुट Home - + होम Boot - + बूट EFI system - + EFI सिस्टम Swap - + स्वैप New partition for %1 - + %1 के लिए नया विभाजन New partition - + नया विभाजन %1 %2 - + %1 %2 PartitionModel - - + + Free Space - + खाली स्पेस - - + + New partition - + नया विभाजन - + Name - + नाम - + File System - + फ़ाइल सिस्टम - + Mount Point - + माउंट पॉइंट - + Size - + आकार @@ -1637,145 +1643,155 @@ The installer will quit and all changes will be lost. Form - + रूप Storage de&vice: - + डिवाइस (&v): &Revert All Changes - + सभी बदलाव उलट दें (&R) New Partition &Table - + नई विभाजन तालिका (&T) - &Create - + Cre&ate + बनाएँ (&a) &Edit - + संपादित करें (&E) &Delete - + हटाएँ (D) Install boot &loader on: - + बूट लोडर इंस्टॉल करें (&l) : - + Are you sure you want to create a new partition table on %1? + क्या आप वाकई %1 पर एक नई विभाजन तालिका बनाना चाहते हैं? + + + + Can not create new partition + नया विभाजन नहीं बनाया जा सकता + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. PartitionViewStep - + Gathering system information... - + सिस्टम की जानकारी प्राप्त की जा रही है... - + Partitions - + विभाजन - + Install %1 <strong>alongside</strong> another operating system. - + %1 को दूसरे ऑपरेटिंग सिस्टम <strong>के साथ</strong> इंस्टॉल करें। - + <strong>Erase</strong> disk and install %1. - + डिस्क का सारा डाटा<strong>हटाकर</strong> कर %1 इंस्टॉल करें। - + <strong>Replace</strong> a partition with %1. - + विभाजन को %1 से <strong>बदलें</strong>। - + <strong>Manual</strong> partitioning. - + <strong>मैनुअल</strong> विभाजन। - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + डिस्क <strong>%2</strong> (%3) पर %1 को दूसरे ऑपरेटिंग सिस्टम <strong>के साथ</strong> इंस्टॉल करें। - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + डिस्क <strong>%2</strong> (%3) <strong>erase</strong> कर %1 इंस्टॉल करें। - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + डिस्क <strong>%2</strong> (%3) के विभाजन को %1 से <strong>बदलें</strong>। - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + डिस्क <strong>%1</strong> (%2) पर <strong>मैनुअल</strong> विभाजन। - + Disk <strong>%1</strong> (%2) - + डिस्क <strong>%1</strong> (%2) - + Current: - + मौजूदा : - + After: - + बाद में: - + No EFI system partition configured - + कोई EFI सिस्टम विभाजन विन्यस्त नहीं है - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + %1 को शुरू करने हेतु EFI सिस्टम विभाजन ज़रूरी है।<br/><br/>EFI सिस्टम विभाजन को विन्यस्त करने के लिए, वापस जाएँ और चुनें या बनाएँ एक FAT32 फ़ाइल सिस्टम जिस पर <strong>esp</strong> flag चालू हो व माउंट पॉइंट <strong>%2</strong>हो।<br/><br/>आप बिना सेट भी आगे बढ़ सकते है पर सिस्टम चालू नहीं होगा। - + EFI system partition flag not set - + EFI सिस्टम विभाजन flag सेट नहीं है - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + %1 को शुरू करने हेतु EFI सिस्टम विभाजन ज़रूरी है।<br/><br/>विभाजन को माउंट पॉइंट <strong>%2</strong> के साथ विन्यस्त किया गया परंतु उसका <strong>esp</strong> flag सेट नहीं था।<br/> Flag सेट करने के लिए, वापस जाएँ और विभाजन को edit करें।<br/><br/>आप बिना सेट भी आगे बढ़ सकते है पर सिस्टम चालू नहीं होगा। - + Boot partition not encrypted - + बूट विभाजन एन्क्रिप्टेड नहीं है - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. - + एन्क्रिप्टेड रुट विभाजन के साथ एक अलग बूट विभाजन भी सेट किया गया था, पर बूट विभाजन एन्क्रिप्टेड नहीं था।<br/><br/> इस तरह का सेटअप सुरक्षित नहीं होता क्योंकि सिस्टम फ़ाइल एन्क्रिप्टेड विभाजन पर होती हैं।<br/>आप चाहे तो जारी रख सकते है, पर फिर फ़ाइल सिस्टम बाद में सिस्टम स्टार्टअप के दौरान अनलॉक होगा।<br/> विभाजन को एन्क्रिप्ट करने के लिए वापस जाकर उसे दोबारा बनाएँ व विभाजन निर्माण विंडो में<strong>एन्क्रिप्ट</strong> चुनें। @@ -1783,13 +1799,13 @@ The installer will quit and all changes will be lost. Plasma Look-and-Feel Job - + प्लाज़्मा Look-and-Feel Job Could not select KDE Plasma Look-and-Feel package - + KDE प्लाज़्मा का Look-and-Feel पैकेज चुना नहीं जा सका @@ -1797,91 +1813,112 @@ The installer will quit and all changes will be lost. Form - + रूप Placeholder - + Placeholder - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. - + + 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. + कृपया KDE प्लाज़्मा डेस्कटॉप के लिए एक look-and-feel चुनें। आप अभी इस चरण को छोड़ सकते हैं व सिस्टम इंस्टॉल हो जाने के बाद इसे सेट कर सकते हैं। look-and-feel विकल्पों पर क्लिक कर आप चयनित look-and-feel का तुरंत ही पूर्वावलोकन कर सकते हैं। PlasmaLnfViewStep - + Look-and-Feel + Look-and-Feel + + + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. ProcessResult - + There was no output from the command. - + +कमांड से कोई आउटपुट नहीं मिला। - + Output: - + +आउटपुट: + - + External command crashed. - + बाह्य कमांड क्रैश हो गई। - + Command <i>%1</i> crashed. - + कमांड <i>%1</i> क्रैश हो गई। - + External command failed to start. - + बाह्य​ कमांड शुरू होने में विफल। - + Command <i>%1</i> failed to start. - + कमांड <i>%1</i> शुरू होने में विफल। - + Internal error when starting command. - + कमांड शुरू करते समय आंतरिक त्रुटि। - + Bad parameters for process job call. - + प्रक्रिया कार्य कॉल के लिए गलत मापदंड। - + External command failed to finish. - + बाहरी कमांड समाप्त करने में विफल। - + Command <i>%1</i> failed to finish in %2 seconds. - + कमांड <i>%1</i> %2 सेकंड में समाप्त होने में विफल। - + External command finished with errors. - + बाहरी कमांड त्रुटि के साथ समाप्त। - + Command <i>%1</i> finished with exit code %2. - + कमांड <i>%1</i> exit कोड %2 के साथ समाप्त। @@ -1889,38 +1926,38 @@ Output: Default Keyboard Model - + डिफ़ॉल्ट कुंजीपटल मॉडल Default - + डिफ़ॉल्ट - + unknown - + अज्ञात - + extended - + विस्तृत - + unformatted - + फॉर्मेट नहीं हो रखा है - + swap - + स्वैप Unpartitioned space or unknown partition table - + अविभाजित स्पेस या अज्ञात विभाजन तालिका @@ -1928,74 +1965,74 @@ Output: Form - + रूप Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - + चुनें कि %1 को कहाँ इंस्टॉल करना है।<br/><font color="red">चेतावनी: </font> यह चयनित विभाजन पर मौजूद सभी फ़ाइलों को हटा देगा। The selected item does not appear to be a valid partition. - + चयनित आइटम एक मान्य विभाजन नहीं है। %1 cannot be installed on empty space. Please select an existing partition. - + %1 को खाली स्पेस पर इंस्टॉल नहीं किया जा सकता।कृपया कोई मौजूदा विभाजन चुनें। %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - + %1 को विस्तृत विभाजन पर इंस्टॉल नहीं किया जा सकता।कृपया कोई मौजूदा मुख्य या तार्किक विभाजन चुनें। %1 cannot be installed on this partition. - + इस विभाजन पर %1 इंस्टॉल नहीं किया जा सकता। Data partition (%1) - + डाटा विभाजन (%1) Unknown system partition (%1) - + अज्ञात सिस्टम विभाजन (%1) %1 system partition (%2) - + %1 सिस्टम विभाजन (%2) <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. - + <strong>%4</strong><br/><br/>%2 के लिए विभाजन %1 बहुत छोटा है।कृपया कम-से-कम %3 GiB की क्षमता वाला कोई विभाजन चुनें । <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - + <strong>%2</strong><br/><br/>इस सिस्टम पर कहीं भी कोई EFI सिस्टम विभाजन नहीं मिला। कृपया वापस जाएँ व %1 को सेट करने के लिए मैनुअल रूप से विभाजन करें। <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. - + <strong>%3</strong><br/><br/>%2 पर %1 इंस्टॉल किया जाएगा।<br/><font color="red">चेतावनी : </font>विभाजन %2 पर मौजूद सारा डाटा हटा दिया जाएगा। The EFI system partition at %1 will be used for starting %2. - + %1 वाले EFI सिस्टम विभाजन का उपयोग %2 को शुरू करने के लिए किया जाएगा। EFI system partition: - + EFI सिस्टम विभाजन: @@ -2003,57 +2040,57 @@ Output: Gathering system information... - + सिस्टम की जानकारी प्राप्त की जा रही है... - + has at least %1 GB available drive space - + %1GB स्पेस ड्राइव पर उपलब्ध है - + There is not enough drive space. At least %1 GB is required. - + ड्राइव में पर्याप्त स्पेस नहीं है। कम-से-कम %1GB होना ज़रूरी है। - + has at least %1 GB working memory - + %1GB मेमोरी है - + The system does not have enough working memory. At least %1 GB is required. - + सिस्टम में पर्याप्त मेमोरी नहीं है। कम-से-कम %1GB होनी ज़रूरी है। - + is plugged in to a power source - + बिजली से कनेक्ट है। - + The system is not plugged in to a power source. - + सिस्टम बिजली से कनेक्ट नहीं है। - + is connected to the Internet - + इंटरनेट से कनेक्ट है। - + The system is not connected to the Internet. - + सिस्टम इंटरनेट से कनेक्ट नहीं है। - + The installer is not running with administrator rights. - + इंस्टॉलर के पास प्रबंधक अधिकार नहीं है। - + The screen is too small to display the installer. - + इंस्टॉलर दिखाने के लिए स्क्रीन बहुत छोटी है। @@ -2061,22 +2098,22 @@ Output: Resize partition %1. - + विभाजन %1 का आकार बदलें। Resize <strong>%2MB</strong> partition <strong>%1</strong> to <strong>%3MB</strong>. - + <strong>%2MB</strong> के <strong>%1</strong> विभाजन का आकार बदलकर <strong>%3MB</strong> किया जा रहा है। Resizing %2MB partition %1 to %3MB. - + %2MB के %1 विभाजन का आकार बदलकर %3MB किया जा रहा है। The installer failed to resize partition %1 on disk '%2'. - + इंस्टॉलर डिस्क '%2' पर विभाजन %1 का आकर बदलने में विफल रहा। @@ -2084,42 +2121,42 @@ Output: Scanning storage devices... - + डिवाइस स्कैन किए जा रहे हैं... Partitioning - + विभाजन SetHostNameJob - + Set hostname %1 - + होस्ट नाम %1 सेट करें। - + Set hostname <strong>%1</strong>. - + होस्ट नाम <strong>%1</strong> सेट करें। - + Setting hostname %1. - + होस्ट नाम %1 सेट हो रहा है। - - + + Internal Error - + आंतरिक त्रुटि - - + + Cannot write hostname to target system - + लक्षित सिस्टम पर होस्ट नाम लिखा नहीं जा सकता। @@ -2127,29 +2164,29 @@ Output: Set keyboard model to %1, layout to %2-%3 - + कुंजीपटल का मॉडल %1, अभिन्यास %2-%3 सेट करें। Failed to write keyboard configuration for the virtual console. - + Virtual console हेतु कुंजीपटल की सेटिंग्स राइट करने में विफल रहा। Failed to write to %1 - + %1 पर राइट करने में विफल Failed to write keyboard configuration for X11. - + X11 हेतु कुंजीपटल की सेटिंग्स राइट करने में विफल रहा। Failed to write keyboard configuration to existing /etc/default directory. - + मौजूदा /etc /default डायरेक्टरी में कुंजीपटल की सेटिंग्स write करने में विफल रहा। @@ -2157,82 +2194,82 @@ Output: Set flags on partition %1. - + %1 विभाजन पर flag सेट करें। Set flags on %1MB %2 partition. - + %1MB के %2 विभाजन पर flag सेट करें। Set flags on new partition. - + नए विभाजन पर flag सेट करें। Clear flags on partition <strong>%1</strong>. - + <strong>%1</strong> विभाजन पर से flag हटाएँ। Clear flags on %1MB <strong>%2</strong> partition. - + %1MB के <strong>%2</strong> विभाजन पर से flag हटाएँ। Clear flags on new partition. - + नए विभाजन पर से flag हटाएँ। Flag partition <strong>%1</strong> as <strong>%2</strong>. - + <strong>%1</strong> विभाजन पर <strong>%2</strong> का flag लगाएँ। Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - + %1MB के <strong>%2</strong> विभाजन पर <strong>%3</strong> का flag लगाएँ। Flag new partition as <strong>%1</strong>. - + नए विभाजन पर<strong>%1</strong>का flag लगाएँ। Clearing flags on partition <strong>%1</strong>. - + <strong>%1</strong> विभाजन पर से flag हटाएँ जा रहे हैं। Clearing flags on %1MB <strong>%2</strong> partition. - + %1MB के <strong>%2</strong> विभाजन पर से flag हटाएँ जा रहे हैं। Clearing flags on new partition. - + नए विभाजन पर से flag हटाएँ जा रहे हैं। Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - + <strong>%1</strong> विभाजन पर flag <strong>%2</strong> सेट किए जा रहे हैं। Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - + %1MB के <strong>%2</strong> विभाजन पर flag <strong>%3</strong> सेट किए जा रहे हैं। Setting flags <strong>%1</strong> on new partition. - + नए विभाजन पर flag <strong>%1</strong> सेट किए जा रहे हैं। The installer failed to set flags on partition %1. - + इंस्टॉलर विभाजन %1 पर flag सेट करने में विफल रहा। @@ -2240,42 +2277,42 @@ Output: Set password for user %1 - + उपयोक्ता %1 के लिए पासवर्ड सेट करें। Setting password for user %1. - + उपयोक्ता %1 के लिए पासवर्ड सेट किया जा रहा है। Bad destination system path. - + लक्ष्य का सिस्टम पथ गलत है। rootMountPoint is %1 - + rootMountPoint %1 है Cannot disable root account. - + रुट अकाउंट निष्क्रिय नहीं किया जा सकता । passwd terminated with error code %1. - + passwd त्रुटि कोड %1 के साथ समाप्त। Cannot set password for user %1. - + उपयोक्ता %1 के लिए पासवर्ड सेट नहीं किया जा सकता। usermod terminated with error code %1. - + usermod त्रुटि कोड %1 के साथ समाप्त। @@ -2283,37 +2320,37 @@ Output: Set timezone to %1/%2 - + समय क्षेत्र %1%2 पर सेट करें Cannot access selected timezone path. - + चयनित समय क्षेत्र पथ तक पहुँचा नहीं जा सका। Bad path: %1 - + गलत पथ: %1 Cannot set timezone. - + समय क्षेत्र सेट नहीं हो सका। Link creation failed, target: %1; link name: %2 - + लिंक बनाना विफल, लक्ष्य: %1; लिंक का नाम: %2 Cannot set timezone, - + समय क्षेत्र सेट नहीं हो सका। Cannot open /etc/timezone for writing - + राइट करने हेतु /etc /timezone खोला नहीं जा सका। @@ -2324,12 +2361,21 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage This is an overview of what will happen once you start the install procedure. - + यह अवलोकन है कि इंस्टॉल शुरू होने के बाद क्या होगा। @@ -2337,7 +2383,7 @@ Output: Summary - सारांश + सार @@ -2397,12 +2443,12 @@ Output: Form - + रूप Placeholder - + Placeholder @@ -2414,14 +2460,14 @@ Output: TextLabel - + TextLabel ... - + ... @@ -2462,41 +2508,41 @@ Output: Your username is too long. - + आपका उपयोक्ता नाम बहुत लंबा है। Your username contains invalid characters. Only lowercase letters and numbers are allowed. - + आपके होस्ट नाम में अमान्य अक्षर हैं । केवल lowercase अक्षरों व संख्याओं की ही अनुमति है । Your hostname is too short. - + आपका होस्ट नाम बहुत छोटा है। Your hostname is too long. - + आपका होस्ट नाम बहुत लंबा है। Your hostname contains invalid characters. Only letters, numbers and dashes are allowed. - + आपके होस्ट नाम में अमान्य अक्षर हैं । केवल अक्षरों, संख्याओं व dash की ही अनुमति है । Your passwords do not match! - + आपके कूटशब्द मेल नहीं खाते! UsersViewStep - + Users - + उपयोक्ता @@ -2504,65 +2550,65 @@ Output: Form - + रूप &Language: - + भाषा (&L): &Release notes - + रिलीज़ नोट्स (&R) &Known issues - + ज्ञात समस्याएँ (&K) &Support - + सहायता (&S) &About - + बारे में (&A) <h1>Welcome to the %1 installer.</h1> - + <h1>%1 इंस्टॉलर में आपका स्वागत है।</h1> <h1>Welcome to the Calamares installer for %1.</h1> - + <h1>%1 के लिए Calamares इंस्टॉलर में आपका स्वागत है।</h1> About %1 installer - + %1 इंस्टॉलर के बारे में <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, रोहन गर्ग व <a href="https://www.transifex.com/calamares/calamares/">Calamares अनुवादक टीम</a> का धन्यवाद।<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support - + %1 सहायता WelcomeViewStep - + Welcome - + स्वागतं \ No newline at end of file diff --git a/lang/calamares_hr.ts b/lang/calamares_hr.ts index 0561f8b38..c1312d783 100644 --- a/lang/calamares_hr.ts +++ b/lang/calamares_hr.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Prazna stranica + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instaliraj @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Gotovo @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Izvrši naredbu %1 %2 - + Running command %1 %2 Izvršavam naredbu %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Izvodim %1 operaciju. - + Bad working directory path Krivi put do radnog direktorija - + Working directory %1 for python job %2 is not readable. Radni direktorij %1 za python zadatak %2 nije čitljiv. - + Bad main script file Kriva glavna datoteka skripte - + Main script file %1 for python job %2 is not readable. Glavna skriptna datoteka %1 za python zadatak %2 nije čitljiva. - + Boost.Python error in job "%1". Boost.Python greška u zadatku "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Natrag - + + &Next &Sljedeće - - + + &Cancel &Odustani - - + + Cancel installation without changing the system. Odustanite od instalacije bez promjena na sustavu. - + + Calamares Initialization Failed + Inicijalizacija Calamares-a nije uspjela + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 se ne može se instalirati. Calamares nije mogao učitati sve konfigurirane module. Ovo je problem s načinom na koji se Calamares koristi u distribuciji. + + + + <br/>The following modules could not be loaded: + <br/>Sljedeći moduli se nisu mogli učitati: + + + + &Install + &Instaliraj + + + Cancel installation? Prekinuti instalaciju? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Stvarno želite prekinuti instalacijski proces? Instalacijski program će izaći i sve promjene će biti izgubljene. - + &Yes &Da - + &No &Ne - + &Close &Zatvori - + Continue with setup? Nastaviti s postavljanjem? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 instalacijski program će napraviti promjene na disku kako bi instalirao %2.<br/><strong>Nećete moći vratiti te promjene.</strong> - + &Install now &Instaliraj sada - + Go &back Idi &natrag - + &Done &Gotovo - + The installation is complete. Close the installer. Instalacija je završena. Zatvorite instalacijski program. - + Error Greška - + Installation Failed Instalacija nije uspjela @@ -430,17 +459,17 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. ClearMountsJob - + Clear mounts for partitioning operations on %1 Ukloni montiranja za operacije s particijama na %1 - + Clearing mounts for partitioning operations on %1. Uklanjam montiranja za operacija s particijama na %1. - + Cleared all mounts for %1 Uklonjena sva montiranja za %1 @@ -471,20 +500,26 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. CommandList - + + Could not run command. Ne mogu pokrenuti naredbu. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Nije definirana root točka montiranja tako da se naredba ne može izvršiti na ciljanoj okolini. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Naredba se pokreće u okruženju domaćina i treba znati korijenski put, međutim, rootMountPoint nije definiran. + + + + The command needs to know the user's name, but no username is defined. + Naredba treba znati ime korisnika, ali nije definirano korisničko ime. ContextualProcessJob - + Contextual Processes Job Posao kontekstualnih procesa @@ -542,27 +577,27 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Ve&ličina: - + En&crypt Ši&friraj - + Logical Logično - + Primary Primarno - + GPT GPT - + Mountpoint already in use. Please select another one. Točka montiranja se već koristi. Odaberite drugu. @@ -644,70 +679,40 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. CreateUserJob - + Create user %1 Stvori korisnika %1 - + Create user <strong>%1</strong>. Stvori korisnika <strong>%1</strong>. - + Creating user %1. Stvaram korisnika %1. - + Sudoers dir is not writable. Po sudoers direktoriju nije moguće spremati. - + Cannot create sudoers file for writing. Ne mogu stvoriti sudoers datoteku za pisanje. - + Cannot chmod sudoers file. Ne mogu chmod sudoers datoteku. - + Cannot open groups file for reading. Ne mogu otvoriti groups datoteku za čitanje. - - - Cannot create user %1. - Ne mogu stvoriti korisnika %1. - - - - useradd terminated with error code %1. - useradd je prestao s radom sa greškom koda %1. - - - - Cannot add user %1 to groups: %2. - Ne mogu dodati korisnika %1 u grupe: %2. - - - - usermod terminated with error code %1. - korisnički mod je prekinut s greškom %1. - - - - Cannot set home directory ownership for user %1. - Ne mogu postaviti vlasništvo radnog direktorija za korisnika %1. - - - - chown terminated with error code %1. - chown je prestao s radom sa greškom koda %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. DummyCppJob - + Dummy C++ Job Lažni C++ posao @@ -852,7 +857,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Oznake: - + Mountpoint already in use. Please select another one. Točka montiranja se već koristi. Odaberite drugu. @@ -941,12 +946,12 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.&Ponovno pokreni sada - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Gotovo.</h1><br/>%1 je instaliran na vaše računalo.<br/>Sada možete ponovno pokrenuti računalo ili nastaviti sa korištenjem %2 live okruženja. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalacija nije uspijela</h1><br/>%1 nije instaliran na vaše računalo.<br/>Greška: %2. @@ -1021,12 +1026,12 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. KeyboardPage - + Set keyboard model to %1.<br/> Postavi model tipkovnice na %1.<br/> - + Set keyboard layout to %1/%2. Postavi raspored tipkovnice na %1%2. @@ -1070,64 +1075,64 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Oblik - + I accept the terms and conditions above. Prihvaćam gore navedene uvjete i odredbe. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licencni ugovor</h1>Instalacijska procedura će instalirati vlasnički program koji podliježe uvjetima licenciranja. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Molimo vas da pogledate gore navedene End User License Agreements (EULAs).<br/>Ako se ne slažete s navedenim uvjetima, instalacijska procedura se ne može nastaviti. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licencni ugovor</h1>Instalacijska procedura može instalirati vlasnički program, koji podliježe uvjetima licenciranja, kako bi pružio dodatne mogućnosti i poboljšao korisničko iskustvo. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Molimo vas da pogledate gore navedene End User License Agreements (EULAs).<br/>Ako se ne slažete s navedenim uvjetima, vlasnički program se ne će instalirati te će se umjesto toga koristiti program otvorenog koda. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 upravljački program</strong><br/>by %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 grafički upravljački program</strong><br/><font color="Grey">od %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 dodatak preglednika</strong><br/><font color="Grey">od %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 kodek</strong><br/><font color="Grey">od %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 paket</strong><br/><font color="Grey">od %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">od %2</font> - + <a href="%1">view license agreement</a> <a href="%1">pogledaj licencni ugovor</a> @@ -1183,12 +1188,12 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. LocaleViewStep - + Loading location data... Učitavanje podataka o lokaciji... - + Location Lokacija @@ -1196,22 +1201,22 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. NetInstallPage - + Name Ime - + Description Opis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Mrežna instalacija. (Onemogućeno: Ne mogu dohvatiti listu paketa, provjerite da li ste spojeni na mrežu) - + Network Installation. (Disabled: Received invalid groups data) Mrežna instalacija. (Onemogućeno: Primanje nevažećih podataka o grupama) @@ -1219,7 +1224,7 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. NetInstallViewStep - + Package selection Odabir paketa @@ -1227,242 +1232,242 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. PWQ - + Password is too short Lozinka je prekratka - + Password is too long Lozinka je preduga - + Password is too weak Lozinka je preslaba - + Memory allocation error when setting '%1' Pogreška u dodjeli memorije prilikom postavljanja '%1' - + Memory allocation error Pogreška u dodjeli memorije - + The password is the same as the old one Lozinka je ista prethodnoj - + The password is a palindrome Lozinka je palindrom - + The password differs with case changes only Lozinka se razlikuje samo u promjenama velikog i malog slova - + The password is too similar to the old one Lozinka je slična prethodnoj - + The password contains the user name in some form Lozinka u nekoj formi sadrži korisničko ime - + The password contains words from the real name of the user in some form Lozinka u nekoj formi sadrži stvarno ime korisnika - + The password contains forbidden words in some form Lozinka u nekoj formi sadrži zabranjene rijeći - + The password contains less than %1 digits Lozinka sadrži manje od %1 brojeva - + The password contains too few digits Lozinka sadrži premalo brojeva - + The password contains less than %1 uppercase letters Lozinka sadrži manje od %1 velikih slova - + The password contains too few uppercase letters Lozinka sadrži premalo velikih slova - + The password contains less than %1 lowercase letters Lozinka sadrži manje od %1 malih slova - + The password contains too few lowercase letters Lozinka sadrži premalo malih slova - + The password contains less than %1 non-alphanumeric characters Lozinka sadrži manje od %1 ne-alfanumeričkih znakova. - + The password contains too few non-alphanumeric characters Lozinka sadrži premalo ne-alfanumeričkih znakova - + The password is shorter than %1 characters Lozinka je kraća od %1 znakova - + The password is too short Lozinka je prekratka - + The password is just rotated old one Lozinka je jednaka rotiranoj prethodnoj - + The password contains less than %1 character classes Lozinka sadrži manje od %1 razreda znakova - + The password does not contain enough character classes Lozinka ne sadrži dovoljno razreda znakova - + The password contains more than %1 same characters consecutively Lozinka sadrži više od %1 uzastopnih znakova - + The password contains too many same characters consecutively Lozinka sadrži previše uzastopnih znakova - + The password contains more than %1 characters of the same class consecutively Lozinka sadrži više od %1 uzastopnih znakova iz istog razreda - + The password contains too many characters of the same class consecutively Lozinka sadrži previše uzastopnih znakova iz istog razreda - + The password contains monotonic sequence longer than %1 characters Lozinka sadrži monotonu sekvencu dužu od %1 znakova - + The password contains too long of a monotonic character sequence Lozinka sadrži previše monotonu sekvencu znakova - + No password supplied Nema isporučene lozinke - + Cannot obtain random numbers from the RNG device Ne mogu dobiti slučajne brojeve od RNG uređaja - + Password generation failed - required entropy too low for settings Generiranje lozinke nije uspjelo - potrebna entropija je premala za postavke - + The password fails the dictionary check - %1 Nije uspjela provjera rječnika za lozinku - %1 - + The password fails the dictionary check Nije uspjela provjera rječnika za lozinku - + Unknown setting - %1 Nepoznate postavke - %1 - + Unknown setting Nepoznate postavke - + Bad integer value of setting - %1 Loša cjelobrojna vrijednost postavke - %1 - + Bad integer value Loša cjelobrojna vrijednost - + Setting %1 is not of integer type Postavka %1 nije cjelobrojnog tipa - + Setting is not of integer type Postavka nije cjelobrojnog tipa - + Setting %1 is not of string type Postavka %1 nije tipa znakovnog niza - + Setting is not of string type Postavka nije tipa znakovnog niza - + Opening the configuration file failed Nije uspjelo otvaranje konfiguracijske datoteke - + The configuration file is malformed Konfiguracijska datoteka je oštećena - + Fatal failure Fatalna pogreška - + Unknown error Nepoznata greška @@ -1601,34 +1606,34 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. PartitionModel - - + + Free Space Slobodni prostor - - + + New partition Nova particija - + Name Ime - + File System Datotečni sustav - + Mount Point Točka montiranja - + Size Veličina @@ -1657,8 +1662,8 @@ Instalacijski program će izaći i sve promjene će biti izgubljene. - &Create - &Stvori + Cre&ate + Kre&iraj @@ -1676,105 +1681,115 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Instaliraj boot &učitavač na: - + Are you sure you want to create a new partition table on %1? Jeste li sigurni da želite stvoriti novu particijsku tablicu na %1? + + + Can not create new partition + Ne mogu stvoriti novu particiju + + + + 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. + Particijska tablica %1 već ima %2 primarne particije i nove se više ne mogu dodati. Molimo vas da uklonite jednu primarnu particiju i umjesto nje dodate proširenu particiju. + PartitionViewStep - + Gathering system information... Skupljanje informacija o sustavu... - + Partitions Particije - + Install %1 <strong>alongside</strong> another operating system. Instaliraj %1 <strong>uz postojeći</strong> operacijski sustav. - + <strong>Erase</strong> disk and install %1. <strong>Obriši</strong> disk i instaliraj %1. - + <strong>Replace</strong> a partition with %1. <strong>Zamijeni</strong> particiju s %1. - + <strong>Manual</strong> partitioning. <strong>Ručno</strong> particioniranje. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instaliraj %1 <strong>uz postojeći</strong> operacijski sustav na disku <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Obriši</strong> disk <strong>%2</strong> (%3) i instaliraj %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Zamijeni</strong> particiju na disku <strong>%2</strong> (%3) s %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ručno</strong> particioniram disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Trenutni: - + After: Poslije: - + No EFI system partition configured EFI particija nije konfigurirana - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. EFI particija je potrebna za pokretanje %1.<br/><br/>Da bi ste konfigurirali EFI particiju, idite natrag i odaberite ili stvorite FAT32 datotečni sustav s omogućenom <strong>esp</strong> oznakom i točkom montiranja <strong>%2</strong>.<br/><br/>Možete nastaviti bez postavljanja EFI particije, ali vaš sustav se možda neće moći pokrenuti. - + EFI system partition flag not set Oznaka EFI particije nije postavljena - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. EFI particija je potrebna za pokretanje %1.<br><br/>Particija je konfigurirana s točkom montiranja <strong>%2</strong> ali njezina <strong>esp</strong> oznaka nije postavljena.<br/>Za postavljanje oznake, vratite se i uredite postavke particije.<br/><br/>Možete nastaviti bez postavljanja oznake, ali vaš sustav se možda neće moći pokrenuti. - + Boot partition not encrypted Boot particija nije kriptirana - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Odvojena boot particija je postavljena zajedno s kriptiranom root particijom, ali boot particija nije kriptirana.<br/><br/>Zabrinuti smo za vašu sigurnost jer su važne datoteke sustava na nekriptiranoj particiji.<br/>Možete nastaviti ako želite, ali datotečni sustav će se otključati kasnije tijekom pokretanja sustava.<br/>Da bi ste kriptirali boot particiju, vratite se natrag i napravite ju, odabirom opcije <strong>Kriptiraj</strong> u prozoru za stvaranje prarticije. @@ -1806,30 +1821,48 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.Rezervirano mjesto - - 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. - Odaberite izgled KDE Plasme. Možete također preskočiti ovaj korak i konfigurirati izgled jednom kada sustav bude instaliran. + + 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. + Odaberite izgled KDE Plasme. Možete također preskočiti ovaj korak i konfigurirati izgled jednom kada sustav bude instaliran. Odabirom izgleda dobit ćete pregled uživo tog izgleda. PlasmaLnfViewStep - + Look-and-Feel Izgled + + PreserveFiles + + + Saving files for later ... + Spremanje datoteka za kasnije ... + + + + No files configured to save for later. + Nema datoteka konfiguriranih za spremanje za kasnije. + + + + Not all of the configured files could be preserved. + Nije moguće sačuvati sve konfigurirane datoteke. + + ProcessResult - + There was no output from the command. Nema izlazne informacije od naredbe. - + Output: @@ -1838,52 +1871,52 @@ Izlaz: - + External command crashed. Vanjska naredba je prekinula s radom. - + Command <i>%1</i> crashed. Naredba <i>%1</i> je prekinula s radom. - + External command failed to start. Vanjska naredba nije uspješno pokrenuta. - + Command <i>%1</i> failed to start. Naredba <i>%1</i> nije uspješno pokrenuta. - + Internal error when starting command. Unutrašnja greška pri pokretanju naredbe. - + Bad parameters for process job call. Krivi parametri za proces poziva posla. - + External command failed to finish. Vanjska naredba se nije uspjela izvršiti. - + Command <i>%1</i> failed to finish in %2 seconds. Naredba <i>%1</i> nije uspjela završiti za %2 sekundi. - + External command finished with errors. Vanjska naredba je završila sa pogreškama. - + Command <i>%1</i> finished with exit code %2. Naredba <i>%1</i> je završila sa izlaznim kodom %2. @@ -1902,22 +1935,22 @@ Izlaz: Zadano - + unknown nepoznato - + extended prošireno - + unformatted nije formatirano - + swap swap @@ -2010,52 +2043,52 @@ Izlaz: Skupljanje informacija o sustavu... - + has at least %1 GB available drive space ima barem %1 GB dostupne slobodne memorije na disku - + There is not enough drive space. At least %1 GB is required. Nema dovoljno prostora na disku. Potrebno je najmanje %1 GB. - + has at least %1 GB working memory ima barem %1 GB radne memorije - + The system does not have enough working memory. At least %1 GB is required. Ovaj sustav nema dovoljno radne memorije. Potrebno je najmanje %1 GB. - + is plugged in to a power source je spojeno na izvor struje - + The system is not plugged in to a power source. Ovaj sustav nije spojen na izvor struje. - + is connected to the Internet je spojeno na Internet - + The system is not connected to the Internet. Ovaj sustav nije spojen na internet. - + The installer is not running with administrator rights. Instalacijski program nije pokrenut sa administratorskim dozvolama. - + The screen is too small to display the installer. Zaslon je premalen za prikaz instalacijskog programa. @@ -2099,29 +2132,29 @@ Izlaz: SetHostNameJob - + Set hostname %1 Postavi ime računala %1 - + Set hostname <strong>%1</strong>. Postavi ime računala <strong>%1</strong>. - + Setting hostname %1. Postavljam ime računala %1. - - + + Internal Error Unutarnja pogreška - - + + Cannot write hostname to target system Ne mogu zapisati ime računala na traženi sustav. @@ -2328,6 +2361,15 @@ Izlaz: Posao shell procesa + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2498,7 +2540,7 @@ Izlaz: UsersViewStep - + Users Korisnici @@ -2556,7 +2598,7 @@ Izlaz: <h1>%1</h1><br/><strong>%2<br/>za %3</strong><br/><br/>Autorska prava 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorska prava 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Zahvale: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg i <a href="https://www.transifex.com/calamares/calamares/">Calamares timu za prevođenje</a>.<br/><br/><a href="https://calamares.io/">Calamares sponzorira <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 podrška @@ -2564,7 +2606,7 @@ Izlaz: WelcomeViewStep - + Welcome Dobrodošli diff --git a/lang/calamares_hu.ts b/lang/calamares_hu.ts index 1062a811e..20ffbb815 100644 --- a/lang/calamares_hu.ts +++ b/lang/calamares_hu.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Telepít @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Kész @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Parancs futtatása %1 %2 - + Running command %1 %2 Parancs futtatása %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Futó %1 műveletek. - + Bad working directory path Rossz munkakönyvtár útvonal - + Working directory %1 for python job %2 is not readable. Munkakönyvtár %1 a python folyamathoz %2 nem olvasható. - + Bad main script file Rossz alap script fájl - + Main script file %1 for python job %2 is not readable. Alap script fájl %1 a python folyamathoz %2 nem olvasható. - + Boost.Python error in job "%1". Boost. Python hiba ebben a folyamatban "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Vissza - + + &Next &Következő - - + + &Cancel &Mégse - - + + Cancel installation without changing the system. Kilépés a telepítőből a rendszer megváltoztatása nélkül. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Abbahagyod a telepítést? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Biztos abba szeretnéd hagyni a telepítést? Minden változtatás elveszik, ha kilépsz a telepítőből. - + &Yes &Igen - + &No @Nem - + &Close &Bezár - + Continue with setup? Folytatod a telepítéssel? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> A %1 telepítő változtatásokat fog elvégezni, hogy telepítse a következőt: %2.<br/><strong>A változtatások visszavonhatatlanok lesznek.</strong> - + &Install now &Telepítés most - + Go &back Menj &vissza - + &Done &Befejez - + The installation is complete. Close the installer. A telepítés befejeződött, Bezárhatod a telepítőt. - + Error Hiba - + Installation Failed Telepítés nem sikerült @@ -431,17 +460,17 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l ClearMountsJob - + Clear mounts for partitioning operations on %1 %1 csatolás törlése partícionáláshoz - + Clearing mounts for partitioning operations on %1. %1 csatolás törlése partícionáláshoz - + Cleared all mounts for %1 %1 minden csatolása törölve @@ -472,20 +501,26 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l CommandList - + + Could not run command. A parancsot nem lehet futtatni. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -543,27 +578,27 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l Mé&ret: - + En&crypt Titkosítás - + Logical Logikai - + Primary Elsődleges - + GPT GPT - + Mountpoint already in use. Please select another one. A csatolási pont már használatban van. Kérlek, válassz másikat. @@ -645,70 +680,40 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l CreateUserJob - + Create user %1 %1 nevű felhasználó létrehozása - + Create user <strong>%1</strong>. <strong>%1</strong> nevű felhasználó létrehozása. - + Creating user %1. %1 nevű felhasználó létrehozása - + Sudoers dir is not writable. Sudoers mappa nem írható. - + Cannot create sudoers file for writing. Nem lehet sudoers fájlt létrehozni írásra. - + Cannot chmod sudoers file. Nem lehet a sudoers fájlt "chmod" -olni. - + Cannot open groups file for reading. Nem lehet a groups fájlt megnyitni olvasásra. - - - Cannot create user %1. - Nem lehet a %1 felhasználót létrehozni. - - - - useradd terminated with error code %1. - useradd megszakítva %1 hibakóddal. - - - - Cannot add user %1 to groups: %2. - Nem lehet a %1 felhasználót létrehozni a %2 csoportban. - - - - usermod terminated with error code %1. - usermod megszakítva %1 hibakóddal. - - - - Cannot set home directory ownership for user %1. - Nem lehet a home könyvtár tulajdonos jogosultságát beállítani %1 felhasználónak. - - - - chown terminated with error code %1. - chown megszakítva %1 hibakóddal. - DeletePartitionJob @@ -795,7 +800,7 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l DummyCppJob - + Dummy C++ Job Teszt C++ job @@ -853,7 +858,7 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l Zászlók: - + Mountpoint already in use. Please select another one. A csatolási pont már használatban van. Kérlek, válassz másikat. @@ -942,12 +947,12 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l $Újraindítás most - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Sikeres művelet.</h1><br/>%1 telepítve lett a számítógépére.<br/>Újraindítás után folytathatod az %2 éles környezetben. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>A telepítés hibába ütközött.</h1><br/>%1 nem lett telepítve a számítógépre.<br/>A hibaüzenet: %2. @@ -1022,12 +1027,12 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l KeyboardPage - + Set keyboard model to %1.<br/> Billentyűzet típus beállítása %1.<br/> - + Set keyboard layout to %1/%2. Billentyűzet kiosztás beállítása %1/%2. @@ -1071,64 +1076,64 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l Adatlap - + I accept the terms and conditions above. Elfogadom a fentebbi felhasználási feltételeket. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licensz</h1>A telepítő szabadalmaztatott szoftvert fog telepíteni. Információ a licenszben. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Kérlek, olvasd el a fenti végfelhasználói licenszfeltételeket (EULAs)<br/>Ha nem értesz egyet a feltételekkel, akkor a telepítés nem folytatódik. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licensz</h1>A telepítő szabadalmaztatott szoftvert fog telepíteni. Információ a licenszben. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Kérlek, olvasd el a fenti végfelhasználói licenszfeltételeket (EULAs)<br/>Ha nem értesz egyet a feltételekkel, akkor a szabadalmaztatott program telepítése nem folytatódik és nyílt forrású program lesz telepítve helyette. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 driver</strong><br/> %2 -ból/ -ből - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 grafikus driver</strong><br/><font color="Grey">%2 -ból/ -ből</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 böngésző plugin</strong><br/><font color="Grey">%2 -ból/ -ből</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 kodek</strong><br/><font color="Grey">%2 -ból/ -ből</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 csomag</strong><br/><font color="Grey" >%2 -ból/ -ből</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">%2 -ból/ -ből</font> - + <a href="%1">view license agreement</a> <a href="%1">a licensz elolvasása</a> @@ -1184,12 +1189,12 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l LocaleViewStep - + Loading location data... Hely adatok betöltése... - + Location Hely @@ -1197,22 +1202,22 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l NetInstallPage - + Name Név - + Description Leírás - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Hálózati telepítés. (Kikapcsolva: A csomagokat nem lehet letölteni, ellenőrizd a hálózati kapcsolatot) - + Network Installation. (Disabled: Received invalid groups data) Hálózati Telepítés. (Letiltva: Hibás adat csoportok fogadva) @@ -1220,7 +1225,7 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l NetInstallViewStep - + Package selection Csomag választása @@ -1228,242 +1233,242 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l PWQ - + Password is too short Túl rövid jelszó - + Password is too long Túl hosszú jelszó - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1602,34 +1607,34 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l PartitionModel - - + + Free Space Szabad terület - - + + New partition Új partíció - + Name Név - + File System Fájlrendszer - + Mount Point Csatolási pont - + Size Méret @@ -1658,8 +1663,8 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l - &Create - &Létrehoz + Cre&ate + @@ -1677,105 +1682,115 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l &Rendszerbetöltő telepítése ide: - + Are you sure you want to create a new partition table on %1? Biztos vagy benne, hogy létrehozol egy új partíciós táblát itt %1 ? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Rendszerinformációk gyűjtése... - + Partitions Partíciók - + Install %1 <strong>alongside</strong> another operating system. %1 telepítése más operációs rendszer <strong>mellé</strong> . - + <strong>Erase</strong> disk and install %1. <strong>Lemez törlés</strong>és %1 telepítés. - + <strong>Replace</strong> a partition with %1. <strong>A partíció lecserélése</strong> a következővel: %1. - + <strong>Manual</strong> partitioning. <strong>Kézi</strong> partícionálás. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). %1 telepítése más operációs rendszer <strong>mellé</strong> a <strong>%2</strong> (%3) lemezen. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>%2 lemez törlése</strong> (%3) és %1 telepítés. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>A partíció lecserélése</strong> a <strong>%2</strong> lemezen(%3) a következővel: %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Kézi</strong> telepítés a <strong>%1</strong> (%2) lemezen. - + Disk <strong>%1</strong> (%2) Lemez <strong>%1</strong> (%2) - + Current: Aktuális: - + After: Utána: - + No EFI system partition configured Nincs EFI rendszer partíció beállítva - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. EFI rendszerpartíciónak léteznie kell %1 indításához.<br/><br/> Az EFI rendszer beállításához lépj vissza és hozz létre FAT32 fájlrendszert <strong>esp</strong> zászlóval és <strong>%2</strong> csatolási ponttal beállítva.<br/><br/> Folytathatod a telepítést EFI rendszerpartíció létrehozása nélkül is, de lehet, hogy a rendszer nem indul majd. - + EFI system partition flag not set EFI partíciós zászló nincs beállítva - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. EFI rendszerpartíciónak léteznie kell %1 indításához.<br/><br/> A csatolási pont <strong>%2</strong> beállítása sikerült a partíción de a zászló nincs beállítva. A beálíltásához lépj vissza szerkeszteni a partíciót..<br/><br/> Folytathatod a telepítést zászló beállítása nélkül is, de lehet, hogy a rendszer nem indul el majd. - + Boot partition not encrypted Indító partíció nincs titkosítva - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Egy külön indító partíció lett beállítva egy titkosított root partícióval, de az indító partíció nincs titkosítva.br/><br/>Biztonsági aggályok merülnek fel ilyen beállítás mellet, mert fontos fájlok nem titkosított partíción vannak tárolva. <br/>Ha szeretnéd, folytathatod így, de a fájlrendszer zárolása meg fog történni az indítás után. <br/> Az indító partíció titkosításához lépj vissza és az újra létrehozáskor válaszd a <strong>Titkosít</strong> opciót. @@ -1807,81 +1822,99 @@ Telepítés nem folytatható. <a href="#details">Részletek...&l Helytartó - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. Külső parancs összeomlott. - + Command <i>%1</i> crashed. Parancs <i>%1</i> összeomlott. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Hibás paraméterek a folyamat hívásához. - + External command failed to finish. Külső parancs nem fejeződött be. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1900,22 +1933,22 @@ Output: Alapértelmezett - + unknown ismeretlen - + extended kiterjesztett - + unformatted formázatlan - + swap Swap @@ -2008,52 +2041,52 @@ Output: Rendszerinformációk gyűjtése... - + has at least %1 GB available drive space Legalább %1 GB lemezterület elérhető - + There is not enough drive space. At least %1 GB is required. Nincs elég lemezterület. Legalább %1GB szükséges. - + has at least %1 GB working memory Legalább %1 GB elérhető memória - + The system does not have enough working memory. At least %1 GB is required. A rendszernek nincs elég memóriája. Legalább %1 GB szükséges. - + is plugged in to a power source csatlakoztatva van külső áramforráshoz - + The system is not plugged in to a power source. A rendszer nincs csatlakoztatva külső áramforráshoz - + is connected to the Internet csatlakozik az internethez - + The system is not connected to the Internet. A rendszer nem csatlakozik az internethez. - + The installer is not running with administrator rights. A telepítő nem adminisztrátori jogokkal fut. - + The screen is too small to display the installer. A képernyőméret túl kicsi a telepítő megjelenítéséhez. @@ -2097,29 +2130,29 @@ Output: SetHostNameJob - + Set hostname %1 Hálózati név beállítása a %1 -en - + Set hostname <strong>%1</strong>. Hálózati név beállítása a következőhöz: <strong>%1</strong>. - + Setting hostname %1. Hálózati név beállítása a %1 -hez - - + + Internal Error Belső hiba - - + + Cannot write hostname to target system Nem lehet a hálózati nevet írni a célrendszeren @@ -2326,6 +2359,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2497,7 +2539,7 @@ Calamares hiba %1. UsersViewStep - + Users Felhasználók @@ -2555,7 +2597,7 @@ Calamares hiba %1. - + %1 support %1 támogatás @@ -2563,7 +2605,7 @@ Calamares hiba %1. WelcomeViewStep - + Welcome Üdvözlet diff --git a/lang/calamares_id.ts b/lang/calamares_id.ts index 1256b7be5..194f9f004 100644 --- a/lang/calamares_id.ts +++ b/lang/calamares_id.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Pasang @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Selesai @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Jalankan perintah %1 %2 - + Running command %1 %2 Menjalankan perintah %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Menjalankan %1 operasi. - + Bad working directory path Jalur lokasi direktori tidak berjalan baik - + Working directory %1 for python job %2 is not readable. Direktori kerja %1 untuk penugasan python %2 tidak dapat dibaca. - + Bad main script file Berkas skrip utama buruk - + Main script file %1 for python job %2 is not readable. Berkas skrip utama %1 untuk penugasan python %2 tidak dapat dibaca. - + Boost.Python error in job "%1". Boost.Python mogok dalam penugasan "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Kembali - + + &Next &Berikutnya - - + + &Cancel &Batal - - + + Cancel installation without changing the system. Batal pemasangan tanpa mengubah sistem yang ada. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + &Pasang + + + Cancel installation? Batalkan pemasangan? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Apakah Anda benar-benar ingin membatalkan proses pemasangan ini? Pemasangan akan ditutup dan semua perubahan akan hilang. - + &Yes &Ya - + &No &Tidak - + &Close &Tutup - + Continue with setup? Lanjutkan dengan setelan ini? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Pemasang %1 akan membuat perubahan ke disk Anda untuk memasang %2.<br/><strong>Anda tidak dapat membatalkan perubahan tersebut.</strong> - + &Install now &Pasang sekarang - + Go &back &Kembali - + &Done &Kelar - + The installation is complete. Close the installer. Pemasangan sudah lengkap. Tutup pemasang. - + Error Kesalahan - + Installation Failed Pemasangan Gagal @@ -432,17 +461,17 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. ClearMountsJob - + Clear mounts for partitioning operations on %1 Lepaskan semua kaitan untuk operasi pemartisian pada %1 - + Clearing mounts for partitioning operations on %1. Melepas semua kaitan untuk operasi pemartisian pada %1 - + Cleared all mounts for %1 Semua kaitan dilepas untuk %1 @@ -473,22 +502,28 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. CommandList - + + Could not run command. - + Tidak dapat menjalankan perintah - - No rootMountPoint is defined, so command cannot be run in the target environment. - + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Perintah berjalan di lingkungan host dan perlu diketahui alur root-nya, tetapi bukan rootMountPoint yang ditentukan. + + + + The command needs to know the user's name, but no username is defined. + Perintah perlu diketahui nama si pengguna, tetapi bukan nama pengguna yang ditentukan. ContextualProcessJob - + Contextual Processes Job - + Memproses tugas kontekstual @@ -526,7 +561,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. LVM LV name - + Nama LV LVM @@ -544,27 +579,27 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Uku&ran: - + En&crypt Enkripsi - + Logical Logikal - + Primary Utama - + GPT GPT - + Mountpoint already in use. Please select another one. Titik-kait sudah digunakan. Silakan pilih yang lainnya. @@ -646,70 +681,40 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. CreateUserJob - + Create user %1 Buat pengguna %1 - + Create user <strong>%1</strong>. Buat pengguna <strong>%1</strong>. - + Creating user %1. Membuat pengguna %1. - + Sudoers dir is not writable. Direktori sudoers tidak dapat ditulis. - + Cannot create sudoers file for writing. Tidak dapat membuat berkas sudoers untuk ditulis. - + Cannot chmod sudoers file. Tidak dapat chmod berkas sudoers. - + Cannot open groups file for reading. Tidak dapat membuka berkas groups untuk dibaca. - - - Cannot create user %1. - Tidak dapat membuat pengguna %1. - - - - useradd terminated with error code %1. - useradd dihentikan dengan kode kesalahan %1. - - - - Cannot add user %1 to groups: %2. - Tak bisa menambahkan pengguna %1 ke kelompok: %2. - - - - usermod terminated with error code %1. - usermod terhenti dengan kode galat %1. - - - - Cannot set home directory ownership for user %1. - Tidak dapat menyetel kepemilikan direktori home untuk pengguna %1. - - - - chown terminated with error code %1. - chown dihentikan dengan kode kesalahan %1. - DeletePartitionJob @@ -796,7 +801,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. DummyCppJob - + Dummy C++ Job Tugas C++ Kosong @@ -854,7 +859,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Bendera: - + Mountpoint already in use. Please select another one. Titik-kait sudah digunakan. Silakan pilih yang lainnya. @@ -935,7 +940,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + Ketika kotak ini dicentang, sistem kamu akan segera dimulai kembali saat mengklik Selesai atau menutup pemasang. @@ -943,12 +948,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Mulai ulang seka&rang - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Selesai.</h1><br>%1 sudah terpasang di komputer Anda.<br/>Anda dapat memulai ulang ke sistem baru atau lanjut menggunakan lingkungan Live %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Pemasangan Gagal</h1><br/>%1 tidak bisa dipasang pada komputermu.<br/>Pesan galatnya adalah: %2. @@ -1004,7 +1009,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Please install KDE Konsole and try again! - + Silahkan pasang KDE Konsole dan ulangi lagi! @@ -1023,12 +1028,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. KeyboardPage - + Set keyboard model to %1.<br/> Setel model papan ketik ke %1.<br/> - + Set keyboard layout to %1/%2. Setel tata letak papan ketik ke %1/%2. @@ -1061,7 +1066,7 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. &OK - + &OK @@ -1072,64 +1077,64 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Isian - + I accept the terms and conditions above. Saya menyetujui segala persyaratan di atas. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Persetujuan Lisensi</h1>Prosedur ini akan memasang perangkat lunak berpemilik yang terkait dengan lisensi. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Mohon periksa End User License Agreements (EULA) di atas.<br/>Bila Anda tidak setuju, maka prosedur tidak bisa dilanjutkan. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Persetujuan Lisensi</h1>Prosedur ini dapat memasang perangkat lunak yang terkait dengan lisensi agar bisa menyediakan fitur tambahan dan meningkatkan pengalaman pengguna. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Mohon periksa End User License Agreements(EULA) di atas.<br/>Bila Anda tidak setuju, perangkat lunak proprietary tidak akan dipasang, dan alternatif open source akan dipasang sebagai gantinya - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 driver</strong><br/>by %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 driver grafis</strong><br/><font color="Grey">by %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 plugin peramban</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 paket</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> <a href="%1">baca Persetujuan Lisensi</a> @@ -1185,12 +1190,12 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. LocaleViewStep - + Loading location data... Memuat data lokasi... - + Location Lokasi @@ -1198,30 +1203,30 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. NetInstallPage - + Name Nama - + Description Deskripsi - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Pemasangan Jaringan. (Dinonfungsikan: Tak mampu menarik daftar paket, periksa sambungan jaringanmu) - + Network Installation. (Disabled: Received invalid groups data) - + Pemasangan jaringan. (Menonaktifkan: Penerimaan kelompok data yang tidak sah) NetInstallViewStep - + Package selection Pemilihan paket @@ -1229,244 +1234,244 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. PWQ - + Password is too short - + Kata sandi terlalu pendek - + Password is too long - + Kata sandi terlalu panjang - + Password is too weak - + kata sandi terlalu lemah - + Memory allocation error when setting '%1' - + Kesalahan alokasi memori saat menyetel '%1' - + Memory allocation error - + Kesalahan alokasi memori - + The password is the same as the old one - + Kata sandi sama dengan yang lama - + The password is a palindrome - + Kata sandi palindrom - + The password differs with case changes only - + Kata sandi berbeda hanya dengan perubahan huruf saja - + The password is too similar to the old one - + Kata sandi terlalu mirip dengan yang lama - + The password contains the user name in some form - + Kata sandi berisi nama pengguna dalam beberapa form - + The password contains words from the real name of the user in some form - + Kata sandi berisi kata-kata dari nama asli pengguna dalam beberapa form - + The password contains forbidden words in some form - + Password mengandung kata yang dilarang pada beberapa bagian form - + The password contains less than %1 digits - + Password setidaknya berisi 1 digit karakter - + The password contains too few digits - + Kata sandi terkandung terlalu sedikit digit - + The password contains less than %1 uppercase letters - + Kata sandi terkandung kurang dari %1 huruf besar - + The password contains too few uppercase letters - + Kata sandi terkandung terlalu sedikit huruf besar - + The password contains less than %1 lowercase letters - + Kata sandi terkandung kurang dari %1 huruf kecil - + The password contains too few lowercase letters - + Kata sandi terkandung terlalu sedikit huruf kecil - + The password contains less than %1 non-alphanumeric characters - + Kata sandi terkandung kurang dari %1 karakter non-alfanumerik - + The password contains too few non-alphanumeric characters - + Kata sandi terkandung terlalu sedikit non-alfanumerik - + The password is shorter than %1 characters - + Kata sandi terlalu pendek dari %1 karakter - + The password is too short - + Password terlalu pendek - + The password is just rotated old one - + Kata sandi hanya terotasi satu kali - + The password contains less than %1 character classes - + Kata sandi terkandung kurang dari %1 kelas karakter - + The password does not contain enough character classes - + Kata sandi tidak terkandung kelas karakter yang cukup - + The password contains more than %1 same characters consecutively - + Kata sandi terkandung lebih dari %1 karakter berurutan yang sama - + The password contains too many same characters consecutively - + Kata sandi terkandung terlalu banyak karakter berurutan yang sama - + The password contains more than %1 characters of the same class consecutively - + Kata sandi terkandung lebih dari %1 karakter dari kelas berurutan yang sama - + The password contains too many characters of the same class consecutively - + Kata sandi terkandung terlalu banyak karakter dari kelas berurutan yang sama - + The password contains monotonic sequence longer than %1 characters - + Kata sandi terkandung rangkaian monoton yang lebih panjang dari %1 karakter - + The password contains too long of a monotonic character sequence - + Kata sandi terkandung rangkaian karakter monoton yang panjang - + No password supplied - + Tidak ada kata sandi yang dipasok - + Cannot obtain random numbers from the RNG device - + Tidak dapat memperoleh angka acak dari piranti RNG - + Password generation failed - required entropy too low for settings - + Penghasilan kata sandi gagal - entropi yang diperlukan terlalu rendah untuk pengaturan - + The password fails the dictionary check - %1 - + Kata sandi gagal memeriksa kamus - %1 - + The password fails the dictionary check - + Kata sandi gagal memeriksa kamus - + Unknown setting - %1 - + Pengaturan tidak diketahui - %1 - + Unknown setting - + pengaturan tidak diketahui - + Bad integer value of setting - %1 - + Nilai bilangan bulat buruk dari pengaturan - %1 - + Bad integer value - + Nilai integer jelek - + Setting %1 is not of integer type - + Pengaturan %1 tidak termasuk tipe integer - + Setting is not of integer type - + Pengaturan tidak termasuk tipe integer - + Setting %1 is not of string type - + Pengaturan %1 tidak termasuk tipe string - + Setting is not of string type - + Pengaturan tidak termasuk tipe string - + Opening the configuration file failed - + Ada kesalahan saat membuka berkas konfigurasi - + The configuration file is malformed - + Kesalahan format pada berkas konfigurasi - + Fatal failure - + Kegagalan fatal - + Unknown error - + Ada kesalahan yang tidak diketahui @@ -1603,34 +1608,34 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. PartitionModel - - + + Free Space Ruang Kosong - - + + New partition Partisi baru - + Name Nama - + File System Berkas Sistem - + Mount Point Lokasi Mount - + Size Ukuran @@ -1659,8 +1664,8 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. - &Create - &Buat + Cre&ate + @@ -1678,105 +1683,115 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan.Pasang boot %loader pada: - + Are you sure you want to create a new partition table on %1? Apakah Anda yakin ingin membuat tabel partisi baru pada %1? + + + Can not create new partition + Tidak bisa menciptakan partisi baru. + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + Partisi tabel pada %1 sudah memiliki %2 partisi primer, dan tidak ada lagi yang bisa ditambahkan. Silakan hapus salah satu partisi primer dan tambahkan sebuah partisi extended, sebagai gantinya. + PartitionViewStep - + Gathering system information... Mengumpulkan informasi sistem... - + Partitions Paritsi - + Install %1 <strong>alongside</strong> another operating system. Pasang %1 <strong>berdampingan</strong> dengan sistem operasi lain. - + <strong>Erase</strong> disk and install %1. <strong>Hapus</strong> diska dan pasang %1. - + <strong>Replace</strong> a partition with %1. <strong>Ganti</strong> partisi dengan %1. - + <strong>Manual</strong> partitioning. Partisi <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Pasang %1 <strong>berdampingan</strong> dengan sistem operasi lain di disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Hapus</strong> diska <strong>%2</strong> (%3) dan pasang %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Ganti</strong> partisi pada diska <strong>%2</strong> (%3) dengan %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Partisi Manual</strong> pada diska <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Saat ini: - + After: Sesudah: - + No EFI system partition configured Tiada partisi sistem EFI terkonfigurasi - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Sebuah partisi sistem EFI perlu memulai %1.<br/><br/>Untuk mengkonfigurasi sebuah partisi sistem EFI, pergi mundur dan pilih atau ciptakan sebuah filesystem FAT32 dengan bendera <strong>esp</strong> yang difungsikan dan titik kait <strong>%2</strong>.<br/><br/>Kamu bisa melanjutkan tanpa menyetel sebuah partisi sistem EFI tapi sistemmu mungkin gagal memulai. - + EFI system partition flag not set Bendera partisi sistem EFI tidak disetel - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Sebuah partisi sistem EFI perlu memulai %1.<br/><br/>Sebuah partisi telah dikonfigurasi dengan titik kait <strong>%2</strong> tapi bendera <strong>esp</strong> tersebut tidak disetel.<br/>Untuk mengeset bendera, pergi mundur dan editlah partisi.<br/><br/>Kamu bisa melanjutkan tanpa menyetel bendera tapi sistemmu mungkin gagal memulai. - + Boot partition not encrypted Partisi boot tidak dienkripsi - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Sebuah partisi tersendiri telah terset bersama dengan sebuah partisi root terenkripsi, tapi partisi boot tidak terenkripsi.<br/><br/>Ada kekhawatiran keamanan dengan jenis setup ini, karena file sistem penting tetap pada partisi tak terenkripsi.<br/>Kamu bisa melanjutkan jika kamu menghendaki, tapi filesystem unlocking akan terjadi nanti selama memulai sistem.<br/>Untuk mengenkripsi partisi boot, pergi mundur dan menciptakannya ulang, memilih <strong>Encrypt</strong> di jendela penciptaan partisi. @@ -1786,13 +1801,13 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Plasma Look-and-Feel Job - + Plasma Look-and-Feel Job Could not select KDE Plasma Look-and-Feel package - + Tidak bisa memilih KDE Plasma Look-and-Feel package @@ -1805,86 +1820,107 @@ Pemasangan dapat dilanjutkan, namun beberapa fitur akan dinonfungsikan. Placeholder - + Placeholder - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. - + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + Silakan pilih sebuah look-and-feel untuk KDE Plasma Desktop. Anda juga dapat melewati langkah ini dan konfigurasi look-and-feel sekali ketika sistem terpasang. Mengeklik pilihan look-and-feel akan memberi Anda pratinjau langsung dari look-and-feel. PlasmaLnfViewStep - + Look-and-Feel - + Lihat-dan-Rasakan + + + + PreserveFiles + + + Saving files for later ... + Menyimpan file untuk kemudian... + + + + No files configured to save for later. + Tiada file yang dikonfigurasi untuk penyimpanan nanti. + + + + Not all of the configured files could be preserved. + Tidak semua file yang dikonfigurasi dapat dipertahankan. ProcessResult - + There was no output from the command. - + +Tidak ada keluaran dari perintah. - + Output: - + +Keluaran: + - + External command crashed. - + Perintah eksternal rusak. - + Command <i>%1</i> crashed. - + Perintah <i>%1</i> mogok. - + External command failed to start. - + Perintah eksternal gagal dimulai - + Command <i>%1</i> failed to start. - + Perintah <i>%1</i> gagal dimulai. - + Internal error when starting command. - + Terjadi kesalahan internal saat menjalankan perintah. - + Bad parameters for process job call. Parameter buruk untuk memproses panggilan tugas, - + External command failed to finish. - + Perintah eksternal gagal diselesaikan . - + Command <i>%1</i> failed to finish in %2 seconds. - + Perintah <i>%1</i> gagal untuk diselesaikan dalam %2 detik. - + External command finished with errors. - + Perintah eksternal diselesaikan dengan kesalahan . - + Command <i>%1</i> finished with exit code %2. - + Perintah <i>%1</i> diselesaikan dengan kode keluar %2. @@ -1901,22 +1937,22 @@ Output: Standar - + unknown tidak diketahui: - + extended extended - + unformatted tidak terformat: - + swap swap @@ -2009,52 +2045,52 @@ Output: Mengumpulkan informasi sistem... - + has at least %1 GB available drive space memiliki paling sedikit %1 GB ruang drive tersedia - + There is not enough drive space. At least %1 GB is required. Ruang drive tidak cukup. Butuh minial %1 GB. - + has at least %1 GB working memory memiliki paling sedikit %1 GB memori bekerja - + The system does not have enough working memory. At least %1 GB is required. Sistem ini tidak memiliki memori yang cukup. Butuh minial %1 GB. - + is plugged in to a power source terhubung dengan sumber listrik - + The system is not plugged in to a power source. Sistem tidak terhubung dengan sumber listrik. - + is connected to the Internet terkoneksi dengan internet - + The system is not connected to the Internet. Sistem tidak terkoneksi dengan internet. - + The installer is not running with administrator rights. Pemasang tidak dijalankan dengan kewenangan administrator. - + The screen is too small to display the installer. Layar terlalu kecil untuk menampilkan pemasang. @@ -2098,29 +2134,29 @@ Output: SetHostNameJob - + Set hostname %1 Pengaturan hostname %1 - + Set hostname <strong>%1</strong>. Atur hostname <strong>%1</strong>. - + Setting hostname %1. Mengatur hostname %1. - - + + Internal Error Kesalahan Internal - - + + Cannot write hostname to target system Tidak dapat menulis nama host untuk sistem target @@ -2324,7 +2360,16 @@ Output: Shell Processes Job - + Pekerjaan yang diselesaikan oleh shell + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 @@ -2348,22 +2393,22 @@ Output: Installation feedback - + Umpan balik instalasi. Sending installation feedback. - + Mengirim umpan balik installasi. Internal error in install-tracking. - + Galat intern di pelacakan-pemasangan. HTTP request timed out. - + Permintaan waktu HTTP habis. @@ -2371,28 +2416,28 @@ Output: Machine feedback - + Mesin umpan balik Configuring machine feedback. - + Mengkonfigurasi mesin umpan balik. Error in machine feedback configuration. - + Galat di konfigurasi mesin umpan balik. Could not configure machine feedback correctly, script error %1. - + Tidak dapat mengkonfigurasi mesin umpan balik dengan benar, naskah galat %1 Could not configure machine feedback correctly, Calamares error %1. - + Tidak dapat mengkonfigurasi mesin umpan balik dengan benar, Calamares galat %1. @@ -2405,51 +2450,51 @@ Output: Placeholder - + Placeholder <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - + <html><head/><body><p>Dengan memilih ini, Anda akan mengirim <span style=" font-weight:600;">tidak ada informasi di </span> tentang pemasangan Anda. </p></body></html> TextLabel - + Label teks ... - + ... <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klik disini untuk informasi lebih lanjut tentang umpan balik pengguna </span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - + Pasang bantuan pelacakan %1 untuk melihat berapa banyak pengguna memiliki, piranti keras apa yang mereka pasang %1 dan (dengan dua pilihan terakhir), dapatkan informasi berkelanjutan tentang aplikasi yang disukai. Untuk melihat apa yang akan dikirim, silakan klik ikon bantuan ke beberapa area selanjtunya. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - + Dengan memilih ini Anda akan mengirim informasi tentang pemasangan dan piranti keras Anda. Informasi ini hanya akan <b>dikirim sekali</b> setelah pemasangan selesai. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - + Dengan memilih ini anda akan <b> secara berkala</b> mengirim informasi tentang pemasangan, piranti keras dan aplikasi Anda, ke %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - + Dengan memilih ini anda akan<b>secara teratur</b> mengirim informasi tentang pemasangan, piranti keras, aplikasi dan pola pemakaian Anda, ke %1. @@ -2457,7 +2502,7 @@ Output: Feedback - + Umpan balik @@ -2497,7 +2542,7 @@ Output: UsersViewStep - + Users Pengguna @@ -2552,10 +2597,10 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>untuk %3</strong><br/><br/> Hak Cipta 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Hak Cipta 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/> Terimakasih kepada: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg dan <a href="https://www.transifex.com/calamares/calamares/"> tim penerjemah Calamares </a>. <br/><br/><a href="https://calamares.io/">Pengembangan Calamares</a>disponsori oleh <br/><a href="http://www.blue-systems.com/">Blue Systems</a>- Liberating Software. - + %1 support Dukungan %1 @@ -2563,7 +2608,7 @@ Output: WelcomeViewStep - + Welcome Selamat Datang diff --git a/lang/calamares_is.ts b/lang/calamares_is.ts index 13766d651..bda81784f 100644 --- a/lang/calamares_is.ts +++ b/lang/calamares_is.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Auð síða + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Setja upp @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Búið @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Keyra skipun %1 %2 - + Running command %1 %2 Keyri skipun %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Keyri %1 aðgerð. - + Bad working directory path Röng slóð á vinnumöppu - + Working directory %1 for python job %2 is not readable. Vinnslumappa %1 fyrir python-verkið %2 er ekki lesanleg. - + Bad main script file Röng aðal-skriftuskrá - + Main script file %1 for python job %2 is not readable. Aðal-skriftuskrá %1 fyrir python-verkið %2 er ekki lesanleg. - + Boost.Python error in job "%1". Boost.Python villa í verkinu "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Til baka - + + &Next &Næst - - + + &Cancel &Hætta við - - + + Cancel installation without changing the system. Hætta við uppsetningu ánþess að breyta kerfinu. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Hætta við uppsetningu? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Viltu virkilega að hætta við núverandi uppsetningarferli? Uppsetningarforritið mun hætta og allar breytingar tapast. - + &Yes &Já - + &No &Nei - + &Close &Loka - + Continue with setup? Halda áfram með uppsetningu? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 uppsetningarforritið er um það bil að gera breytingar á diskinum til að setja upp %2.<br/><strong>Þú munt ekki geta afturkallað þessar breytingar.</strong> - + &Install now Setja &inn núna - + Go &back Fara til &baka - + &Done &Búið - + The installation is complete. Close the installer. Uppsetning er lokið. Lokaðu uppsetningarforritinu. - + Error Villa - + Installation Failed Uppsetning mistókst @@ -327,7 +356,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - <strong>Handvirk disksneiðing</strong><br/>Þú getur búið til eða breytt stærð disksneiða sjálf(ur). + <strong>Handvirk disksneiðing</strong><br/>Þú getur búið til eða breytt stærð disksneiða sjálft. @@ -430,17 +459,17 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 Hreinsaði alla tengipunkta fyrir %1 @@ -471,20 +500,26 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. St&ærð: - + En&crypt &Dulrita - + Logical Rökleg - + Primary Aðal - + GPT GPT - + Mountpoint already in use. Please select another one. Tengipunktur er þegar í notkun. Veldu einhvern annan. @@ -644,70 +679,40 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. CreateUserJob - + Create user %1 Búa til notanda %1 - + Create user <strong>%1</strong>. Búa til notanda <strong>%1</strong>. - + Creating user %1. Bý til notanda %1. - + Sudoers dir is not writable. Sudoers dir er ekki skrifanleg. - + Cannot create sudoers file for writing. Get ekki búið til sudoers skrá til að lesa. - + Cannot chmod sudoers file. Get ekki chmod sudoers skrá. - + Cannot open groups file for reading. Get ekki opnað hópa skrá til að lesa. - - - Cannot create user %1. - Get ekki búið til notanda %1. - - - - useradd terminated with error code %1. - useradd endaði með villu kóðann %1. - - - - Cannot add user %1 to groups: %2. - Get ekki bætt við notanda %1 til hóps: %2. - - - - usermod terminated with error code %1. - usermod endaði með villu kóðann %1. - - - - Cannot set home directory ownership for user %1. - Get ekki stillt heimasvæðis eignarhald fyrir notandann %1. - - - - chown terminated with error code %1. - chown endaði með villu kóðann %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -852,7 +857,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Flögg: - + Mountpoint already in use. Please select another one. Tengipunktur er þegar í notkun. Veldu einhvern annan. @@ -941,12 +946,12 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. &Endurræsa núna - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Allt klárt.</h1><br/>%1 hefur verið sett upp á tölvunni þinni.<br/>Þú getur nú endurræst í nýja kerfið, eða halda áfram að nota %2 Lifandi umhverfi. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1070,64 +1075,64 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Eyðublað - + I accept the terms and conditions above. Ég samþykki skilyrði leyfissamningsins hér að ofan. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 rekill</strong><br/>hjá %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 pakki</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">frá %2</font> - + <a href="%1">view license agreement</a> <a href="%1">skoða leyfissamning</a> @@ -1183,12 +1188,12 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. LocaleViewStep - + Loading location data... Hleð inn staðsetningargögnum... - + Location Staðsetning @@ -1196,22 +1201,22 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. NetInstallPage - + Name Heiti - + Description Lýsing - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. NetInstallViewStep - + Package selection Valdir pakkar @@ -1227,244 +1232,244 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error - + Óþekkt villa @@ -1601,34 +1606,34 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. PartitionModel - - + + Free Space Laust pláss - - + + New partition Ný disksneið - + Name Heiti - + File System Skráakerfi - + Mount Point Tengipunktur - + Size Stærð @@ -1657,8 +1662,8 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. - &Create - &Búa til + Cre&ate + @@ -1676,105 +1681,115 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. Setja upp ræsistjóran á: - + Are you sure you want to create a new partition table on %1? Ertu viss um að þú viljir búa til nýja disksneið á %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Söfnun kerfis upplýsingar... - + Partitions Disksneiðar - + Install %1 <strong>alongside</strong> another operating system. Setja upp %1 <strong>ásamt</strong> ásamt öðru stýrikerfi. - + <strong>Erase</strong> disk and install %1. <strong>Eyða</strong> disk og setja upp %1. - + <strong>Replace</strong> a partition with %1. <strong>Skipta út</strong> disksneið með %1. - + <strong>Manual</strong> partitioning. <strong>Handvirk</strong> disksneiðaskipting. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Uppsetning %1 <strong>með</strong> öðru stýrikerfi á disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Eyða</strong> disk <strong>%2</strong> (%3) og setja upp %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Skipta út</strong> disksneið á diski <strong>%2</strong> (%3) með %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Handvirk</strong> disksneiðaskipting á diski <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Diskur <strong>%1</strong> (%2) - + Current: Núverandi: - + After: Eftir: - + No EFI system partition configured Ekkert EFI kerfisdisksneið stillt - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ Uppsetningarforritið mun hætta og allar breytingar tapast. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: Sjálfgefið - + unknown óþekkt - + extended útvíkkuð - + unformatted ekki forsniðin - + swap swap diskminni @@ -2007,52 +2040,52 @@ Output: Söfnun kerfis upplýsingar... - + has at least %1 GB available drive space hefur að minnsta kosti %1 GB laus á harðadisk - + There is not enough drive space. At least %1 GB is required. Það er ekki nóg diskapláss. Að minnsta kosti %1 GB eru þörf. - + has at least %1 GB working memory hefur að minnsta kosti %1 GB vinnsluminni - + The system does not have enough working memory. At least %1 GB is required. Kerfið hefur ekki nóg vinnsluminni. Að minnsta kosti %1 GB er krafist. - + is plugged in to a power source er í sambandi við aflgjafa - + The system is not plugged in to a power source. Kerfið er ekki í sambandi við aflgjafa. - + is connected to the Internet er tengd við Internetið - + The system is not connected to the Internet. Kerfið er ekki tengd við internetið. - + The installer is not running with administrator rights. Uppsetningarforritið er ekki keyrandi með kerfisstjóraheimildum. - + The screen is too small to display the installer. Skjárinn er of lítill til að birta uppsetningarforritið. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 Setja vélarheiti %1 - + Set hostname <strong>%1</strong>. Setja vélarheiti <strong>%1</strong>. - + Setting hostname %1. Stilla vélarheiti %1. - - + + Internal Error Innri Villa - - + + Cannot write hostname to target system @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Notendur @@ -2540,7 +2582,7 @@ Output: <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Velkomin(n) til Calamares uppsetningar fyrir %1</h1> + <h1>Velkomin til Calamares uppsetningar fyrir %1</h1> @@ -2553,7 +2595,7 @@ Output: - + %1 support %1 stuðningur @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Velkomin(n) diff --git a/lang/calamares_it_IT.ts b/lang/calamares_it_IT.ts index d967d2023..2d60d6920 100644 --- a/lang/calamares_it_IT.ts +++ b/lang/calamares_it_IT.ts @@ -4,7 +4,7 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - L'<strong>ambiente di avvio</strong> di questo sistema. <br><br>I vecchi sistemi x86 supportano solo <strong>BIOS</strong>. <bt>I sistemi moderni normalmente usano <strong>EFI</strong> ma possono anche usare BIOS se l'avvio viene eseguito in modalità compatibile. + L'<strong>ambiente di avvio</strong> di questo sistema. <br><br>I vecchi sistemi x86 supportano solo <strong>BIOS</strong>. <bt>I sistemi moderni normalmente usano <strong>EFI</strong> ma possono anche apparire come sistemi BIOS se avviati in modalità compatibile. @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Pagina Vuota + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Installa @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Fatto @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Esegui il comando %1 %2 - + Running command %1 %2 Comando in esecuzione %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Operazione %1 in esecuzione. - + Bad working directory path Il percorso della cartella corrente non è corretto - + Working directory %1 for python job %2 is not readable. La cartella corrente %1 per l'attività di Python %2 non è accessibile. - + Bad main script file File dello script principale non valido - + Main script file %1 for python job %2 is not readable. Il file principale dello script %1 per l'attività di python %2 non è accessibile. - + Boost.Python error in job "%1". Errore da Boost.Python nell'operazione "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Indietro - + + &Next &Avanti - - + + &Cancel &Annulla - - + + Cancel installation without changing the system. Annullare l'installazione senza modificare il sistema. - + + Calamares Initialization Failed + Inizializzazione di Calamares Fallita + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 non può essere installato. Calamares non è stato in grado di caricare tutti i moduli configurati. Questo è un problema del modo in cui Calamares viene utilizzato dalla distribuzione. + + + + <br/>The following modules could not be loaded: + <br/>Non è stato possibile caricare il seguente modulo: + + + + &Install + &Installa + + + Cancel installation? Annullare l'installazione? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Si vuole davvero annullare l'installazione in corso? Il programma d'installazione sarà terminato e tutte le modifiche andranno perse. - + &Yes &Si - + &No &No - + &Close &Chiudi - + Continue with setup? Procedere con la configurazione? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Il programma d'nstallazione %1 sta per eseguire delle modifiche al tuo disco per poter installare %2.<br/><strong> Non sarà possibile annullare tali modifiche.</strong> - + &Install now &Installa adesso - + Go &back &Indietro - + &Done &Fatto - + The installation is complete. Close the installer. - L'installazione è terminata. Chiudere l'installer. + L'installazione è terminata. Chiudere il programma d'installazione. - + Error Errore - + Installation Failed Installazione non riuscita @@ -430,17 +459,17 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno ClearMountsJob - + Clear mounts for partitioning operations on %1 Rimuovere i punti di mount per operazioni di partizionamento su %1 - + Clearing mounts for partitioning operations on %1. Rimozione dei punti di mount per le operazioni di partizionamento su %1. - + Cleared all mounts for %1 Rimossi tutti i punti di mount per %1 @@ -471,22 +500,28 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno CommandList - + + Could not run command. Impossibile eseguire il comando. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Non è stato definito alcun rootMountPoint, quindi il comando non può essere eseguito nell'ambiente di destinazione. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Il comando viene eseguito nell'ambiente host e richiede il percorso di root ma nessun rootMountPoint (punto di montaggio di root) è definito. + + + + The command needs to know the user's name, but no username is defined. + Il comando richiede il nome utente, nessun nome utente definito. ContextualProcessJob - + Contextual Processes Job - Attività dei processi contestuali + Job dei processi contestuali @@ -524,7 +559,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno LVM LV name - Nome LVM LV + Nome LV di LVM @@ -542,27 +577,27 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno &Dimensione: - + En&crypt Cr&iptare - + Logical Logica - + Primary Primaria - + GPT GPT - + Mountpoint already in use. Please select another one. Il punto di mount è già in uso. Sceglierne un altro. @@ -644,70 +679,40 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno CreateUserJob - + Create user %1 Creare l'utente %1 - + Create user <strong>%1</strong>. Creare l'utente <strong>%1</strong> - + Creating user %1. Creazione utente %1. - + Sudoers dir is not writable. La cartella sudoers non è scrivibile. - + Cannot create sudoers file for writing. Impossibile creare il file sudoers in scrittura. - + Cannot chmod sudoers file. Impossibile eseguire chmod sul file sudoers. - + Cannot open groups file for reading. Impossibile aprire il file groups in lettura. - - - Cannot create user %1. - Impossibile creare l'utente %1. - - - - useradd terminated with error code %1. - useradd si è chiuso con codice di errore %1. - - - - Cannot add user %1 to groups: %2. - Impossibile aggiungere l'utente %1 ai gruppi: %2. - - - - usermod terminated with error code %1. - usermod è terminato con codice di errore: %1. - - - - Cannot set home directory ownership for user %1. - Impossibile impostare i diritti sulla cartella home per l'utente %1. - - - - chown terminated with error code %1. - chown si è chiuso con codice di errore %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno DummyCppJob - + Dummy C++ Job Processo Dummy C++ @@ -852,7 +857,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Flag: - + Mountpoint already in use. Please select another one. Il punto di mount è già in uso. Sceglierne un altro. @@ -933,7 +938,7 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Quando questa casella è selezionata, il sistema sarà riavviato immediatamente al click su <span style=" font-style:italic;">Fatto</span> o alla chiusura del programma d'installazione.</p></body></html> @@ -941,12 +946,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno &Riavviare ora - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Tutto fatto.</ h1><br/>%1 è stato installato sul computer.<br/>Ora è possibile riavviare il sistema, o continuare a utilizzare l'ambiente Live di %2 . - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installazione Fallita</h1><br/>%1 non è stato installato sul tuo computer.<br/>Il messaggio di errore è: %2 @@ -961,12 +966,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Installation Complete - Installazione Eseguita + Installazione completata The installation of %1 is complete. - L'installazione di %1 è completa. + L'installazione di %1 è completata. @@ -997,12 +1002,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Konsole not installed - Konsole non installato + Konsole non installata Please install KDE Konsole and try again! - Si prega di installare KDE Konsole e provare nuovamente! + Si prega di installare KDE Konsole e riprovare! @@ -1021,12 +1026,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno KeyboardPage - + Set keyboard model to %1.<br/> Impostare il modello di tastiera a %1.<br/> - + Set keyboard layout to %1/%2. Impostare il layout della tastiera a %1%2. @@ -1070,64 +1075,64 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Modulo - + I accept the terms and conditions above. Accetto i termini e le condizioni sopra indicati. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Accordo di licenza</h1>Questa procedura di configurazione installerà software proprietario sottoposto a termini di licenza. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Leggere attentamente le licenze d'uso (EULA) riportate sopra.<br/>Se non ne accetti i termini, la procedura di configurazione non può proseguire. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Accordo di licenza</h1>Questa procedura di configurazione installerà software proprietario sottoposto a termini di licenza, per fornire caratteristiche aggiuntive e migliorare l'esperienza utente. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Si prega di leggere attentamente gli accordi di licenza dell'utente finale (EULA) riportati sopra.</br>Se non se ne accettano i termini, il software proprietario non verrà installato e al suo posto saranno utilizzate alternative open source. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 driver</strong><br/>da %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 driver video</strong><br/><font color="Grey">da %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 plugin del browser</strong><br/><font color="Grey">da %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">da %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 pacchetto</strong><br/><font color="Grey">da %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">da %2</font> - + <a href="%1">view license agreement</a> <a href="%1">vedi l'accordo di licenza</a> @@ -1183,12 +1188,12 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno LocaleViewStep - + Loading location data... Caricamento dei dati di posizione... - + Location Posizione @@ -1196,30 +1201,30 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno NetInstallPage - + Name Nome - + Description Descrizione - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Installazione di rete. (Disabilitata: impossibile recuperare le liste dei pacchetti, controllare la connessione di rete) - + Network Installation. (Disabled: Received invalid groups data) - Installazione di rete. (Disabilitata: Ricevuti dati non validi sui gruppi) + Installazione di rete. (Disabilitata: Ricevuti dati non validi dei gruppi) NetInstallViewStep - + Package selection Selezione del pacchetto @@ -1227,244 +1232,244 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno PWQ - + Password is too short Password troppo corta - + Password is too long Password troppo lunga - + Password is too weak - + Password troppo debole - + Memory allocation error when setting '%1' - + Errore di allocazione della memoria quando si imposta '%1' - + Memory allocation error - + Errore di allocazione di memoria - + The password is the same as the old one - + La password coincide con la precedente - + The password is a palindrome - + La password è un palindromo - + The password differs with case changes only - + La password differisce solo per lettere minuscole e maiuscole - + The password is too similar to the old one - + La password è troppo simile a quella precedente - + The password contains the user name in some form - + La password contiene il nome utente in qualche campo - + The password contains words from the real name of the user in some form - + La password contiene parti del nome utente reale in qualche campo - + The password contains forbidden words in some form - + La password contiene parole vietate in alcuni campi - + The password contains less than %1 digits - + La password contiene meno di %1 cifre - + The password contains too few digits - + La password contiene poche cifre - + The password contains less than %1 uppercase letters - + La password contiene meno di %1 lettere maiuscole - + The password contains too few uppercase letters - + La password contiene poche lettere maiuscole - + The password contains less than %1 lowercase letters - + La password contiene meno di %1 lettere minuscole - + The password contains too few lowercase letters - + La password contiene poche lettere minuscole - + The password contains less than %1 non-alphanumeric characters - + La password contiene meno di %1 caratteri non alfanumerici - + The password contains too few non-alphanumeric characters - + La password contiene pochi caratteri non alfanumerici - + The password is shorter than %1 characters - + La password ha meno di %1 caratteri - + The password is too short - + La password è troppo corta - + The password is just rotated old one - + La password è solo una rotazione della precedente - + The password contains less than %1 character classes - + La password contiene meno di %1 classi di caratteri - + The password does not contain enough character classes - + La password non contiene classi di caratteri sufficienti - + The password contains more than %1 same characters consecutively - + La password contiene più di %1 caratteri uguali consecutivi - + The password contains too many same characters consecutively - + La password contiene troppi caratteri uguali consecutivi - + The password contains more than %1 characters of the same class consecutively - + La password contiene più di %1 caratteri consecutivi della stessa classe - + The password contains too many characters of the same class consecutively - + La password contiene molti caratteri consecutivi della stessa classe - + The password contains monotonic sequence longer than %1 characters - + La password contiene una sequenza monotona più lunga di %1 caratteri - + The password contains too long of a monotonic character sequence - + La password contiene una sequenza di caratteri monotona troppo lunga - + No password supplied - + Nessuna password fornita - + Cannot obtain random numbers from the RNG device - + Impossibile ottenere numeri casuali dal dispositivo RNG - + Password generation failed - required entropy too low for settings - + Generazione della password fallita - entropia richiesta troppo bassa per le impostazioni - + The password fails the dictionary check - %1 - + La password non supera il controllo del dizionario - %1 - + The password fails the dictionary check - + La password non supera il controllo del dizionario - + Unknown setting - %1 - + Impostazioni sconosciute - %1 - + Unknown setting - + Impostazione sconosciuta - + Bad integer value of setting - %1 - + Valore intero non valido per l'impostazione - %1 - + Bad integer value - + Valore intero non valido - + Setting %1 is not of integer type - + Impostazione %1 non è di tipo intero - + Setting is not of integer type - + Impostazione non è di tipo intero - + Setting %1 is not of string type - + Impostazione %1 non è di tipo stringa - + Setting is not of string type - + Impostazione non è di tipo stringa - + Opening the configuration file failed - + Apertura del file di configurazione fallita - + The configuration file is malformed - + Il file di configurazione non è corretto - + Fatal failure - + Errore fatale - + Unknown error - + Errore sconosciuto @@ -1601,34 +1606,34 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno PartitionModel - - + + Free Space Spazio disponibile - - + + New partition Nuova partizione - + Name Nome - + File System File System - + Mount Point Punto di mount - + Size Dimensione @@ -1657,8 +1662,8 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno - &Create - &Creare + Cre&ate + Crea @@ -1676,105 +1681,115 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Installare il boot &loader su: - + Are you sure you want to create a new partition table on %1? Si è sicuri di voler creare una nuova tabella delle partizioni su %1? + + + Can not create new partition + Impossibile creare nuova partizione + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + La tabella delle partizioni su %1 contiene già %2 partizioni primarie, non se ne possono aggiungere altre. Rimuovere una partizione primaria e aggiungere una partizione estesa invece. + PartitionViewStep - + Gathering system information... Raccolta delle informazioni di sistema... - + Partitions Partizioni - + Install %1 <strong>alongside</strong> another operating system. Installare %1 <strong>a fianco</strong> di un altro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Cancellare</strong> il disco e installare %1. - + <strong>Replace</strong> a partition with %1. <strong>Sostituire</strong> una partizione con %1. - + <strong>Manual</strong> partitioning. Partizionamento <strong>manuale</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installare %1 <strong>a fianco</strong> di un altro sistema operativo sul disco<strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Cancellare</strong> il disco <strong>%2</strong> (%3) e installa %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Sostituire</strong> una partizione sul disco <strong>%2</strong> (%3) con %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Partizionamento <strong>manuale</strong> sul disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Corrente: - + After: Dopo: - + No EFI system partition configured Nessuna partizione EFI di sistema è configurata - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Una partizione EFI di sistema è necessaria per avviare %1.<br/><br/>Per configurare una partizione EFI di sistema, tornare indietro e selezionare o creare un filesystem FAT32 con il flag <strong>esp</strong> abilitato e un punto di mount <strong>%2</strong>.<br/><br/>Si può continuare senza configurare una partizione EFI ma il sistema rischia di non avviarsi. - + EFI system partition flag not set Il flag della partizione EFI di sistema non è impostato. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Una partizione EFI di sistema è necessaria per avviare %1.<br/><br/>Una partizione è stata configurata con punto di mount <strong>%2</strong> ma il relativo flag <strong>esp</strong> non è impostato.<br/>Per impostare il flag, tornare indietro e modificare la partizione.<br/><br/>Si può continuare senza impostare il flag ma il sistema rischia di non avviarsi. - + Boot partition not encrypted Partizione di avvio non criptata - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. E' stata configurata una partizione di avvio non criptata assieme ad una partizione root criptata. <br/><br/>Ci sono problemi di sicurezza con questo tipo di configurazione perchè dei file di sistema importanti sono tenuti su una partizione non criptata.<br/>Si può continuare se lo si desidera ma dopo ci sarà lo sblocco del file system, durante l'avvio del sistema.<br/>Per criptare la partizione di avvio, tornare indietro e ricrearla, selezionando <strong>Criptare</strong> nella finestra di creazione della partizione. @@ -1784,13 +1799,13 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Plasma Look-and-Feel Job - Attività del tema di Plasma + Job di Plasma Look-and-Feel Could not select KDE Plasma Look-and-Feel package - Impossibile selezionare il pacchetto del tema di KDE Plasma + Impossibile selezionare il pacchetto di KDE Plasma Look-and-Feel @@ -1806,29 +1821,47 @@ Il programma d'installazione sarà terminato e tutte le modifiche andranno Segnaposto - - 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. - Si prega di scegliere un tema per il desktop KDE Plasma. È possibile saltare questo passaggio e configurare il tema una volta installato il sistema. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + Scegliere il tema per il desktop KDE Plasma. Si può anche saltare questa scelta e configurare il tema dopo aver installato il sistema. Cliccando su selezione del tema, ne sarà mostrata un'anteprima dal vivo. PlasmaLnfViewStep - + Look-and-Feel - Tema + Look-and-Feel + + + + PreserveFiles + + + Saving files for later ... + Salvataggio dei file per dopo ... + + + + No files configured to save for later. + Nessun file configurato per dopo. + + + + Not all of the configured files could be preserved. + Non tutti i file configurati possono essere preservati. ProcessResult - + There was no output from the command. - + Non c'era output dal comando. - + Output: @@ -1837,52 +1870,53 @@ Output: - + External command crashed. Il comando esterno si è arrestato. - + Command <i>%1</i> crashed. Il comando <i>%1</i> si è arrestato. - + External command failed to start. Il comando esterno non si è avviato. - + Command <i>%1</i> failed to start. - Il comando %1 non si è avviato. + Il comando %1 non si è avviato. + - + Internal error when starting command. Errore interno all'avvio del comando. - + Bad parameters for process job call. - Parametri errati per elaborare l'attività richiesta + Parametri errati per elaborare la chiamata al job. - + External command failed to finish. Il comando esterno non è stato portato a termine. - + Command <i>%1</i> failed to finish in %2 seconds. Il comando <i>%1</i> non è stato portato a termine in %2 secondi. - + External command finished with errors. Il comando esterno è terminato con errori. - + Command <i>%1</i> finished with exit code %2. Il comando <i>%1</i> è terminato con codice di uscita %2. @@ -1901,22 +1935,22 @@ Output: Default - + unknown sconosciuto - + extended estesa - + unformatted non formattata - + swap swap @@ -2009,52 +2043,52 @@ Output: Raccolta delle informazioni di sistema... - + has at least %1 GB available drive space ha almeno %1 GB di spazio disponibile - + There is not enough drive space. At least %1 GB is required. Non c'è spazio sufficiente sul dispositivo. E' richiesto almeno %1 GB. - + has at least %1 GB working memory ha almeno %1 GB di memoria - + The system does not have enough working memory. At least %1 GB is required. Il sistema non dispone di sufficiente memoria. E' richiesto almeno %1 GB. - + is plugged in to a power source è collegato a una presa di alimentazione - + The system is not plugged in to a power source. Il sistema non è collegato a una presa di alimentazione. - + is connected to the Internet è connesso a Internet - + The system is not connected to the Internet. Il sistema non è connesso a internet. - + The installer is not running with administrator rights. Il programma di installazione non è stato avviato con i diritti di amministrazione. - + The screen is too small to display the installer. Schermo troppo piccolo per mostrare il programma d'installazione. @@ -2098,29 +2132,29 @@ Output: SetHostNameJob - + Set hostname %1 Impostare hostname %1 - + Set hostname <strong>%1</strong>. Impostare hostname <strong>%1</strong>. - + Setting hostname %1. Impostare hostname %1. - - + + Internal Error Errore interno - - + + Cannot write hostname to target system Impossibile scrivere l'hostname nel sistema di destinazione @@ -2324,7 +2358,16 @@ Output: Shell Processes Job - + Job dei processi della shell + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 @@ -2353,7 +2396,7 @@ Output: Sending installation feedback. - Invio in corso della valutazione dell'installazione + Invio della valutazione dell'installazione. @@ -2363,7 +2406,7 @@ Output: HTTP request timed out. - La richiesta HTTP ha raggiunto il timeout. + La richiesta HTTP è scaduta. @@ -2387,12 +2430,12 @@ Output: Could not configure machine feedback correctly, script error %1. - Non è stato possibile configurare correttamente la valutazione automatica, errore script %1. + Non è stato possibile configurare correttamente la valutazione automatica, errore dello script %1. Could not configure machine feedback correctly, Calamares error %1. - Non è stato possibile configurare correttamente la valutazione automatica, errore Calamares %1. + Non è stato possibile configurare correttamente la valutazione automatica, errore di Calamares %1. @@ -2410,7 +2453,7 @@ Output: <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> - <html><head/><body><p>Selezionando questo, non verrà inviata <span style=" font-weight:600;">alcuna informazione</span> riguardo la propria installazione.</p></body></html> + <html><head/><body><p>Selezionando questo, non verrà inviata <span style=" font-weight:600;">alcuna informazione</span> relativa alla propria installazione.</p></body></html> @@ -2429,27 +2472,27 @@ Output: <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> - <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Cliccare qui per maggiori informazioni riguardo la valutazione degli utenti</span></a></p></body></html> + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Cliccare qui per maggiori informazioni sulla valutazione degli utenti</span></a></p></body></html> Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. - Il tracciamento dell'installazione aiuta %1 a capire quanti utenti vengono serviti, su quale hardware installano %1 e (con le ultime due opzioni qui sotto), a ricevere continue informazioni riguardo le applicazioni preferite. Per vedere cosa verrà inviato, si prega di cliccare sull'icona di aiuto vicino ad ogni area. + Il tracciamento dell'installazione aiuta %1 a capire quanti utenti vengono serviti, su quale hardware si installa %1 e (con le ultime due opzioni sotto), a ricevere continue informazioni sulle applicazioni preferite. Per vedere cosa verrà inviato, cliccare sull'icona di aiuto accanto ad ogni area. By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - Selezionando questa opzione verranno inviate informazioni riguardo l'installazione e l'hardware. Queste informazioni verranno <b>inviate solo una volta</b> dopo che l'installazione è terminata. + Selezionando questa opzione saranno inviate informazioni relative all'installazione e all'hardware. I dati saranno <b>inviati solo una volta</b> al termine dell'installazione. By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. - Selezionando questa opzione verranno inviate <b>periodicamente</b> informazioni riguardo l'installazione, l'hardware e le applicazioni, a %1. + Selezionando questa opzione saranno inviate <b>periodicamente</b> informazioni sull'installazione, l'hardware e le applicazioni, a %1. By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. - Selezionando questa opzione verranno inviate <b>regolarmente</b> informazioni riguardo l'installazione, l'hardware, le applicazioni e il modo di utilizzo, a %1. + Selezionando questa opzione verranno inviate <b>regolarmente</b> informazioni sull'installazione, l'hardware, le applicazioni e i modi di utilizzo, a %1. @@ -2497,7 +2540,7 @@ Output: UsersViewStep - + Users Utenti @@ -2552,10 +2595,10 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Grazie a: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg e al <a href="https://www.transifex.com/calamares/calamares/">team dei traduttori di Calamares</a>.<br/><br/>Lo sviluppo di<a href="https://calamares.io/">Calamares</a> è sponsorizzato da <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support supporto %1 @@ -2563,7 +2606,7 @@ Output: WelcomeViewStep - + Welcome Benvenuti diff --git a/lang/calamares_ja.ts b/lang/calamares_ja.ts index 34eb0c07b..bafc53eee 100644 --- a/lang/calamares_ja.ts +++ b/lang/calamares_ja.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + 空白のページ + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install インストール @@ -105,7 +113,7 @@ Calamares::JobThread - + Done 完了 @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 コマンド %1 %2 を実行 - + Running command %1 %2 コマンド %1 %2 を実行中 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. %1 操作を実行中。 - + Bad working directory path 不正なワーキングディレクトリパス - + Working directory %1 for python job %2 is not readable. python ジョブ %2 において作業ディレクトリ %1 が読み込めません。 - + Bad main script file 不正なメインスクリプトファイル - + Main script file %1 for python job %2 is not readable. python ジョブ %2 におけるメインスクリプトファイル %1 が読み込めません。 - + Boost.Python error in job "%1". ジョブ "%1" での Boost.Python エラー。 @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back 戻る(&B) - + + &Next 次へ(&N) - - + + &Cancel 中止(&C) - - + + Cancel installation without changing the system. システムを変更しないでインストールを中止します。 - + + Calamares Initialization Failed + Calamares によるインストールに失敗しました。 + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + <br/>以下のモジュールがロードできませんでした。: + + + + &Install + インストール(&I) + + + Cancel installation? インストールを中止しますか? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. 本当に現在の作業を中止しますか? すべての変更が取り消されます。 - + &Yes はい(&Y) - + &No いいえ(&N) - + &Close 閉じる(&C) - + Continue with setup? セットアップを続行しますか? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 インストーラーは %2 をインストールするためにディスクの内容を変更しようとします。<br/><strong>これらの変更は取り消しできなくなります。</strong> - + &Install now 今すぐインストール(&I) - + Go &back 戻る(&B) - + &Done 実行(&D) - + The installation is complete. Close the installer. インストールが完了しました。インストーラーを閉じます。 - + Error エラー - + Installation Failed インストールに失敗 @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 %1 のパーティション操作のため、マウントを解除 - + Clearing mounts for partitioning operations on %1. %1 のパーティション操作のため、マウントを解除中 - + Cleared all mounts for %1 %1 のすべてのマウントを解除 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. コマンドを実行できませんでした。 - - No rootMountPoint is defined, so command cannot be run in the target environment. - rootMountPoint が定義されていません、それでターゲットとする環境でコマンドが起動しません。 + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + コマンドがホスト環境で実行される際、rootのパスの情報が必要になりますが、root のマウントポイントが定義されていません。 + + + + The command needs to know the user's name, but no username is defined. + ユーザー名が必要ですが、定義されていません。 ContextualProcessJob - + Contextual Processes Job コンテキストプロセスジョブ @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. サイズ(&Z) - + En&crypt 暗号化(&C) - + Logical 論理 - + Primary プライマリ - + GPT GPT - + Mountpoint already in use. Please select another one. マウントポイントは既に使用されています。他を選択してください。 @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 ユーザー %1 を作成 - + Create user <strong>%1</strong>. ユーザー <strong>%1</strong> を作成。 - + Creating user %1. ユーザー %1 を作成中。 - + Sudoers dir is not writable. sudoers ディレクトリは書き込み可能ではありません。 - + Cannot create sudoers file for writing. sudoersファイルを作成できません。 - + Cannot chmod sudoers file. sudoersファイルの権限を変更できません。 - + Cannot open groups file for reading. groups ファイルを読み込めません。 - - - Cannot create user %1. - ユーザー %1 を作成できません。 - - - - useradd terminated with error code %1. - エラーコード %1 によりuseraddを中止しました。 - - - - Cannot add user %1 to groups: %2. - ユーザー %1 をグループに追加することができません。: %2 - - - - usermod terminated with error code %1. - エラーコード %1 によりusermodが停止しました。 - - - - Cannot set home directory ownership for user %1. - ユーザー %1 のホームディレクトリの所有者を設定できません。 - - - - chown terminated with error code %1. - エラーコード %1 によりchown は中止しました。 - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. フラグ: - + Mountpoint already in use. Please select another one. マウントポイントは既に使用されています。他を選択してください。 @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. 今すぐ再起動(&R) - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>すべて完了しました。</h1><br/>%1 はコンピュータにインストールされました。<br/>再起動して新しいシステムを立ち上げるか、%2 Live環境を使用し続けることができます。 - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>インストールに失敗しました</h1><br/>%1 はコンピュータにインストールされませんでした。<br/>エラーメッセージ: %2. @@ -1022,12 +1027,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> キーボードのモデルを %1 に設定。<br/> - + Set keyboard layout to %1/%2. キーボードのレイアウトを %1/%2 に設定。 @@ -1071,64 +1076,64 @@ The installer will quit and all changes will be lost. フォーム - + I accept the terms and conditions above. 上記の項目及び条件に同意します。 - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>ライセンス契約条項</h1> このセットアップはライセンス条項に従うことが必要なプロプライエタリなソフトウェアをインストールします。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. 上記のエンドユーザーライセンス条項 (EULAs) を確認してください。<br/>もしライセンス条項に同意できない場合、セットアップを続行することはできません。 - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>ライセンス契約条項</h1> このセットアップは、機能を追加し、ユーザーの使いやすさを向上させるために、ライセンス条項に従うことが必要なプロプライエタリなソフトウェアをインストールします。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. 上記のエンドユーザーライセンス条項 (EULAs) を確認してください。<br/>もしライセンス条項に同意できない場合、プロプライエタリなソフトウェアはインストールされず、代わりにオープンソースのソフトウェアが使用されます。 - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 ドライバー</strong><br/>by %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 グラフィックドライバー</strong><br/><font color="Grey">by %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 ブラウザプラグイン</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 パッケージ</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> <a href="%1">ライセンスへの同意</a> @@ -1184,12 +1189,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... ロケーションデータをロード中... - + Location ロケーション @@ -1197,22 +1202,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name 名前 - + Description 説明 - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) ネットワークインストール。(無効: パッケージリストを取得できません。ネットワーク接続を確認してください。) - + Network Installation. (Disabled: Received invalid groups data) ネットワークインストール (不可: 無効なグループデータを受け取りました) @@ -1220,7 +1225,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection パッケージの選択 @@ -1228,242 +1233,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short パスワードが短すぎます - + Password is too long パスワードが長すぎます - + Password is too weak パスワードが弱すぎます - + Memory allocation error when setting '%1' '%1' の設定の際にメモリーアロケーションエラーが発生しました - + Memory allocation error メモリーアロケーションエラー - + The password is the same as the old one パスワードが以前のものと同じです。 - + The password is a palindrome パスワードが回文です - + The password differs with case changes only パスワードの変更が大文字、小文字の変更のみです - + The password is too similar to the old one パスワードが以前のものと酷似しています - + The password contains the user name in some form パスワードにユーザー名が含まれています - + The password contains words from the real name of the user in some form パスワードにユーザーの実名が含まれています - + The password contains forbidden words in some form パスワードに禁句が含まれています - + The password contains less than %1 digits パスワードに含まれている数字が %1 字以下です - + The password contains too few digits パスワードに含まれる数字の数が少なすぎます - + The password contains less than %1 uppercase letters パスワードに含まれている大文字が %1 字以下です - + The password contains too few uppercase letters パスワードに含まれる大文字の数が少なすぎます - + The password contains less than %1 lowercase letters パスワードに含まれている小文字が %1 字以下です - + The password contains too few lowercase letters パスワードに含まれる小文字の数が少なすぎます - + The password contains less than %1 non-alphanumeric characters パスワードに含まれる非アルファベット文字が %1 字以下です - + The password contains too few non-alphanumeric characters パスワードに含まれる非アルファベット文字の数が少なすぎます - + The password is shorter than %1 characters パスワードの長さが %1 字より短いです - + The password is too short パスワードが短すぎます - + The password is just rotated old one パスワードが古いものの使いまわしです - + The password contains less than %1 character classes パスワードに含まれている文字クラスは %1 以下です。 - + The password does not contain enough character classes パスワードには十分な文字クラスが含まれていません - + The password contains more than %1 same characters consecutively パスワードで同じ文字が %1 字以上連続しています。 - + The password contains too many same characters consecutively パスワードで同じ文字を続けすぎています - + The password contains more than %1 characters of the same class consecutively パスワードで同じ文字クラスが %1 以上連続しています。 - + The password contains too many characters of the same class consecutively パスワードで同じ文字クラスの文字を続けすぎています - + The password contains monotonic sequence longer than %1 characters - + パスワードに %1 文字以上の単調な文字列が含まれています - + The password contains too long of a monotonic character sequence - + パスワードに限度を超えた単調な文字列が含まれています - + No password supplied パスワードがありません - + Cannot obtain random numbers from the RNG device RNGデバイスから乱数を取得できません - + Password generation failed - required entropy too low for settings パスワード生成に失敗 - 設定のためのエントロピーが低すぎます - + The password fails the dictionary check - %1 パスワードの辞書チェックに失敗しました - %1 - + The password fails the dictionary check パスワードの辞書チェックに失敗しました - + Unknown setting - %1 未設定- %1 - + Unknown setting 未設定 - + Bad integer value of setting - %1 不適切な設定値 - %1 - + Bad integer value 不適切な設定値 - + Setting %1 is not of integer type 設定値 %1 は整数ではありません - + Setting is not of integer type 設定値は整数ではありません - + Setting %1 is not of string type 設定値 %1 は文字列ではありません - + Setting is not of string type 設定値は文字列ではありません - + Opening the configuration file failed 設定ファイルが開けませんでした - + The configuration file is malformed 設定ファイルが不正な形式です - + Fatal failure 致命的な失敗 - + Unknown error 未知のエラー @@ -1602,34 +1607,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space 空き領域 - - + + New partition 新しいパーティション - + Name 名前 - + File System ファイルシステム - + Mount Point マウントポイント - + Size サイズ @@ -1658,8 +1663,8 @@ The installer will quit and all changes will be lost. - &Create - 作成(&C) + Cre&ate + 作成(&a) @@ -1677,105 +1682,115 @@ The installer will quit and all changes will be lost. ブートローダーインストール先 (&L): - + Are you sure you want to create a new partition table on %1? %1 上で新しいパーティションテーブルを作成します。よろしいですか? + + + Can not create new partition + 新しいパーティションを作成できません + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... システム情報を取得中... - + Partitions パーティション - + Install %1 <strong>alongside</strong> another operating system. 他のオペレーティングシステムに<strong>共存して</strong> %1 をインストール。 - + <strong>Erase</strong> disk and install %1. ディスクを<strong>消去</strong>し %1 をインストール。 - + <strong>Replace</strong> a partition with %1. パーティションを %1 に<strong>置き換える。</strong> - + <strong>Manual</strong> partitioning. <strong>手動</strong>でパーティションを設定する。 - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). ディスク <strong>%2</strong> (%3) 上ののオペレーティングシステムと<strong>共存</strong>して %1 をインストール。 - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. ディスク <strong>%2</strong> (%3) を<strong>消去して</strong> %1 をインストール。 - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. ディスク <strong>%2</strong> (%3) 上のパーティションを %1 に<strong>置き換える。</strong> - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). ディスク <strong>%1</strong> (%2) 上で <strong>手動で</strong>パーティショニングする。 - + Disk <strong>%1</strong> (%2) ディスク <strong>%1</strong> (%2) - + Current: 現在: - + After: 変更後: - + No EFI system partition configured EFI システムパーティションが設定されていません - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. %1 を起動するためにはEFI システムパ ーティションが必要です。<br/><br/> EFI システムパーティションを設定するためには、元に戻って、マウントポイント<strong>%2</strong>で<strong>esp</strong>フラグを設定したFAT32ファイルシステムを選択するか作成します。<br/><br/>EFI システムパ ーティションの設定をせずに続行することはできますが、その場合はシステムの起動に失敗することになるかもしれません。 - + EFI system partition flag not set EFI システムパーティションのフラグが設定されていません - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. %1 を起動するためにはEFI システムパ ーティションが必要です。<br/><br/>パーティションはマウントポイント<strong>%2</strong>に設定されていますが、<strong>esp</strong> フラグが設定されていません。<br/>フラグを設定するには、元に戻ってパーティションを編集してください。<br/><br/>フラグの設定をせずに続けることはできますが、その場合、システムの起動に失敗することになるかもしれません。 - + Boot partition not encrypted ブートパーティションが暗号化されていません - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. ブートパーティションは暗号化されたルートパーティションとともにセットアップされましたが、ブートパーティションは暗号化されていません。<br/><br/>重要なシステムファイルが暗号化されていないパーティションに残されているため、このようなセットアップは安全上の懸念があります。<br/>セットアップを続行することはできますが、後でシステムの起動中にファイルシステムが解除されるおそれがあります。<br/>ブートパーティションを暗号化させるには、前の画面に戻って、再度パーティションを作成し、パーティション作成ウィンドウ内で<strong>Encrypt</strong>(暗号化)を選択してください。 @@ -1807,30 +1822,48 @@ The installer will quit and all changes will be lost. プレースホルダー - - 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. - KDE Plasma デスクトップの look-and-feel を選択してください。このステップはスキップすることができ、インストール後に look-and-feel を設定することができます。 + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + KDE Plasma デスクトップの外観を選んでください。この作業はスキップでき、インストール後に外観を設定することができます。外観を選択し、クリックすることにより外観のプレビューが表示されます。 PlasmaLnfViewStep - + Look-and-Feel Look-and-Feel + + PreserveFiles + + + Saving files for later ... + 後でファイルを保存する... + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. コマンドから出力するものがありませんでした。 - + Output: @@ -1839,52 +1872,52 @@ Output: - + External command crashed. 外部コマンドがクラッシュしました。 - + Command <i>%1</i> crashed. コマンド <i>%1</i> がクラッシュしました。 - + External command failed to start. 外部コマンドの起動に失敗しました。 - + Command <i>%1</i> failed to start. コマンド <i>%1</i> の起動に失敗しました。 - + Internal error when starting command. コマンドが起動する際に内部エラーが発生しました。 - + Bad parameters for process job call. ジョブ呼び出しにおける不正なパラメータ - + External command failed to finish. 外部コマンドの終了に失敗しました。 - + Command <i>%1</i> failed to finish in %2 seconds. コマンド<i>%1</i> %2 秒以内に終了することに失敗しました。 - + External command finished with errors. 外部のコマンドがエラーで停止しました。 - + Command <i>%1</i> finished with exit code %2. コマンド <i>%1</i> が終了コード %2 で終了しました。. @@ -1903,22 +1936,22 @@ Output: デフォルト - + unknown 不明 - + extended 拡張 - + unformatted 未フォーマット - + swap スワップ @@ -2011,52 +2044,52 @@ Output: システム情報を取得中... - + has at least %1 GB available drive space 最低 %1 GBのディスク空き領域があること - + There is not enough drive space. At least %1 GB is required. 十分なドライブ容量がありません。少なくとも %1 GB 必要です。 - + has at least %1 GB working memory 最低 %1 GB のワーキングメモリーがあること - + The system does not have enough working memory. At least %1 GB is required. システムには十分なワーキングメモリがありません。少なくとも %1 GB 必要です。 - + is plugged in to a power source 電源が接続されていること - + The system is not plugged in to a power source. システムに電源が接続されていません。 - + is connected to the Internet インターネットに接続されていること - + The system is not connected to the Internet. システムはインターネットに接続されていません。 - + The installer is not running with administrator rights. インストーラーは管理者権限で実行されていません。 - + The screen is too small to display the installer. インストーラーを表示するためには、画面が小さすぎます。 @@ -2100,29 +2133,29 @@ Output: SetHostNameJob - + Set hostname %1 ホスト名 %1 の設定 - + Set hostname <strong>%1</strong>. ホスト名 <strong>%1</strong> の設定。 - + Setting hostname %1. ホスト名 %1 の設定中。 - - + + Internal Error 内部エラー - - + + Cannot write hostname to target system ターゲットとするシステムにホスト名を書き込めません @@ -2329,6 +2362,15 @@ Output: シェルプロセスジョブ + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2499,7 +2541,7 @@ Output: UsersViewStep - + Users ユーザー情報 @@ -2557,7 +2599,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 サポート @@ -2565,7 +2607,7 @@ Output: WelcomeViewStep - + Welcome ようこそ diff --git a/lang/calamares_kk.ts b/lang/calamares_kk.ts index 7bb92ec5a..fb390eca1 100644 --- a/lang/calamares_kk.ts +++ b/lang/calamares_kk.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Орнату @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Дайын @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back А&ртқа - + + &Next &Алға - - + + &Cancel Ба&с тарту - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Орнатудан бас тарту керек пе? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error - + Installation Failed @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users Пайдаланушылар @@ -2552,7 +2594,7 @@ Output: - + %1 support %1 қолдауы @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome Қош келдіңіз diff --git a/lang/calamares_kn.ts b/lang/calamares_kn.ts index e8f5e94e9..a5dfc0d59 100644 --- a/lang/calamares_kn.ts +++ b/lang/calamares_kn.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install ಸ್ಥಾಪಿಸು @@ -105,7 +113,7 @@ Calamares::JobThread - + Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back ಹಿಂದಿನ - + + &Next ಮುಂದಿನ - - + + &Cancel ರದ್ದುಗೊಳಿಸು - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? ಅನುಸ್ಥಾಪನೆಯನ್ನು ರದ್ದುಮಾಡುವುದೇ? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes ಹೌದು - + &No ಇಲ್ಲ - + &Close ಮುಚ್ಚಿರಿ - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error ದೋಷ - + Installation Failed ಅನುಸ್ಥಾಪನೆ ವಿಫಲವಾಗಿದೆ @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: ಪ್ರಸಕ್ತ: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_ko.ts b/lang/calamares_ko.ts new file mode 100644 index 000000000..1b0d2707d --- /dev/null +++ b/lang/calamares_ko.ts @@ -0,0 +1,2614 @@ + + + BootInfoWidget + + + The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. + 이 시스템의 <strong>부트 환경</strong>입니다. <br> <br> 오래된 x86 시스템은 <strong>BIOS</strong>만을 지원합니다. <br> 최근 시스템은 주로 <strong>EFI</strong>을(를) 사용하지만, 호환 모드로 시작한 경우 BIOS로 나타날 수도 있습니다. + + + + This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. + 이 시스템은 <strong>EFI</strong> 부트 환경에서 시동되었습니다. <br> <br> EFI 환경에서의 시동에 대해 설정하려면, <strong>EFI 시스템 파티션</strong>에 <strong>GRUB</strong>나 <strong>systemd-boot</strong>와 같은 부트 로더 애플리케이션을 배치해야 합니다. 이 과정은 자동으로 진행됩니다. 단, 수동 파티셔닝을 선택할 경우, EFI 시스템 파티션을 직접 선택 또는 작성해야 합니다. + + + + This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. + 이 시스템은 <strong>BIOS 부트 환경</strong>에서 시동되었습니다. <br> <br> BIOS 환경에서의 시동에 대해 설정하려면, 파티션의 시작 위치 또는 파티션 테이블의 시작 위치 근처(권장)에 있는 <strong>마스터 부트 레코드</strong>에 <strong>GRUB</strong>과 같은 부트 로더를 설치해야 합니다. 이 과정은 자동으로 진행됩니다. 단, 수동 파티셔닝을 선택할 경우, 사용자가 직접 설정을 해야 합니다. + + + + BootLoaderModel + + + Master Boot Record of %1 + %1의 마스터 부트 레코드 + + + + Boot Partition + 부트 파티션 + + + + System Partition + 시스템 파티션 + + + + Do not install a boot loader + 부트로더를 설치하지 않습니다 + + + + %1 (%2) + %1 (%2) + + + + Calamares::BlankViewStep + + + Blank Page + 빈 페이지 + + + + Calamares::DebugWindow + + + Form + 형식 + + + + GlobalStorage + 전역 스토리지 + + + + JobQueue + 작업 대기열 + + + + Modules + 모듈 + + + + Type: + 유형: + + + + + none + 없음 + + + + Interface: + 인터페이스: + + + + Tools + 도구 + + + + Debug information + 디버깅 정보 + + + + Calamares::ExecutionViewStep + + + Install + 설치 + + + + Calamares::JobThread + + + Done + 완료 + + + + Calamares::ProcessJob + + + Run command %1 %2 + 커맨드 %1 %2 실행 + + + + Running command %1 %2 + 커맨드 %1 %2 실행 중 + + + + Calamares::PythonJob + + + Running %1 operation. + %1 명령을 실행 중 + + + + Bad working directory path + 잘못된 작업 디렉터리 경로 + + + + Working directory %1 for python job %2 is not readable. + 파이썬 작업 %2에 대한 작업 디렉터리 %1을 읽을 수 없습니다. + + + + Bad main script file + 잘못된 주 스크립트 파일 + + + + Main script file %1 for python job %2 is not readable. + 파이썬 작업 %2에 대한 주 스크립트 파일 %1을 읽을 수 없습니다. + + + + Boost.Python error in job "%1". + 작업 "%1"에서 Boost.Python 오류 + + + + Calamares::ViewManager + + + &Back + 뒤로(&B) + + + + + &Next + 다음(&N) + + + + + &Cancel + 취소(&C) + + + + + Cancel installation without changing the system. + 시스템 변경 없이 설치를 취소합니다. + + + + Calamares Initialization Failed + Calamares 초기화 실패 + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 이(가) 설치될 수 없습니다. Calamares가 모든 구성된 모듈을 불러올 수 없었습니다. 이것은 Calamares가 분포에 의해 사용되는 방식에서 비롯된 문제입니다. + + + + <br/>The following modules could not be loaded: + 다음 모듈 불러오기 실패: + + + + &Install + 설치(&I) + + + + Cancel installation? + 설치를 취소하시겠습니까? + + + + Do you really want to cancel the current install process? +The installer will quit and all changes will be lost. + 정말로 현재 설치 프로세스를 취소하시겠습니까? +설치 관리자가 종료되며 모든 변경은 반영되지 않습니다. + + + + &Yes + 예(&Y) + + + + &No + 아니오(&N) + + + + &Close + 닫기(&C) + + + + Continue with setup? + 설치를 계속하시겠습니까? + + + + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> + %1 인스톨러가 %2를 설치하기 위해 사용자의 디스크의 내용을 변경하려고 합니다. <br/> <strong>이 변경 작업은 되돌릴 수 없습니다.</strong> + + + + &Install now + 지금 설치(&I) + + + + Go &back + 뒤로 이동(&b) + + + + &Done + 완료(&D) + + + + The installation is complete. Close the installer. + 설치가 완료되었습니다. 설치 관리자를 닫습니다. + + + + Error + 오류 + + + + Installation Failed + 설치 실패 + + + + CalamaresPython::Helper + + + Unknown exception type + 알 수 없는 예외 유형 + + + + unparseable Python error + 구문 분석할 수 없는 파이썬 오류 + + + + unparseable Python traceback + 구문 분석할 수 없는 파이썬 역추적 정보 + + + + Unfetchable Python error. + 가져올 수 없는 파이썬 오류 + + + + CalamaresWindow + + + %1 Installer + %1 설치 관리자 + + + + Show debug information + 디버깅 정보 보기 + + + + CheckerWidget + + + This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> + + + + + This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled. + + + + + This program will ask you some questions and set up %2 on your computer. + + + + + For best results, please ensure that this computer: + + + + + System requirements + 시스템 요구 사항 + + + + ChoicePage + + + Form + 형식 + + + + After: + 이후: + + + + <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. + + + + + Boot loader location: + 부트 로더 위치: + + + + %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. + + + + + Select storage de&vice: + 스토리지 장치 선택 + + + + + + + Current: + 현재: + + + + Reuse %1 as home partition for %2. + + + + + <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> + + + + + <strong>Select a partition to install on</strong> + + + + + An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + The EFI system partition at %1 will be used for starting %2. + %1의 EFI 시스템 파티션은 %2의 시작으로 사용될 것입니다. + + + + EFI system partition: + EFI 시스템 파티션: + + + + This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + + + + <strong>Erase disk</strong><br/>This will <font color="red">delete</font> all data currently present on the selected storage device. + + + + + This storage device has %1 on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + + + + <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. + + + + + + + + <strong>Replace a partition</strong><br/>Replaces a partition with %1. + + + + + This storage device already has an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + This storage device has multiple operating systems on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. + + + + + ClearMountsJob + + + Clear mounts for partitioning operations on %1 + 파티셔닝 작업을 위해 %1의 마운트를 모두 해제합니다 + + + + Clearing mounts for partitioning operations on %1. + 파티셔닝 작업을 위해 %1의 마운트를 모두 해제하는 중입니다. + + + + Cleared all mounts for %1 + %1의 모든 마운트가 해제되었습니다. + + + + ClearTempMountsJob + + + Clear all temporary mounts. + 모든 임시 마운트들을 해제합니다 + + + + Clearing all temporary mounts. + 모든 임시 마운트들이 해제하는 중입니다. + + + + Cannot get list of temporary mounts. + 임시 마운트들의 목록을 가져올 수 없습니다. + + + + Cleared all temporary mounts. + 모든 임시 마운트들이 해제되었습니다. + + + + CommandList + + + + Could not run command. + 명령을 실행할 수 없습니다. + + + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + 이 명령은 호스트 환경에서 실행되며 루트 경로를 알아야하지만, rootMountPoint가 정의되지 않았습니다. + + + + The command needs to know the user's name, but no username is defined. + 이 명령은 사용자 이름을 알아야 하지만, username이 정의되지 않았습니다. + + + + ContextualProcessJob + + + Contextual Processes Job + 컨텍스트 프로세스 작업 + + + + CreatePartitionDialog + + + Create a Partition + 파티션 생성 + + + + MiB + MiB + + + + Partition &Type: + 파티션 유형(&T): + + + + &Primary + 주 파티션(&P) + + + + E&xtended + 확장 파티션(&E) + + + + Fi&le System: + 파일 시스템(&l): + + + + LVM LV name + LVM 논리 볼륨 이름 + + + + Flags: + 플래그: + + + + &Mount Point: + 마운트 지점(&M): + + + + Si&ze: + 크기(&z): + + + + En&crypt + 암호화(&c) + + + + Logical + 논리 파티션 + + + + Primary + 주 파티션 + + + + GPT + GPT + + + + Mountpoint already in use. Please select another one. + 마운트 위치가 이미 사용 중입니다. 다른 위치를 선택해주세요. + + + + CreatePartitionJob + + + Create new %2MB partition on %4 (%3) with file system %1. + + + + + Create new <strong>%2MB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. + + + + + Creating new %1 partition on %2. + + + + + The installer failed to create partition on disk '%1'. + + + + + CreatePartitionTableDialog + + + Create Partition Table + 파티션 테이블을 만듭니다 + + + + Creating a new partition table will delete all existing data on the disk. + 새로운 파티션 테이블의 생성은 디스크에 있는 모든 데이터를 지울 것입니다. + + + + What kind of partition table do you want to create? + 만들고자 하는 파티션 테이블의 종류는 무엇인가요? + + + + Master Boot Record (MBR) + 마스터 부트 레코드 (MBR) + + + + GUID Partition Table (GPT) + GUID 파티션 테이블 (GPT) + + + + CreatePartitionTableJob + + + Create new %1 partition table on %2. + %2에 %1 파티션 테이블을 만듭니다. + + + + Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). + <strong>%2</strong>에 새로운 <strong>%1</strong> 파티션 테이블을 만듭니다 (%3). + + + + Creating new %1 partition table on %2. + %2에 새로운 %1 파티션 테이블을 만드는 중입니다. + + + + The installer failed to create a partition table on %1. + 설치 관리자가 %1에 파티션 테이블을 만들지 못했습니다. + + + + CreateUserJob + + + Create user %1 + %1 사용자를 만듭니다 + + + + Create user <strong>%1</strong>. + <strong>%1</strong>사용자를 만듭니다 . + + + + Creating user %1. + %1 사용자를 만드는 중입니다. + + + + Sudoers dir is not writable. + Sudoers 디렉터리가 쓰기 금지되어 있습니다. + + + + Cannot create sudoers file for writing. + sudoers 파일을 만들 수가 없습니다. + + + + Cannot chmod sudoers file. + sudoers 파일의 권한을 변경할 수 없습니다. + + + + Cannot open groups file for reading. + groups 파일을 읽을 수가 없습니다. + + + + DeletePartitionJob + + + Delete partition %1. + %1 파티션을 지웁니다. + + + + Delete partition <strong>%1</strong>. + <strong>%1</strong> 파티션을 지웁니다. + + + + Deleting partition %1. + %1 파티션을 지우는 중입니다. + + + + The installer failed to delete partition %1. + 설치 관리자가 %1 파티션을 지우지 못했습니다. + + + + DeviceInfoWidget + + + The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. + + + + + This device has a <strong>%1</strong> partition table. + 이 장치는 <strong>%1</strong> 파티션 테이블을 갖고 있습니다. + + + + This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. + + + + + This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. + + + + + <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. + + + + + <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. + + + + + DeviceModel + + + %1 - %2 (%3) + + + + + DracutLuksCfgJob + + + Write LUKS configuration for Dracut to %1 + + + + + Skip writing LUKS configuration for Dracut: "/" partition is not encrypted + + + + + Failed to open %1 + %1을 열지 못했습니다 + + + + DummyCppJob + + + Dummy C++ Job + 더미 C++ 작업 + + + + EditExistingPartitionDialog + + + Edit Existing Partition + 기존 파티션을 수정합니다 + + + + Content: + 내용: + + + + &Keep + 유지(&K) + + + + Format + 포맷 + + + + Warning: Formatting the partition will erase all existing data. + 경고: 파티션을 포맷하는 것은 모든 데이터를 지울 것입니다. + + + + &Mount Point: + 마운트 위치(&M): + + + + Si&ze: + 크기(&z): + + + + MiB + MiB + + + + Fi&le System: + 파일 시스템(&l): + + + + Flags: + 플래그: + + + + Mountpoint already in use. Please select another one. + 마운트 위치가 이미 사용 중입니다. 다른 위치를 선택해주세요. + + + + EncryptWidget + + + Form + 형식 + + + + En&crypt system + 시스템 암호화(&c) + + + + Passphrase + 암호 + + + + Confirm passphrase + 암호 확인 + + + + Please enter the same passphrase in both boxes. + 암호와 암호 확인 상자에 동일한 값을 입력해주세요. + + + + FillGlobalStorageJob + + + Set partition information + 파티션 정보 설정 + + + + Install %1 on <strong>new</strong> %2 system partition. + + + + + Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. + + + + + Install %2 on %3 system partition <strong>%1</strong>. + + + + + Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. + + + + + Install boot loader on <strong>%1</strong>. + + + + + Setting up mount points. + 마운트 위치를 설정 중입니다. + + + + FinishedPage + + + Form + 형식 + + + + <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> + + + + + &Restart now + 지금 재시작(&R) + + + + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. + + + + + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. + + + + + FinishedViewStep + + + Finish + 완료 + + + + Installation Complete + 설치 완료 + + + + The installation of %1 is complete. + %1의 설치가 완료되었습니다. + + + + FormatPartitionJob + + + Format partition %1 (file system: %2, size: %3 MB) on %4. + + + + + Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. + + + + + Formatting partition %1 with file system %2. + %1 파티션을 %2 파일 시스템으로 포맷하는 중입니다. + + + + The installer failed to format partition %1 on disk '%2'. + 설치 관리자가 '%2' 디스크에 있는 %1 파티션을 포맷하지 못했습니다. + + + + InteractiveTerminalPage + + + Konsole not installed + Konsole이 설치되지 않았음 + + + + Please install KDE Konsole and try again! + KDE Konsole을 설치한 후에 다시 시도해주세요! + + + + Executing script: &nbsp;<code>%1</code> + 스크립트 실행: &nbsp;<code>%1</code> + + + + InteractiveTerminalViewStep + + + Script + 스크립트 + + + + KeyboardPage + + + Set keyboard model to %1.<br/> + 키보드 모델을 %1로 설정합니다.<br/> + + + + Set keyboard layout to %1/%2. + 키보드 레이아웃을 %1/%2로 설정합니다. + + + + KeyboardViewStep + + + Keyboard + 키보드 + + + + LCLocaleDialog + + + System locale setting + 시스템 로케일 설정 + + + + The system locale setting affects the language and character set for some command line user interface elements.<br/>The current setting is <strong>%1</strong>. + + + + + &Cancel + 취소(&C) + + + + &OK + 확인(&O) + + + + LicensePage + + + Form + 형식 + + + + I accept the terms and conditions above. + 상기 계약 조건을 모두 동의합니다. + + + + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. + <h1>라이센스 동의</h1>이 설치 절차는 라이센스 조항의 적용을 받는 독점 소프트웨어를 설치합니다. + + + + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. + 상기 최종 사용자 라이센스 동의 (EULAs) 를 검토해주시길 바랍니다.<br/>조건에 동의하지 않는다면, 설치 절차를 계속할 수 없습니다. + + + + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. + <h1>라이센스 동의</h1>이 설치 절차는 추가적인 기능들을 제공하고 사용자 환경을 개선하기 위한 독점 소프트웨어를 설치할 수 있으며, 이 소프트웨어는 라이센스 조항의 적용을 받습니다. + + + + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. + 상기 최종 사용자 라이센스 동의 (EULAs) 를 검토해주시길 바랍니다. <br/>조건에 동의하지 않는다면, 독점 소프트웨어는 설치되지 않을 것이며, 대체하여 사용할 수 있는 오픈 소스 소프트웨어가 사용될 것입니다. + + + + <strong>%1 driver</strong><br/>by %2 + %1 is an untranslatable product name, example: Creative Audigy driver + + + + + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> + %1 is usually a vendor name, example: Nvidia graphics driver + + + + + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1 package</strong><br/><font color="Grey">by %2</font> + + + + + <strong>%1</strong><br/><font color="Grey">by %2</font> + + + + + <a href="%1">view license agreement</a> + <a href="%1">라이센스 동의 보기</a> + + + + LicenseViewStep + + + License + 라이센스 + + + + LocalePage + + + The system language will be set to %1. + 시스템 언어가 %1로 설정될 것입니다. + + + + The numbers and dates locale will be set to %1. + 숫자와 날짜 로케일이 %1로 설정될 것입니다. + + + + Region: + 대륙: + + + + Zone: + 표준시간대: + + + + + &Change... + 변경(&C)... + + + + Set timezone to %1/%2.<br/> + 표준시간대를 %1/%2로 설정합니다.<br/> + + + + %1 (%2) + Language (Country) + %1 (%2) + + + + LocaleViewStep + + + Loading location data... + 위치 정보를 불러오는 중입니다... + + + + Location + 위치 + + + + NetInstallPage + + + Name + 이름 + + + + Description + 설명 + + + + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) + 네트워크 설치. (불가: 패키지 목록을 가져올 수 없습니다. 네트워크 연결을 확인해주세요) + + + + Network Installation. (Disabled: Received invalid groups data) + 네트워크 설치. (불가: 유효하지 않은 그룹 데이터를 수신했습니다) + + + + NetInstallViewStep + + + Package selection + 패키지 선택 + + + + PWQ + + + Password is too short + 암호가 너무 짧습니다 + + + + Password is too long + 암호가 너무 깁니다 + + + + Password is too weak + 암호가 너무 취약합니다 + + + + Memory allocation error when setting '%1' + '%1'을 설정하는 중 메모리 할당 오류 + + + + Memory allocation error + 메모리 할당 오류 + + + + The password is the same as the old one + 암호가 이전과 같습니다 + + + + The password is a palindrome + 암호가 회문입니다 + + + + The password differs with case changes only + 암호가 대소문자만 다릅니다 + + + + The password is too similar to the old one + 암호가 이전 암호와 너무 유사합니다 + + + + The password contains the user name in some form + 암호가 사용자 이름의 일부를 포함하고 있습니다. + + + + The password contains words from the real name of the user in some form + 암호가 사용자 실명의 일부를 포함하고 있습니다 + + + + The password contains forbidden words in some form + 암호가 금지된 단어를 포함하고 있습니다 + + + + The password contains less than %1 digits + 암호가 %1개 미만의 숫자를 포함하고 있습니다 + + + + The password contains too few digits + 암호가 너무 적은 개수의 숫자들을 포함하고 있습니다 + + + + The password contains less than %1 uppercase letters + 암호가 %1개 미만의 대문자를 포함하고 있습니다 + + + + The password contains too few uppercase letters + 암호가 너무 적은 개수의 대문자를 포함하고 있습니다 + + + + The password contains less than %1 lowercase letters + 암호가 %1개 미만의 소문자를 포함하고 있습니다 + + + + The password contains too few lowercase letters + 암호가 너무 적은 개수의 소문자를 포함하고 있습니다 + + + + The password contains less than %1 non-alphanumeric characters + 암호가 %1개 미만의 영숫자가 아닌 문자를 포함하고 있습니다 + + + + The password contains too few non-alphanumeric characters + 암호가 너무 적은 개수의 영숫자가 아닌 문자를 포함하고 있습니다 + + + + The password is shorter than %1 characters + + + + + The password is too short + + + + + The password is just rotated old one + + + + + The password contains less than %1 character classes + + + + + The password does not contain enough character classes + + + + + The password contains more than %1 same characters consecutively + + + + + The password contains too many same characters consecutively + + + + + The password contains more than %1 characters of the same class consecutively + + + + + The password contains too many characters of the same class consecutively + + + + + The password contains monotonic sequence longer than %1 characters + + + + + The password contains too long of a monotonic character sequence + + + + + No password supplied + + + + + Cannot obtain random numbers from the RNG device + + + + + Password generation failed - required entropy too low for settings + + + + + The password fails the dictionary check - %1 + + + + + The password fails the dictionary check + + + + + Unknown setting - %1 + + + + + Unknown setting + + + + + Bad integer value of setting - %1 + + + + + Bad integer value + + + + + Setting %1 is not of integer type + + + + + Setting is not of integer type + + + + + Setting %1 is not of string type + + + + + Setting is not of string type + + + + + Opening the configuration file failed + + + + + The configuration file is malformed + + + + + Fatal failure + 치명적인 실패 + + + + Unknown error + 알 수 없는 오류 + + + + Page_Keyboard + + + Form + 형식 + + + + Keyboard Model: + 키보드 모델: + + + + Type here to test your keyboard + 키보드를 테스트하기 위해 여기에 입력하세요 + + + + Page_UserSetup + + + Form + 형식 + + + + What is your name? + 이름이 무엇인가요? + + + + What name do you want to use to log in? + 로그인을 위해 어떤 이름을 사용할 것인가요? + + + + + + font-weight: normal + + + + + <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> + <small>한명 이상의 사용자가 이 컴퓨터를 사용할 것이라면, 설치 후에 여러 사용자 계정을 설정할 수 있습니다.</small> + + + + Choose a password to keep your account safe. + 사용자 계정의 보안을 유지하기 위한 암호를 선택하세요. + + + + <small>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</small> + + + + + What is the name of this computer? + 이 컴퓨터의 이름은 무엇인가요? + + + + <small>This name will be used if you make the computer visible to others on a network.</small> + + + + + Log in automatically without asking for the password. + 암호를 묻지 않고 자동으로 로그인합니다. + + + + Use the same password for the administrator account. + 관리자 계정에 대해 같은 암호를 사용합니다. + + + + Choose a password for the administrator account. + 관리자 계정을 위한 암호를 선택하세요. + + + + <small>Enter the same password twice, so that it can be checked for typing errors.</small> + <small>입력 오류를 검사하기 위해 암호를 똑같이 두번 입력하세요.</small> + + + + PartitionLabelsView + + + Root + 루트 + + + + Home + + + + + Boot + 부트 + + + + EFI system + EFI 시스템 + + + + Swap + 스왑 + + + + New partition for %1 + %1에 대한 새로운 파티션 + + + + New partition + 새로운 파티션 + + + + %1 %2 + + + + + PartitionModel + + + + Free Space + 여유 공간 + + + + + New partition + 새로운 파티션 + + + + Name + 이름 + + + + File System + 파일 시스템 + + + + Mount Point + 마운트 위치 + + + + Size + 크기 + + + + PartitionPage + + + Form + 형식 + + + + Storage de&vice: + 스토리지 장치(&v): + + + + &Revert All Changes + 모든 변경 되돌리기(&R) + + + + New Partition &Table + 새로운 파티션 테이블(&T) + + + + Cre&ate + + + + + &Edit + 수정(&E) + + + + &Delete + 삭제(&D) + + + + Install boot &loader on: + 부트 로더 설치 위치(&l): + + + + Are you sure you want to create a new partition table on %1? + + + + + Can not create new partition + 새로운 파티션을 만들 수 없습니다 + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + + + + PartitionViewStep + + + Gathering system information... + 시스템 정보 수집 중... + + + + Partitions + 파티션 + + + + Install %1 <strong>alongside</strong> another operating system. + + + + + <strong>Erase</strong> disk and install %1. + + + + + <strong>Replace</strong> a partition with %1. + + + + + <strong>Manual</strong> partitioning. + + + + + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). + + + + + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. + + + + + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. + + + + + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). + + + + + Disk <strong>%1</strong> (%2) + + + + + Current: + 현재: + + + + After: + 이후: + + + + No EFI system partition configured + EFI 시스템 파티션이 설정되지 않았습니다 + + + + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. + + + + + EFI system partition flag not set + EFI 시스템 파티션 플래그가 설정되지 않았습니다 + + + + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. + + + + + Boot partition not encrypted + 부트 파티션이 암호화되지 않았습니다 + + + + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. + + + + + PlasmaLnfJob + + + Plasma Look-and-Feel Job + 플라즈마 Look-and-Feel 작업 + + + + + Could not select KDE Plasma Look-and-Feel package + KDE 플라즈마 Look-and-Feel 패키지를 선택할 수 없습니다 + + + + PlasmaLnfPage + + + Form + 형식 + + + + Placeholder + + + + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + + + + + PlasmaLnfViewStep + + + Look-and-Feel + Look-and-Feel + + + + PreserveFiles + + + Saving files for later ... + 나중을 위해 파일들을 저장하는 중... + + + + No files configured to save for later. + 나중을 위해 저장될 설정된 파일들이 없습니다. + + + + Not all of the configured files could be preserved. + 모든 설정된 파일들이 보존되는 것은 아닙니다. + + + + ProcessResult + + + +There was no output from the command. + +명령으로부터 아무런 출력이 없습니다. + + + + +Output: + + +출력: + + + + + External command crashed. + 외부 명령이 실패했습니다. + + + + Command <i>%1</i> crashed. + <i>%1</i> 명령이 실패했습니다. + + + + External command failed to start. + 외부 명령을 시작하지 못했습니다. + + + + Command <i>%1</i> failed to start. + <i>%1</i> 명령을 시작하지 못했습니다. + + + + Internal error when starting command. + 명령을 시작하는 중에 내부 오류가 발생했습니다. + + + + Bad parameters for process job call. + + + + + External command failed to finish. + 외부 명령을 완료하지 못했습니다. + + + + Command <i>%1</i> failed to finish in %2 seconds. + <i>%1</i> 명령을 %2초 안에 완료하지 못했습니다. + + + + External command finished with errors. + 외부 명령이 오류와 함께 완료되었습니다. + + + + Command <i>%1</i> finished with exit code %2. + <i>%1</i> 명령이 종료 코드 %2와 함께 완료되었습니다. + + + + QObject + + + Default Keyboard Model + 기본 키보드 모델 + + + + + Default + 기본 + + + + unknown + 알 수 없음 + + + + extended + + + + + unformatted + + + + + swap + + + + + Unpartitioned space or unknown partition table + + + + + ReplaceWidget + + + Form + 형식 + + + + Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. + + + + + The selected item does not appear to be a valid partition. + 선택된 항목은 유효한 파티션으로 표시되지 않습니다. + + + + %1 cannot be installed on empty space. Please select an existing partition. + %1은 빈 공간에 설치될 수 없습니다. 존재하는 파티션을 선택해주세요. + + + + %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. + %1은 확장 파티션에 설치될 수 없습니다. 주 파티션 혹은 논리 파티션을 선택해주세요. + + + + %1 cannot be installed on this partition. + %1은 이 파티션에 설치될 수 없습니다. + + + + Data partition (%1) + 데이터 파티션 (%1) + + + + Unknown system partition (%1) + 알 수 없는 시스템 파티션 (%1) + + + + %1 system partition (%2) + %1 시스템 파티션 (%2) + + + + <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. + + + + + <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. + + + + + + + <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. + + + + + The EFI system partition at %1 will be used for starting %2. + %1의 EFI 시스템 파티션은 %2의 시작으로 사용될 것입니다. + + + + EFI system partition: + EFI 시스템 파티션: + + + + RequirementsChecker + + + Gathering system information... + 시스템 정보 수집 중... + + + + has at least %1 GB available drive space + 최소 %1 GB의 여유 공간이 필요합니다. + + + + There is not enough drive space. At least %1 GB is required. + 저장 공간이 충분하지 않습니다. 최소 %1 GB의 공간이 필요합니다. + + + + has at least %1 GB working memory + 최소 %1 GB의 가용 메모리가 필요합니다 + + + + The system does not have enough working memory. At least %1 GB is required. + 이 시스템은 가용 메모리가 충분하지 않습니다. 최소 %1 GB의 가용 메모리가 필요합니다. + + + + is plugged in to a power source + 전원 공급이 연결되어 있습니다 + + + + The system is not plugged in to a power source. + 이 시스템은 전원 공급이 연결되어 있지 않습니다 + + + + is connected to the Internet + 인터넷에 연결되어 있습니다 + + + + The system is not connected to the Internet. + 이 시스템은 인터넷에 연결되어 있지 않습니다. + + + + The installer is not running with administrator rights. + 설치 관리자가 관리자 권한으로 동작하고 있지 않습니다. + + + + The screen is too small to display the installer. + 설치 관리자를 표시하기에 화면이 너무 작습니다. + + + + ResizePartitionJob + + + Resize partition %1. + + + + + Resize <strong>%2MB</strong> partition <strong>%1</strong> to <strong>%3MB</strong>. + + + + + Resizing %2MB partition %1 to %3MB. + + + + + The installer failed to resize partition %1 on disk '%2'. + + + + + ScanningDialog + + + Scanning storage devices... + 스토리지 장치 검색 중... + + + + Partitioning + 파티셔닝 + + + + SetHostNameJob + + + Set hostname %1 + 호스트 이름을 %1로 설정합니다 + + + + Set hostname <strong>%1</strong>. + 호스트 이름을 <strong>%1</strong>로 설정합니다. + + + + Setting hostname %1. + 호스트 이름을 %1로 설정하는 중입니다. + + + + + Internal Error + 내부 오류 + + + + + Cannot write hostname to target system + 시스템의 호스트 이름을 저장할 수 없습니다 + + + + SetKeyboardLayoutJob + + + Set keyboard model to %1, layout to %2-%3 + 키보드 모델을 %1로 설정하고, 레이아웃을 %2-%3으로 설정합니다 + + + + Failed to write keyboard configuration for the virtual console. + 가상 콘솔을 위한 키보드 설정을 저장할 수 없습니다. + + + + + + Failed to write to %1 + %1에 쓰기를 실패했습니다 + + + + Failed to write keyboard configuration for X11. + X11에 대한 키보드 설정을 저장하지 못했습니다. + + + + Failed to write keyboard configuration to existing /etc/default directory. + /etc/default 디렉터리에 키보드 설정을 저장하지 못했습니다. + + + + SetPartFlagsJob + + + Set flags on partition %1. + + + + + Set flags on %1MB %2 partition. + + + + + Set flags on new partition. + + + + + Clear flags on partition <strong>%1</strong>. + + + + + Clear flags on %1MB <strong>%2</strong> partition. + + + + + Clear flags on new partition. + + + + + Flag partition <strong>%1</strong> as <strong>%2</strong>. + + + + + Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. + + + + + Flag new partition as <strong>%1</strong>. + + + + + Clearing flags on partition <strong>%1</strong>. + + + + + Clearing flags on %1MB <strong>%2</strong> partition. + + + + + Clearing flags on new partition. + + + + + Setting flags <strong>%2</strong> on partition <strong>%1</strong>. + + + + + Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. + + + + + Setting flags <strong>%1</strong> on new partition. + + + + + The installer failed to set flags on partition %1. + + + + + SetPasswordJob + + + Set password for user %1 + + + + + Setting password for user %1. + + + + + Bad destination system path. + + + + + rootMountPoint is %1 + + + + + Cannot disable root account. + + + + + passwd terminated with error code %1. + + + + + Cannot set password for user %1. + + + + + usermod terminated with error code %1. + + + + + SetTimezoneJob + + + Set timezone to %1/%2 + 표준시간대를 %1/%2로 설정합니다 + + + + Cannot access selected timezone path. + 선택된 표준시간대 경로에 접근할 수 없습니다. + + + + Bad path: %1 + 잘못된 경로: %1 + + + + Cannot set timezone. + 표준 시간대를 설정할 수 없습니다. + + + + Link creation failed, target: %1; link name: %2 + 링크 생성 실패, 대상: %1; 링크 이름: %2 + + + + Cannot set timezone, + 표준시간대를 설정할 수 없습니다, + + + + Cannot open /etc/timezone for writing + /etc/timezone을 쓰기를 위해 열 수 없습니다. + + + + ShellProcessJob + + + Shell Processes Job + 셸 처리 작업 + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + + + SummaryPage + + + This is an overview of what will happen once you start the install procedure. + + + + + SummaryViewStep + + + Summary + 요약 + + + + TrackingInstallJob + + + Installation feedback + 설치 피드백 + + + + Sending installation feedback. + 설치 피드백을 보내는 중입니다. + + + + Internal error in install-tracking. + + + + + HTTP request timed out. + HTTP 요청 시간이 만료되었습니다. + + + + TrackingMachineNeonJob + + + Machine feedback + 장치 피드백 + + + + Configuring machine feedback. + 장치 피드백을 설정하는 중입니다. + + + + + Error in machine feedback configuration. + 장치 피드백 설정 중에 오류가 발생했습니다. + + + + Could not configure machine feedback correctly, script error %1. + 장치 피드백을 정확하게 설정할 수 없습니다, %1 스크립트 오류. + + + + Could not configure machine feedback correctly, Calamares error %1. + 장치 피드백을 정확하게 설정할 수 없습니다, %1 깔라마레스 오류. + + + + TrackingPage + + + Form + 형식 + + + + Placeholder + + + + + <html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html> + + + + + + + TextLabel + + + + + + + ... + ... + + + + <html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html> + + + + + Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area. + + + + + By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. + + + + + By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1. + + + + + By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1. + + + + + TrackingViewStep + + + Feedback + 피드백 + + + + UsersPage + + + Your username is too long. + 사용자 이름이 너무 깁니다. + + + + Your username contains invalid characters. Only lowercase letters and numbers are allowed. + 사용자 이름이 유효하지 않은 문자들을 포함하고 있습니다. 소문자 그리고 숫자만이 허용됩니다. + + + + Your hostname is too short. + 호스트 이름이 너무 짧습니다. + + + + Your hostname is too long. + 호스트 이름이 너무 깁니다. + + + + Your hostname contains invalid characters. Only letters, numbers and dashes are allowed. + 호트스 이름이 유효하지 않은 문자들을 포함하고 있습니다. 영문자, 숫자 그리고 붙임표(-)만이 허용됩니다. + + + + + Your passwords do not match! + 암호가 일치하지 않습니다! + + + + UsersViewStep + + + Users + 사용자 + + + + WelcomePage + + + Form + 형식 + + + + &Language: + 언어(&L): + + + + &Release notes + 출시 정보(&R) + + + + &Known issues + 알려진 문제(&K) + + + + &Support + 지원(&S) + + + + &About + 정보(&A) + + + + <h1>Welcome to the %1 installer.</h1> + <h1>%1 설치 관리자에 오신 것을 환영합니다.</h1> + + + + <h1>Welcome to the Calamares installer for %1.</h1> + <h1>%1을 위한 깔라마레스 설치 관리자에 오신 것을 환영합니다.</h1> + + + + About %1 installer + %1 설치 관리자에 대하여 + + + + <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. + + + + + %1 support + %1 지원 + + + + WelcomeViewStep + + + Welcome + 환영합니다 + + + \ No newline at end of file diff --git a/lang/calamares_lo.ts b/lang/calamares_lo.ts index 45dab1498..4b3752aad 100644 --- a/lang/calamares_lo.ts +++ b/lang/calamares_lo.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back - + + &Next - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error - + Installation Failed @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_lt.ts b/lang/calamares_lt.ts index c8ca26668..12d53ba11 100644 --- a/lang/calamares_lt.ts +++ b/lang/calamares_lt.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Tuščias puslapis + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Diegimas @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Atlikta @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Vykdyti komandą %1 %2 - + Running command %1 %2 Vykdoma komanda %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Vykdoma %1 operacija. - + Bad working directory path Netinkama darbinio katalogo vieta - + Working directory %1 for python job %2 is not readable. Darbinis %1 python katalogas dėl %2 užduoties yra neskaitomas - + Bad main script file Prastas pagrindinio skripto failas - + Main script file %1 for python job %2 is not readable. Pagrindinis scenarijus %1 dėl python %2 užduoties yra neskaitomas - + Boost.Python error in job "%1". Boost.Python klaida užduotyje "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Atgal - + + &Next &Toliau - - + + &Cancel - A&tšaukti + A&tsisakyti - - + + Cancel installation without changing the system. Atsisakyti diegimo, nieko sistemoje nekeičiant. - + + Calamares Initialization Failed + Calamares inicijavimas nepavyko + + + + %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. + Nepavyksta įdiegti %1. Calamares nepavyko įkelti visų sukonfigūruotų modulių. Tai yra problema, susijusi su tuo, kaip distribucija naudoja diegimo programą Calamares. + + + + <br/>The following modules could not be loaded: + <br/>Nepavyko įkelti šių modulių: + + + + &Install + Į&diegti + + + Cancel installation? Atsisakyti diegimo? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - Ar tikrai norite atšaukti dabartinio diegimo procesą? + Ar tikrai norite atsisakyti dabartinio diegimo proceso? Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. - + &Yes &Taip - + &No &Ne - + &Close &Užverti - + Continue with setup? Tęsti sąranką? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 diegimo programa, siekdama įdiegti %2, ketina atlikti pakeitimus diske.<br/><strong>Šių pakeitimų atšaukti nebegalėsite.</strong> - + &Install now Į&diegti dabar - + Go &back &Grįžti - + &Done A&tlikta - + The installation is complete. Close the installer. Diegimas užbaigtas. Užverkite diegimo programą. - + Error Klaida - + Installation Failed Diegimas nepavyko @@ -430,17 +459,17 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. ClearMountsJob - + Clear mounts for partitioning operations on %1 Išvalyti prijungimus, siekiant atlikti skaidymo operacijas skaidiniuose %1 - + Clearing mounts for partitioning operations on %1. Išvalomi prijungimai, siekiant atlikti skaidymo operacijas skaidiniuose %1. - + Cleared all mounts for %1 Visi %1 prijungimai išvalyti @@ -471,20 +500,26 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. CommandList - + + Could not run command. Nepavyko paleisti komandos. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Nėra apibrėžta šaknies prijungimo vieta, taigi komanda negali būti įvykdyta paskirties aplinkoje. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Komanda yra vykdoma serverio aplinkoje ir turi žinoti šaknies kelią, tačiau nėra apibrėžtas joks rootMountPoint. + + + + The command needs to know the user's name, but no username is defined. + Komanda turi žinoti naudotojo vardą, tačiau nebuvo apibrėžtas joks naudotojo vardas. ContextualProcessJob - + Contextual Processes Job Konteksto procesų užduotis @@ -542,27 +577,27 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. D&ydis: - + En&crypt Užši&fruoti - + Logical Loginė - + Primary Pagrindinė - + GPT GPT - + Mountpoint already in use. Please select another one. Prijungimo taškas jau yra naudojamas. Prašome pasirinkti kitą. @@ -644,70 +679,40 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. CreateUserJob - + Create user %1 Sukurti naudotoją %1 - + Create user <strong>%1</strong>. Sukurti naudotoją <strong>%1</strong>. - + Creating user %1. Kuriamas naudotojas %1. - + Sudoers dir is not writable. Nepavyko įrašymui sukurti katalogo sudoers. - + Cannot create sudoers file for writing. Nepavyko įrašymui sukurti failo sudoers. - + Cannot chmod sudoers file. Nepavyko pritaikyti chmod failui sudoers. - + Cannot open groups file for reading. Nepavyko skaitymui atverti grupių failo. - - - Cannot create user %1. - Nepavyko sukurti naudotojo %1. - - - - useradd terminated with error code %1. - komanda useradd nutraukė darbą dėl klaidos kodo %1. - - - - Cannot add user %1 to groups: %2. - Nepavyksta pridėti naudotojo %1 į grupes: %2. - - - - usermod terminated with error code %1. - usermod nutraukta su klaidos kodu %1. - - - - Cannot set home directory ownership for user %1. - Nepavyko nustatyti home katalogo nuosavybės naudotojui %1. - - - - chown terminated with error code %1. - komanda chown nutraukė darbą dėl klaidos kodo %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. DummyCppJob - + Dummy C++ Job Fiktyvi C++ užduotis @@ -852,7 +857,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Vėliavėlės: - + Mountpoint already in use. Please select another one. Prijungimo taškas jau yra naudojamas. Prašome pasirinkti kitą. @@ -941,12 +946,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. &Paleisti iš naujo dabar - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Viskas atlikta.</h1><br/>%1 sistema jau įdiegta.<br/>Galite iš naujo paleisti kompiuterį dabar ir naudotis savo naująja sistema; arba galite tęsti naudojimąsi %2 sistema demonstracinėje aplinkoje. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Diegimas nepavyko</h1><br/>%1 nebuvo įdiegta jūsų kompiuteryje.<br/>Klaidos pranešimas buvo: %2. @@ -1021,12 +1026,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. KeyboardPage - + Set keyboard model to %1.<br/> Nustatyti klaviatūros modelį kaip %1.<br/> - + Set keyboard layout to %1/%2. Nustatyti klaviatūros išdėstymą kaip %1/%2. @@ -1070,64 +1075,64 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Forma - + I accept the terms and conditions above. Sutinku su aukščiau išdėstytomis nuostatomis ir sąlygomis. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licencijos Sutartis</h1>Ši sąrankos procedūra įdiegs nuosavybinę programinę įrangą, kuriai yra taikomos licencijavimo nuostatos. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Prašome aukščiau peržiūrėti Galutinio Vartotojo Licencijos Sutartis (angl. EULA).<br/>Jeigu nesutiksite su nuostatomis, sąrankos procedūra negalės būti tęsiama. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licencijos Sutartis</h1>Tam, kad pateiktų papildomas ypatybes ir pagerintų naudotojo patirtį, ši sąrankos procedūra gali įdiegti nuosavybinę programinę įrangą, kuriai yra taikomos licencijavimo nuostatos. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Prašome aukščiau peržiūrėti Galutinio Vartotojo Licencijos Sutartis (angl. EULA).<br/>Jeigu nesutiksite su nuostatomis, tuomet nuosavybinė programinė įranga nebus įdiegta, o vietoj jos, bus naudojamos atviro kodo alternatyvos. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 tvarkyklė</strong><br/>iš %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 grafikos tvarkyklė</strong><br/><font color="Grey">iš %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 naršyklės papildinys</strong><br/><font color="Grey">iš %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 kodekas</strong><br/><font color="Grey">iš %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 paketas</strong><br/><font color="Grey">iš %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">iš %2</font> - + <a href="%1">view license agreement</a> <a href="%1">žiūrėti licencijos sutartį</a> @@ -1183,12 +1188,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. LocaleViewStep - + Loading location data... Įkeliami vietos duomenys... - + Location Vieta @@ -1196,22 +1201,22 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. NetInstallPage - + Name Pavadinimas - + Description Aprašas - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Tinklo diegimas. (Išjungta: Nepavyksta gauti paketų sąrašus, patikrinkite savo tinklo ryšį) - + Network Installation. (Disabled: Received invalid groups data) Tinklo diegimas. (Išjungtas: Gauti neteisingi grupių duomenys) @@ -1219,7 +1224,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. NetInstallViewStep - + Package selection Paketų pasirinkimas @@ -1227,242 +1232,242 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. PWQ - + Password is too short Slaptažodis yra per trumpas - + Password is too long Slaptažodis yra per ilgas - + Password is too weak Slaptažodis yra per silpnas - + Memory allocation error when setting '%1' Atminties paskirstymo klaida, nustatant "%1" - + Memory allocation error Atminties paskirstymo klaida - + The password is the same as the old one Slaptažodis yra toks pats kaip ir senas - + The password is a palindrome Slaptažodis yra palindromas - + The password differs with case changes only Slaptažodyje skiriasi tik raidžių dydis - + The password is too similar to the old one Slaptažodis pernelyg panašus į senąjį - + The password contains the user name in some form Slaptažodyje tam tikru pavidalu yra naudotojo vardas - + The password contains words from the real name of the user in some form Slaptažodyje tam tikra forma yra žodžiai iš tikrojo naudotojo vardo - + The password contains forbidden words in some form Slaptažodyje tam tikra forma yra uždrausti žodžiai - + The password contains less than %1 digits Slaptažodyje yra mažiau nei %1 skaitmenys - + The password contains too few digits Slaptažodyje yra per mažai skaitmenų - + The password contains less than %1 uppercase letters Slaptažodyje yra mažiau nei %1 didžiosios raidės - + The password contains too few uppercase letters Slaptažodyje yra per mažai didžiųjų raidžių - + The password contains less than %1 lowercase letters Slaptažodyje yra mažiau nei %1 mažosios raidės - + The password contains too few lowercase letters Slaptažodyje yra per mažai mažųjų raidžių - + The password contains less than %1 non-alphanumeric characters Slaptažodyje yra mažiau nei %1 neraidiniai ir neskaitiniai simboliai - + The password contains too few non-alphanumeric characters Slaptažodyje yra per mažai neraidinių ir neskaitinių simbolių - + The password is shorter than %1 characters Slaptažodyje yra mažiau nei %1 simboliai - + The password is too short Slaptažodis yra per trumpas - + The password is just rotated old one Slaptažodis yra toks pats kaip ir senas, tik apverstas - + The password contains less than %1 character classes Slaptažodyje yra mažiau nei %1 simbolių klasės - + The password does not contain enough character classes Slaptažodyje nėra pakankamai simbolių klasių - + The password contains more than %1 same characters consecutively Slaptažodyje yra daugiau nei %1 tokie patys simboliai iš eilės - + The password contains too many same characters consecutively Slaptažodyje yra per daug tokių pačių simbolių iš eilės - + The password contains more than %1 characters of the same class consecutively Slaptažodyje yra daugiau nei %1 tos pačios klasės simboliai iš eilės - + The password contains too many characters of the same class consecutively Slaptažodyje yra per daug tos pačios klasės simbolių iš eilės - + The password contains monotonic sequence longer than %1 characters Slaptažodyje yra ilgesnė nei %1 simbolių monotoninė seka - + The password contains too long of a monotonic character sequence Slaptažodyje yra per ilga monotoninių simbolių seka - + No password supplied Nepateiktas joks slaptažodis - + Cannot obtain random numbers from the RNG device Nepavyksta gauti atsitiktinių skaičių iš RNG įrenginio - + Password generation failed - required entropy too low for settings Slaptažodžio generavimas nepavyko - reikalinga entropija nustatymams yra per maža - + The password fails the dictionary check - %1 Slaptažodis nepraeina žodyno patikros - %1 - + The password fails the dictionary check Slaptažodis nepraeina žodyno patikros - + Unknown setting - %1 Nežinomas nustatymas - %1 - + Unknown setting Nežinomas nustatymas - + Bad integer value of setting - %1 Bloga nustatymo sveikojo skaičiaus reikšmė - %1 - + Bad integer value Bloga sveikojo skaičiaus reikšmė - + Setting %1 is not of integer type Nustatymas %1 nėra sveikojo skaičiaus tipo - + Setting is not of integer type Nustatymas nėra sveikojo skaičiaus tipo - + Setting %1 is not of string type Nustatymas %1 nėra eilutės tipo - + Setting is not of string type Nustatymas nėra eilutės tipo - + Opening the configuration file failed Konfigūracijos failo atvėrimas nepavyko - + The configuration file is malformed Konfigūracijos failas yra netaisyklingas - + Fatal failure Lemtingoji klaida - + Unknown error Nežinoma klaida @@ -1601,34 +1606,34 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. PartitionModel - - + + Free Space Laisva vieta - - + + New partition Naujas skaidinys - + Name Pavadinimas - + File System Failų sistema - + Mount Point Prijungimo vieta - + Size Dydis @@ -1648,7 +1653,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. &Revert All Changes - &Atšaukti visus pakeitimus + &Sugrąžinti visus pakeitimus @@ -1657,8 +1662,8 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. - &Create - &Sukurti + Cre&ate + Su&kurti @@ -1676,105 +1681,115 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Įdiegti pa&leidyklę skaidinyje: - + Are you sure you want to create a new partition table on %1? Ar tikrai %1 norite sukurti naują skaidinių lentelę? + + + Can not create new partition + Nepavyksta sukurti naują skaidinį + + + + 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. + Skaidinių lentelėje ties %1 jau yra %2 pirminiai skaidiniai ir daugiau nebegali būti pridėta. Pašalinkite vieną pirminį skaidinį ir vietoj jo, pridėkite išplėstą skaidinį. + PartitionViewStep - + Gathering system information... Renkama sistemos informacija... - + Partitions Skaidiniai - + Install %1 <strong>alongside</strong> another operating system. Diegti %1 <strong>šalia</strong> kitos operacinės sistemos. - + <strong>Erase</strong> disk and install %1. <strong>Ištrinti</strong> diską ir diegti %1. - + <strong>Replace</strong> a partition with %1. <strong>Pakeisti</strong> skaidinį, įrašant %1. - + <strong>Manual</strong> partitioning. <strong>Rankinis</strong> skaidymas. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Įdiegti %1 <strong>šalia</strong> kitos operacinės sistemos diske <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Ištrinti</strong> diską <strong>%2</strong> (%3) ir diegti %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Pakeisti</strong> skaidinį diske <strong>%2</strong> (%3), įrašant %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Rankinis</strong> skaidymas diske <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Diskas <strong>%1</strong> (%2) - + Current: Dabartinis: - + After: Po: - + No EFI system partition configured Nėra sukonfigūruoto EFI sistemos skaidinio - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. EFI sistemos skaidinys yra būtinas, norint paleisti %1.<br/><br/>Tam, kad sukonfigūruotumėte EFI sistemos skaidinį, grįžkite atgal ir pasirinkite arba sukurkite FAT32 failų sistemą su įjungta <strong>esp</strong> vėliavėle ir <strong>%2</strong> prijungimo tašku.<br/><br/>Jūs galite tęsti ir nenustatę EFI sistemos skaidinio, tačiau tokiu atveju, gali nepavykti paleisti jūsų sistemos. - + EFI system partition flag not set Nenustatyta EFI sistemos skaidinio vėliavėlė - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. EFI sistemos skaidinys yra būtinas, norint paleisti %1.<br/><br/>Skaidinys buvo sukonfigūruotas su prijungimo tašku <strong>%2</strong>, tačiau jo <strong>esp</strong> vėliavėlė yra nenustatyta.<br/>Tam, kad nustatytumėte vėliavėlę, grįžkite atgal ir redaguokite skaidinį.<br/><br/>Jūs galite tęsti ir nenustatę vėliavėlės, tačiau tokiu atveju, gali nepavykti paleisti jūsų sistemos. - + Boot partition not encrypted Paleidimo skaidinys nėra užšifruotas - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Kartu su užšifruotu šaknies skaidiniu, buvo nustatytas atskiras paleidimo skaidinys, tačiau paleidimo skaidinys nėra užšifruotas.<br/><br/>Dėl tokios sąrankos iškyla tam tikrų saugumo klausimų, kadangi svarbūs sisteminiai failai yra laikomi neužšifruotame skaidinyje.<br/>Jeigu norite, galite tęsti, tačiau failų sistemos atrakinimas įvyks vėliau, sistemos paleidimo metu.<br/>Norėdami užšifruoti paleidimo skaidinį, grįžkite atgal ir sukurkite jį iš naujo bei skaidinių kūrimo lange pažymėkite parinktį <strong>Užšifruoti</strong>. @@ -1806,30 +1821,48 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti. Vietaženklis - - 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. - Pasirinkite išvaizdą ir turinį, skirtą KDE Plasma darbalaukiui. Taip pat galite praleisti šį žingsnį ir konfigūruoti išvaizdą ir turinį, kai sistema bus įdiegta. + + 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. + Pasirinkite KDE Plasma darbalaukio išvaizdą ir turinį. Taip pat galite praleisti šį žingsnį ir konfigūruoti išvaizdą ir turinį, kai sistema bus įdiegta. Spustelėjus ant tam tikro išvaizdos ir turinio pasirinkimo, jums bus parodyta tiesioginė peržiūrą. PlasmaLnfViewStep - + Look-and-Feel Išvaizda ir turinys + + PreserveFiles + + + Saving files for later ... + Įrašomi failai vėlesniam naudojimui ... + + + + No files configured to save for later. + Nėra sukonfigūruota įrašyti jokius failus vėlesniam naudojimui. + + + + Not all of the configured files could be preserved. + Ne visus iš sukonfigūruotų failų pavyko išsaugoti. + + ProcessResult - + There was no output from the command. Nebuvo jokios išvesties iš komandos. - + Output: @@ -1838,52 +1871,52 @@ Išvestis: - + External command crashed. Išorinė komanda užstrigo. - + Command <i>%1</i> crashed. Komanda <i>%1</i> užstrigo. - + External command failed to start. Nepavyko paleisti išorinės komandos. - + Command <i>%1</i> failed to start. Nepavyko paleisti komandos <i>%1</i>. - + Internal error when starting command. Paleidžiant komandą, įvyko vidinė klaida. - + Bad parameters for process job call. Netinkamas proceso parametras - + External command failed to finish. Nepavyko pabaigti išorinės komandos. - + Command <i>%1</i> failed to finish in %2 seconds. Nepavyko per %2 sek. pabaigti komandos <i>%1</i>. - + External command finished with errors. Išorinė komanda pabaigta su klaidomis. - + Command <i>%1</i> finished with exit code %2. Komanda <i>%1</i> pabaigta su išėjimo kodu %2. @@ -1902,22 +1935,22 @@ Išvestis: Numatytasis - + unknown nežinoma - + extended išplėsta - + unformatted nesutvarkyta - + swap sukeitimų (swap) @@ -2010,52 +2043,52 @@ Išvestis: Renkama sistemos informacija... - + has at least %1 GB available drive space turi bent %1 GB laisvos vietos diske - + There is not enough drive space. At least %1 GB is required. Neužtenka vietos diske. Reikia bent %1 GB. - + has at least %1 GB working memory turi bent %1 GB darbinės atminties - + The system does not have enough working memory. At least %1 GB is required. Sistemai neužtenka darbinės atminties. Reikia bent %1 GB. - + is plugged in to a power source prijungta prie maitinimo šaltinio - + The system is not plugged in to a power source. Sistema nėra prijungta prie maitinimo šaltinio. - + is connected to the Internet prijungta prie Interneto - + The system is not connected to the Internet. Sistema nėra prijungta prie Interneto. - + The installer is not running with administrator rights. Diegimo programa yra vykdoma be administratoriaus teisių. - + The screen is too small to display the installer. Ekranas yra per mažas, kad būtų parodyta diegimo programa. @@ -2099,29 +2132,29 @@ Išvestis: SetHostNameJob - + Set hostname %1 Nustatyti kompiuterio vardą %1 - + Set hostname <strong>%1</strong>. Nustatyti kompiuterio vardą <strong>%1</strong>. - + Setting hostname %1. Nustatomas kompiuterio vardas %1. - - + + Internal Error Vidinė klaida - - + + Cannot write hostname to target system Nepavyko įrašyti kompiuterio vardo į paskirties sistemą @@ -2259,7 +2292,7 @@ Išvestis: rootMountPoint is %1 - šaknies prijungimo vieta yra %1 + rootMountPoint yra %1 @@ -2328,6 +2361,15 @@ Išvestis: Apvalkalo procesų užduotis + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2498,7 +2540,7 @@ Išvestis: UsersViewStep - + Users Naudotojai @@ -2556,7 +2598,7 @@ Išvestis: <h1>%1</h1><br/><strong>%2<br/>sistemai %3</strong><br/><br/>Autorių teisės 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorių teisės 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Dėkojame: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg ir <a href="https://www.transifex.com/calamares/calamares/">Calamares vertėjų komandai</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> kūrimą remia <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Išlaisvinanti programinė įranga. - + %1 support %1 palaikymas @@ -2564,7 +2606,7 @@ Išvestis: WelcomeViewStep - + Welcome Pasisveikinimas diff --git a/lang/calamares_mr.ts b/lang/calamares_mr.ts index 53c88e590..922b6e704 100644 --- a/lang/calamares_mr.ts +++ b/lang/calamares_mr.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install अधिष्ठापना @@ -105,7 +113,7 @@ Calamares::JobThread - + Done पूर्ण झाली @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 %1 %2 आज्ञा चालवा - + Running command %1 %2 %1 %2 आज्ञा चालवला जातोय @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. %1 क्रिया चालवला जातोय - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back &मागे - + + &Next &पुढे - - + + &Cancel &रद्द करा - - + + Cancel installation without changing the system. प्रणालीत बदल न करता अधिष्टापना रद्द करा. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? अधिष्ठापना रद्द करायचे? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes &होय - + &No &नाही - + &Close &बंद करा - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now &आता अधिष्ठापित करा - + Go &back &मागे जा - + &Done &पूर्ण झाली - + The installation is complete. Close the installer. अधिष्ठापना संपूर्ण झाली. अधिष्ठापक बंद करा. - + Error त्रुटी - + Installation Failed अधिष्ठापना अयशस्वी झाली @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical तार्किक - + Primary प्राथमिक - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. -  %1 या एरर कोडसहित usermod रद्द केले. - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. स्वरुप - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short परवलीशब्द खूप लहान आहे - + Password is too long परवलीशब्द खूप लांब आहे - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: सद्या : - + After: नंतर : - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error अंतर्गत त्रूटी  - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users वापरकर्ते @@ -2552,7 +2594,7 @@ Output: - + %1 support %1 पाठबळ @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome स्वागत diff --git a/lang/calamares_nb.ts b/lang/calamares_nb.ts index 1f4c25f0d..083d28460 100644 --- a/lang/calamares_nb.ts +++ b/lang/calamares_nb.ts @@ -42,6 +42,14 @@ %1 (%2) + %1 (%2) + + + + Calamares::BlankViewStep + + + Blank Page @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Installer @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Ferdig @@ -113,45 +121,45 @@ Calamares::ProcessJob - + Run command %1 %2 Kjør kommando %1 %2 - + Running command %1 %2 - + Kjører kommando %1 %2 Calamares::PythonJob - + Running %1 operation. - + Bad working directory path Feil filsti til arbeidsmappe - + Working directory %1 for python job %2 is not readable. Arbeidsmappe %1 for python oppgave %2 er ikke lesbar. - + Bad main script file Ugyldig hovedskriptfil - + Main script file %1 for python job %2 is not readable. Hovedskriptfil %1 for python oppgave %2 er ikke lesbar. - + Boost.Python error in job "%1". Boost.Python feil i oppgave "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Tilbake - + + &Next &Neste - - + + &Cancel &Avbryt - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Avbryte installasjon? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Vil du virkelig avbryte installasjonen? Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - + &Yes - + &Ja - + &No - + &Nei - + &Close - + &Lukk - + Continue with setup? Fortsette å sette opp? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 vil nå gjøre endringer på harddisken, for å installere %2. <br/><strong>Du vil ikke kunne omgjøre disse endringene.</strong> - + &Install now &Installer nå - + Go &back Gå &tilbake - + &Done - + &Ferdig - + The installation is complete. Close the installer. - + Installasjonen er fullført. Lukk installeringsprogrammet. - + Error Feil - + Installation Failed Installasjon feilet @@ -289,7 +318,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> - + Denne datamaskinen oppfyller ikke minimumskravene for installering %1.<br/> Installeringen kan ikke fortsette. <a href="#details">Detaljer..</a> @@ -309,7 +338,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. System requirements - + Systemkrav @@ -327,7 +356,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - + <strong>Manuell partisjonering</strong><br/>Du kan opprette eller endre størrelse på partisjoner selv. @@ -430,17 +459,17 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -460,7 +489,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Cannot get list of temporary mounts. - Klarer ikke å få tak i listen over midlertidige monterte disker. + Klarte ikke å få tak i listen over midlertidige monterte disker. @@ -471,20 +500,26 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt.St&ørrelse: - + En&crypt - + Logical Logisk - + Primary Primær - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. CreateUserJob - + Create user %1 Opprett bruker %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Oppretter bruker %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - Klarte ikke å opprette bruker %1 - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -794,7 +799,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - + Mountpoint already in use. Please select another one. @@ -938,17 +943,17 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &Restart now - + &Start på nytt nå - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Innnstallasjonen mislyktes</h1><br/>%1 har ikke blitt installert på datamaskinen din.<br/>Feilmeldingen var: %2. @@ -961,12 +966,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Installation Complete - + Installasjon fullført The installation of %1 is complete. - + Installasjonen av %1 er fullført. @@ -984,7 +989,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Formatting partition %1 with file system %2. - + Formaterer partisjon %1 med filsystem %2. @@ -1021,14 +1026,14 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. KeyboardPage - + Set keyboard model to %1.<br/> - + Sett tastaturmodell til %1.<br/> - + Set keyboard layout to %1/%2. - + Sett tastaturoppsett til %1/%2. @@ -1059,7 +1064,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &OK - + &OK @@ -1070,64 +1075,64 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt.Form - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 driver</strong><br/>fra %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 grafikkdriver</strong><br/><font color="Grey">fra %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 nettlesertillegg</strong><br/><font color="Grey">fra %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">fra %2</font> - + <a href="%1">view license agreement</a> @@ -1137,7 +1142,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. License - + Lisens @@ -1166,7 +1171,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. &Change... - + &Endre... @@ -1177,18 +1182,18 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. %1 (%2) Language (Country) - + %1 (%2) LocaleViewStep - + Loading location data... - + Location Plassering @@ -1196,22 +1201,22 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. NetInstallViewStep - + Package selection @@ -1227,244 +1232,244 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. PWQ - + Password is too short - + Passordet er for kort - + Password is too long - + Passordet er for langt - + Password is too weak - + Passordet er for svakt - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + Passordet er det samme som det gamle - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + Passordet likner for mye på det gamle - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + Passordet inneholder mindre enn %1 store bokstaver - + The password contains too few uppercase letters - + Passordet inneholder for få store bokstaver - + The password contains less than %1 lowercase letters - + Passordet inneholder mindre enn %1 små bokstaver - + The password contains too few lowercase letters - + Passordet inneholder for få små bokstaver - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + Passordet er for kort - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + Passordet inneholder for mange like tegn etter hverandre - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Innstillingen er ikke av type streng - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error - + Ukjent feil @@ -1477,12 +1482,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. Keyboard Model: - + Tastaturmodell: Type here to test your keyboard - + Skriv her for å teste tastaturet ditt @@ -1495,12 +1500,12 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. What is your name? - + Hva heter du? What name do you want to use to log in? - + Hvilket navn vil du bruke for å logge inn? @@ -1601,34 +1606,34 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1657,7 +1662,7 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - &Create + Cre&ate @@ -1676,105 +1681,115 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ Installasjonsprogrammet vil avsluttes og alle endringer vil gå tapt. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Ugyldige parametere for prosessens oppgavekall - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1890,31 +1923,31 @@ Output: Default Keyboard Model - + Standard tastaturmodell Default - + Standard - + unknown - + extended - + unformatted - + swap @@ -1954,7 +1987,7 @@ Output: %1 cannot be installed on this partition. - + %1 kan ikke bli installert på denne partisjonen. @@ -2007,52 +2040,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + er koblet til en strømkilde - + The system is not plugged in to a power source. - + Systemet er ikke koblet til en strømkilde. - + is connected to the Internet - + er tilkoblet Internett - + The system is not connected to the Internet. - + Systemet er ikke tilkoblet Internett. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - + Intern feil - - + + Cannot write hostname to target system @@ -2314,7 +2347,7 @@ Output: Cannot open /etc/timezone for writing - + Klarte ikke åpne /etc/timezone for skriving @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2463,7 +2505,7 @@ Output: Your username is too long. - + Brukernavnet ditt er for langt. @@ -2495,9 +2537,9 @@ Output: UsersViewStep - + Users - + Brukere @@ -2510,7 +2552,7 @@ Output: &Language: - + &Språk: @@ -2530,7 +2572,7 @@ Output: &About - + &Om @@ -2553,7 +2595,7 @@ Output: - + %1 support @@ -2561,9 +2603,9 @@ Output: WelcomeViewStep - + Welcome - + Velkommen \ No newline at end of file diff --git a/lang/calamares_nl.ts b/lang/calamares_nl.ts index c9fc340c9..d20d75630 100644 --- a/lang/calamares_nl.ts +++ b/lang/calamares_nl.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Installeer @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Gereed @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Voer opdracht %1 %2 uit - + Running command %1 %2 Uitvoeren van opdracht %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Bewerking %1 uitvoeren. - + Bad working directory path Ongeldig pad voor huidige map - + Working directory %1 for python job %2 is not readable. Werkmap %1 voor python taak %2 onleesbaar. - + Bad main script file Onjuist hoofdscriptbestand - + Main script file %1 for python job %2 is not readable. Hoofdscriptbestand %1 voor python taak %2 onleesbaar. - + Boost.Python error in job "%1". Boost.Python fout in taak "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Terug - + + &Next &Volgende - - + + &Cancel &Afbreken - - + + Cancel installation without changing the system. Installatie afbreken zonder aanpassingen aan het systeem. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Installatie afbreken? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Wil je het huidige installatieproces echt afbreken? Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. - + &Yes &ja - + &No &Nee - + &Close &Sluiten - + Continue with setup? Doorgaan met installatie? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Het %1 installatieprogramma zal nu aanpassingen maken aan je schijf om %2 te installeren.<br/><strong>Deze veranderingen kunnen niet ongedaan gemaakt worden.</strong> - + &Install now Nu &installeren - + Go &back Ga &terug - + &Done Voltooi&d - + The installation is complete. Close the installer. De installatie is voltooid. Sluit het installatie-programma. - + Error Fout - + Installation Failed Installatie Mislukt @@ -430,17 +459,17 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. ClearMountsJob - + Clear mounts for partitioning operations on %1 Geef aankoppelpunten vrij voor partitiebewerkingen op %1 - + Clearing mounts for partitioning operations on %1. Aankoppelpunten vrijgeven voor partitiebewerkingen op %1. - + Cleared all mounts for %1 Alle aankoppelpunten voor %1 zijn vrijgegeven @@ -471,20 +500,26 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. &Grootte: - + En&crypt &Versleutelen - + Logical Logisch - + Primary Primair - + GPT GPT - + Mountpoint already in use. Please select another one. Aankoppelpunt reeds in gebruik. Gelieve een andere te kiezen. @@ -644,70 +679,40 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. CreateUserJob - + Create user %1 Maak gebruiker %1 - + Create user <strong>%1</strong>. Maak gebruiker <strong>%1</strong> - + Creating user %1. Gebruiker %1 aanmaken. - + Sudoers dir is not writable. Sudoers map is niet schrijfbaar. - + Cannot create sudoers file for writing. Kan het bestand sudoers niet aanmaken. - + Cannot chmod sudoers file. chmod sudoers gefaald. - + Cannot open groups file for reading. Kan het bestand groups niet lezen. - - - Cannot create user %1. - Kan gebruiker %1 niet aanmaken. - - - - useradd terminated with error code %1. - useradd is gestopt met foutcode %1. - - - - Cannot add user %1 to groups: %2. - Kan gebruiker %1 niet toevoegen aan groepen: %2. - - - - usermod terminated with error code %1. - usermod is gestopt met foutcode %1. - - - - Cannot set home directory ownership for user %1. - Kan eigendomsrecht gebruikersmap niet instellen voor gebruiker %1. - - - - chown terminated with error code %1. - chown is gestopt met foutcode %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. DummyCppJob - + Dummy C++ Job C++ schijnopdracht @@ -852,7 +857,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Vlaggen: - + Mountpoint already in use. Please select another one. Aankoppelpunt reeds in gebruik. Gelieve een andere te kiezen. @@ -941,12 +946,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. &Nu herstarten - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Klaar.</h1><br/>%1 is op je computer geïnstalleerd.<br/>Je mag je nieuwe systeem nu herstarten of de %2 Live omgeving blijven gebruiken. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Installatie Mislukt</h1><br/>%1 werd niet op de computer geïnstalleerd. <br/>De foutboodschap was: %2 @@ -1021,12 +1026,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. KeyboardPage - + Set keyboard model to %1.<br/> Instellen toetsenbord model naar %1.<br/> - + Set keyboard layout to %1/%2. Instellen toetsenbord lay-out naar %1/%2. @@ -1070,64 +1075,64 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Formulier - + I accept the terms and conditions above. Ik aanvaard de bovenstaande algemene voorwaarden. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licentieovereenkomst</h1>Deze installatieprocedure zal propriëtaire software installeren die onderworpen is aan licentievoorwaarden. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Gelieve bovenstaande licentieovereenkomsten voor eindgebruikers (EULA's) na te kijken.<br/>Indien je de voorwaarden niet aanvaardt, kan de installatie niet doorgaan. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licentieovereenkomst</h1>Deze installatieprocedure kan mogelijk propriëtaire software, onderworpen aan licentievoorwaarden, installeren om bijkomende functies aan te bieden of de gebruikservaring te verbeteren. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Gelieve bovenstaande licentieovereenkomsten voor eindgebruikers (EULA's) na te kijken.<br/>Indien je de voorwaarden niet aanvaardt zal de propriëtaire software vervangen worden door openbron alternatieven. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 stuurprogramma</strong><br/>door %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 grafisch stuurprogramma</strong><br/><font color="Grey">door %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 browser plugin</strong><br/><font color="Grey">door %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">door %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 pakket</strong><br/><font color="Grey">door %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">door %2</font> - + <a href="%1">view license agreement</a> <a href="%1">toon de licentieovereenkomst</a> @@ -1183,12 +1188,12 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. LocaleViewStep - + Loading location data... Laden van locatiegegevens... - + Location Locatie @@ -1196,22 +1201,22 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. NetInstallPage - + Name Naam - + Description Beschrijving - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Netwerkinstallatie. (Uitgeschakeld: kon de pakketlijsten niet binnenhalen, controleer de netwerkconnectie) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. NetInstallViewStep - + Package selection Pakketkeuze @@ -1227,242 +1232,242 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. PWQ - + Password is too short Het wachtwoord is te kort - + Password is too long Het wachtwoord is te lang - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. PartitionModel - - + + Free Space Vrije ruimte - - + + New partition Nieuwe partitie - + Name Naam - + File System Bestandssysteem - + Mount Point Aankoppelpunt - + Size Grootte @@ -1657,8 +1662,8 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. - &Create - &Maak + Cre&ate + @@ -1676,105 +1681,115 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. Installeer boot&loader op: - + Are you sure you want to create a new partition table on %1? Weet u zeker dat u een nieuwe partitie tabel wil maken op %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Systeeminformatie verzamelen... - + Partitions Partities - + Install %1 <strong>alongside</strong> another operating system. Installeer %1 <strong>naast</strong> een ander besturingssysteem. - + <strong>Erase</strong> disk and install %1. <strong>Wis</strong> schijf en installeer %1. - + <strong>Replace</strong> a partition with %1. <strong>Vervang</strong> een partitie met %1. - + <strong>Manual</strong> partitioning. <strong>Handmatig</strong> partitioneren. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installeer %1 <strong>naast</strong> een ander besturingssysteem op schijf <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Wis</strong> schijf <strong>%2</strong> (%3) en installeer %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Vervang</strong> een partitie op schijf <strong>%2</strong> (%3) met %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Handmatig</strong> partitioneren van schijf <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Schijf <strong>%1</strong> (%2) - + Current: Huidig: - + After: Na: - + No EFI system partition configured Geen EFI systeempartitie geconfigureerd - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Een EFI systeempartitie is vereist om %1 te starten.<br/><br/>Om een EFI systeempartitie in te stellen, ga terug en selecteer of maak een FAT32 bestandssysteem met de <strong>esp</strong>-vlag aangevinkt en aankoppelpunt <strong>%2</strong>.<br/><br/>Je kan verdergaan zonder een EFI systeempartitie, maar mogelijk start je systeem dan niet op. - + EFI system partition flag not set EFI-systeem partitievlag niet ingesteld. - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Een EFI systeempartitie is vereist om %1 op te starten.<br/><br/>Een partitie is ingesteld met aankoppelpunt <strong>%2</strong>, maar de de <strong>esp</strong>-vlag is niet aangevinkt.<br/>Om deze vlag aan te vinken, ga terug en pas de partitie aan.<br/><br/>Je kan verdergaan zonder deze vlag, maar mogelijk start je systeem dan niet op. - + Boot partition not encrypted Bootpartitie niet versleuteld - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Een aparte bootpartitie was ingesteld samen met een versleutelde rootpartitie, maar de bootpartitie zelf is niet versleuteld.<br/><br/>Dit is niet volledig veilig, aangezien belangrijke systeembestanden bewaard worden op een niet-versleutelde partitie.<br/>Je kan doorgaan als je wil, maar het ontgrendelen van bestandssystemen zal tijdens het opstarten later plaatsvinden.<br/>Om de bootpartitie toch te versleutelen: keer terug en maak de bootpartitie opnieuw, waarbij je <strong>Versleutelen</strong> aanvinkt in het venster partitie aanmaken. @@ -1806,81 +1821,99 @@ Het installatieprogramma zal afsluiten en alle wijzigingen zullen verloren gaan. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Onjuiste parameters voor procestaak - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: Standaard - + unknown onbekend - + extended uitgebreid - + unformatted niet-geformateerd - + swap wisselgeheugen @@ -2007,52 +2040,52 @@ Output: Systeeminformatie verzamelen... - + has at least %1 GB available drive space tenminste %1 GB vrije schijfruimte heeft - + There is not enough drive space. At least %1 GB is required. Er is onvoldoende vrije schijfruimte. Tenminste %1 GB is vereist. - + has at least %1 GB working memory tenminste %1 GB werkgeheugen heeft - + The system does not have enough working memory. At least %1 GB is required. Dit systeem heeft onvoldoende werkgeheugen. Tenminste %1 GB is vereist. - + is plugged in to a power source aangesloten is op netstroom - + The system is not plugged in to a power source. Dit systeem is niet aangesloten op netstroom. - + is connected to the Internet verbonden is met het Internet - + The system is not connected to the Internet. Dit systeem is niet verbonden met het Internet. - + The installer is not running with administrator rights. Het installatieprogramma draait zonder administratorrechten. - + The screen is too small to display the installer. Het schem is te klein on het installatieprogramma te vertonen. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 Instellen hostnaam %1 - + Set hostname <strong>%1</strong>. Instellen hostnaam <strong>%1</strong> - + Setting hostname %1. Hostnaam %1 instellen. - - + + Internal Error Interne Fout - - + + Cannot write hostname to target system Kan de hostnaam niet naar doelsysteem schrijven @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Gebruikers @@ -2553,7 +2595,7 @@ Output: - + %1 support %1 ondersteuning @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Welkom diff --git a/lang/calamares_pl.ts b/lang/calamares_pl.ts index 21c493ff2..706a44cf5 100644 --- a/lang/calamares_pl.ts +++ b/lang/calamares_pl.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Pusta strona + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Zainstaluj @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Ukończono @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Uruchom polecenie %1 %2 - + Running command %1 %2 Wykonywanie polecenia %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Wykonuję operację %1. - + Bad working directory path Niepoprawna ścieżka katalogu roboczego - + Working directory %1 for python job %2 is not readable. Katalog roboczy %1 dla zadań pythona %2 jest nieosiągalny. - + Bad main script file Niepoprawny główny plik skryptu - + Main script file %1 for python job %2 is not readable. Główny plik skryptu %1 dla zadań pythona %2 jest nieczytelny. - + Boost.Python error in job "%1". Wystąpił błąd Boost.Python w zadaniu "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Wstecz - + + &Next &Dalej - - + + &Cancel &Anuluj - - + + Cancel installation without changing the system. Anuluj instalację bez dokonywania zmian w systemie. - + + Calamares Initialization Failed + Błąd inicjacji programu Calamares + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 nie może zostać zainstalowany. Calamares nie mógł wczytać wszystkich skonfigurowanych modułów. Jest to problem ze sposobem, w jaki Calamares jest używany przez dystrybucję. + + + + <br/>The following modules could not be loaded: + <br/>Następujące moduły nie mogły zostać wczytane: + + + + &Install + Za&instaluj + + + Cancel installation? Anulować instalację? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Czy na pewno chcesz anulować obecny proces instalacji? Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. - + &Yes &Tak - + &No &Nie - + &Close Zam&knij - + Continue with setup? Kontynuować z programem instalacyjnym? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Instalator %1 zamierza przeprowadzić zmiany na Twoim dysku, aby zainstalować %2.<br/><strong>Nie będziesz mógł cofnąć tych zmian.</strong> - + &Install now &Zainstaluj teraz - + Go &back &Cofnij się - + &Done &Ukończono - + The installation is complete. Close the installer. Instalacja ukończona pomyślnie. Możesz zamknąć instalator. - + Error Błąd - + Installation Failed Wystąpił błąd instalacji @@ -430,17 +459,17 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. ClearMountsJob - + Clear mounts for partitioning operations on %1 Wyczyść zamontowania dla operacji partycjonowania na %1 - + Clearing mounts for partitioning operations on %1. Czyszczenie montowań dla operacji partycjonowania na %1. - + Cleared all mounts for %1 Wyczyszczono wszystkie zamontowania dla %1 @@ -471,22 +500,28 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. CommandList - + + Could not run command. Nie można wykonać polecenia. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Nie określono rootMountPoint, więc polecenie nie może zostać wykonane w docelowym środowisku. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Polecenie uruchomione jest w środowisku hosta i musi znać ścieżkę katalogu głównego, jednakże nie został określony punkt montowania katalogu głównego (root). + + + + The command needs to know the user's name, but no username is defined. + Polecenie musi znać nazwę użytkownika, ale żadna nazwa nie została jeszcze zdefiniowana. ContextualProcessJob - + Contextual Processes Job - + Działania procesów kontekstualnych @@ -542,27 +577,27 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Ro&zmiar: - + En&crypt Zaszy%fruj - + Logical Logiczna - + Primary Podstawowa - + GPT GPT - + Mountpoint already in use. Please select another one. Punkt montowania jest już używany. Proszę wybrać inny. @@ -644,70 +679,40 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. CreateUserJob - + Create user %1 Utwórz użytkownika %1 - + Create user <strong>%1</strong>. Utwórz użytkownika <strong>%1</strong>. - + Creating user %1. Tworzenie użytkownika %1. - + Sudoers dir is not writable. Katalog sudoers nie ma prawa do zapisu. - + Cannot create sudoers file for writing. Nie można utworzyć pliku sudoers z możliwością zapisu. - + Cannot chmod sudoers file. Nie można wykonać chmod na pliku sudoers. - + Cannot open groups file for reading. Nie można otworzyć pliku groups do odczytu. - - - Cannot create user %1. - Nie można utworzyć użytkownika %1. - - - - useradd terminated with error code %1. - Polecenie useradd zostało przerwane z kodem błędu %1. - - - - Cannot add user %1 to groups: %2. - Nie można dodać użytkownika %1 do grup: %2 - - - - usermod terminated with error code %1. - usermod zakończony z kodem błędu %1. - - - - Cannot set home directory ownership for user %1. - Nie można ustawić właściciela katalogu domowego dla użytkownika %1. - - - - chown terminated with error code %1. - Polecenie chown zostało przerwane z kodem błędu %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. DummyCppJob - + Dummy C++ Job Działanie obiektu Dummy C++ @@ -852,7 +857,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Flagi: - + Mountpoint already in use. Please select another one. Punkt montowania jest już używany. Proszę wybrać inny. @@ -941,12 +946,12 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.&Uruchom ponownie teraz - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Wszystko gotowe.</h1><br/>%1 został zainstalowany na Twoim komputerze.<br/>Możesz teraz ponownie uruchomić komputer, aby przejść do nowego systemu, albo kontynuować używanie środowiska live %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalacja nie powiodła się</h1><br/>Nie udało się zainstalować %1 na Twoim komputerze.<br/>Komunikat o błędzie: %2. @@ -1021,12 +1026,12 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. KeyboardPage - + Set keyboard model to %1.<br/> Ustaw model klawiatury na %1.<br/> - + Set keyboard layout to %1/%2. Ustaw model klawiatury na %1/%2. @@ -1070,64 +1075,64 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Formularz - + I accept the terms and conditions above. Akceptuję powyższe warunki korzystania. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Umowy licencyjne</h1>Ten etap instalacji zainstaluje własnościowe oprogramowanie, którego dotyczą zasady licencji. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Przeczytaj znajdujące się poniżej Umowy Licencyjne Końcowego Użytkownika (EULA).<br/>Jeżeli nie zgadzasz się z tymi warunkami, nie możesz kontynuować. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Umowy licencyjne</h1>Ten etap instalacji pozwoli zainstalować własnościowe oprogramowanie, którego dotyczą zasady licencji w celu poprawienia doświadczenia i zapewnienia dodatkowych funkcji. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Przeczytaj znajdujące się poniżej Umowy Licencyjne Końcowego Użytkownika (EULA).<br/>Jeżeli nie zaakceptujesz tych warunków, własnościowe oprogramowanie nie zostanie zainstalowane, zamiast tego zostaną użyte otwartoźródłowe odpowiedniki. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>sterownik %1</strong><br/>autorstwa %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>sterownik graficzny %1</strong><br/><font color="Grey">autorstwa %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>wtyczka do przeglądarki %1</strong><br/><font color="Grey">autorstwa %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>kodek %1</strong><br/><font color="Grey">autorstwa %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>pakiet %1</strong><br/><font color="Grey">autorstwa %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">autorstwa %2</font> - + <a href="%1">view license agreement</a> <a href="%1">zobacz porozumienie licencyjne</a> @@ -1183,12 +1188,12 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. LocaleViewStep - + Loading location data... Wczytywanie danych położenia - + Location Położenie @@ -1196,22 +1201,22 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. NetInstallPage - + Name Nazwa - + Description Opis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalacja sieciowa. (Wyłączona: Nie można pobrać listy pakietów, sprawdź swoje połączenie z siecią) - + Network Installation. (Disabled: Received invalid groups data) Instalacja sieciowa. (Niedostępna: Otrzymano nieprawidłowe dane grupowe) @@ -1219,7 +1224,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. NetInstallViewStep - + Package selection Wybór pakietów @@ -1227,242 +1232,242 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. PWQ - + Password is too short Hasło jest zbyt krótkie - + Password is too long Hasło jest zbyt długie - + Password is too weak Hasło jest zbyt słabe - + Memory allocation error when setting '%1' Wystąpił błąd przydzielania pamięci przy ustawieniu '%1' - + Memory allocation error Błąd przydzielania pamięci - + The password is the same as the old one Hasło jest takie samo jak poprzednie - + The password is a palindrome Hasło jest palindromem - + The password differs with case changes only Hasła różnią się tylko wielkością znaków - + The password is too similar to the old one Hasło jest zbyt podobne do poprzedniego - + The password contains the user name in some form Hasło zawiera nazwę użytkownika - + The password contains words from the real name of the user in some form Hasło zawiera fragment pełnej nazwy użytkownika - + The password contains forbidden words in some form Hasło zawiera jeden z niedozwolonych wyrazów - + The password contains less than %1 digits Hasło składa się z mniej niż %1 znaków - + The password contains too few digits Hasło zawiera zbyt mało znaków - + The password contains less than %1 uppercase letters Hasło składa się z mniej niż %1 wielkich liter - + The password contains too few uppercase letters Hasło zawiera zbyt mało wielkich liter - + The password contains less than %1 lowercase letters Hasło składa się z mniej niż %1 małych liter - + The password contains too few lowercase letters Hasło zawiera zbyt mało małych liter - + The password contains less than %1 non-alphanumeric characters Hasło składa się z mniej niż %1 znaków niealfanumerycznych - + The password contains too few non-alphanumeric characters Hasło zawiera zbyt mało znaków niealfanumerycznych - + The password is shorter than %1 characters Hasło zawiera mniej niż %1 znaków - + The password is too short Hasło jest zbyt krótkie - + The password is just rotated old one Hasło jest odwróceniem poprzedniego - + The password contains less than %1 character classes Hasło składa się z mniej niż %1 rodzajów znaków - + The password does not contain enough character classes Hasło zawiera zbyt mało rodzajów znaków - + The password contains more than %1 same characters consecutively Hasło zawiera ponad %1 powtarzających się tych samych znaków - + The password contains too many same characters consecutively Hasło zawiera zbyt wiele powtarzających się znaków - + The password contains more than %1 characters of the same class consecutively Hasło zawiera więcej niż %1 znaków tego samego rodzaju - + The password contains too many characters of the same class consecutively Hasło składa się ze zbyt wielu znaków tego samego rodzaju - + The password contains monotonic sequence longer than %1 characters Hasło zawiera jednakowy ciąg dłuższy niż %1 znaków - + The password contains too long of a monotonic character sequence Hasło zawiera zbyt długi ciąg jednakowych znaków - + No password supplied Nie podano hasła - + Cannot obtain random numbers from the RNG device Nie można uzyskać losowych znaków z urządzenia RNG - + Password generation failed - required entropy too low for settings - + Błąd tworzenia hasła - wymagana entropia jest zbyt niska dla ustawień - + The password fails the dictionary check - %1 - + Hasło nie przeszło pomyślnie sprawdzenia słownikowego - %1 - + The password fails the dictionary check - + Hasło nie przeszło pomyślnie sprawdzenia słownikowego - + Unknown setting - %1 Nieznane ustawienie - %1 - + Unknown setting Nieznane ustawienie - + Bad integer value of setting - %1 - + Błędna wartość liczby całkowitej ustawienia - %1 - + Bad integer value - + Błędna wartość liczby całkowitej - + Setting %1 is not of integer type Ustawienie %1 nie jest liczbą całkowitą - + Setting is not of integer type Ustawienie nie jest liczbą całkowitą - + Setting %1 is not of string type Ustawienie %1 nie jest ciągiem znaków - + Setting is not of string type Ustawienie nie jest ciągiem znaków - + Opening the configuration file failed Nie udało się otworzyć pliku konfiguracyjnego - + The configuration file is malformed Plik konfiguracyjny jest uszkodzony - + Fatal failure - Krytyczne niepowodzenie + Błąd krytyczny - + Unknown error Nieznany błąd @@ -1601,34 +1606,34 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. PartitionModel - - + + Free Space Wolna powierzchnia - - + + New partition Nowa partycja - + Name Nazwa - + File System System plików - + Mount Point Punkt montowania - + Size Rozmiar @@ -1657,8 +1662,8 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. - &Create - &Utwórz + Cre&ate + Ut_wórz @@ -1676,105 +1681,115 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.Zainsta&luj program rozruchowy na: - + Are you sure you want to create a new partition table on %1? Czy na pewno chcesz utworzyć nową tablicę partycji na %1? + + + Can not create new partition + Nie można utworzyć nowej partycji + + + + 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. + Tablica partycji na %1 ma już %2 podstawowych partycji i więcej nie może już być dodanych. Prosimy o usunięcie jednej partycji systemowej i dodanie zamiast niej partycji rozszerzonej. + PartitionViewStep - + Gathering system information... Zbieranie informacji o systemie... - + Partitions Partycje - + Install %1 <strong>alongside</strong> another operating system. Zainstaluj %1 <strong>obok</strong> innego systemu operacyjnego. - + <strong>Erase</strong> disk and install %1. <strong>Wyczyść</strong> dysk i zainstaluj %1. - + <strong>Replace</strong> a partition with %1. <strong>Zastąp</strong> partycję poprzez %1. - + <strong>Manual</strong> partitioning. <strong>Ręczne</strong> partycjonowanie. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Zainstaluj %1 <strong>obok</strong> innego systemu operacyjnego na dysku <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Wyczyść</strong> dysk <strong>%2</strong> (%3) i zainstaluj %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Zastąp</strong> partycję na dysku <strong>%2</strong> (%3) poprzez %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ręczne</strong> partycjonowanie na dysku <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Dysk <strong>%1</strong> (%2) - + Current: Bieżący: - + After: Po: - + No EFI system partition configured Nie skonfigurowano partycji systemowej EFI - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Partycja systemu EFI jest zalecana aby rozpocząć %1.<br/><br/>Aby ją skonfigurować, wróć i wybierz lub utwórz partycję z systemem plików FAT32 i flagą <strong>esp</strong> o punkcie montowania <strong>%2</strong>.<br/><br/>Możesz kontynuować bez ustawiania partycji systemu EFI, ale twój system może nie uruchomić się. - + EFI system partition flag not set Flaga partycji systemowej EFI nie została ustawiona - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Partycja systemu EFI jest konieczna, aby rozpocząć %1.<br/><br/>Partycja została skonfigurowana w punkcie montowania <strong>%2</strong>, ale nie została ustawiona flaga <strong>esp</strong>. Aby ustawić tę flagę, wróć i zmodyfikuj tę partycję.<br/><br/>Możesz kontynuować bez ustawienia tej flagi, ale Twój system może się nie uruchomić. - + Boot partition not encrypted Niezaszyfrowana partycja rozruchowa - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Oddzielna partycja rozruchowa została skonfigurowana razem z zaszyfrowaną partycją roota, ale partycja rozruchowa nie jest szyfrowana.<br/><br/>Nie jest to najbezpieczniejsze rozwiązanie, ponieważ ważne pliki systemowe znajdują się na niezaszyfrowanej partycji.<br/>Możesz kontynuować, ale odblokowywanie systemu nastąpi później, w trakcie uruchamiania.<br/>Aby zaszyfrować partycję rozruchową, wróć i utwórz ją ponownie zaznaczając opcję <strong>Szyfruj</strong> w oknie tworzenia partycji. @@ -1784,13 +1799,13 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. Plasma Look-and-Feel Job - + Działania Wyglądu-i-Zachowania Plasmy Could not select KDE Plasma Look-and-Feel package - + Nie można wybrać pakietu Wygląd-i-Zachowanie Plasmy KDE @@ -1803,32 +1818,51 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone. Placeholder - + Symbol zastępczy - - 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. - Zainstaluj motyw pulpitu KDE Plazmy. Możesz pominąć ten krok i wybrać, jak będzie wyglądał Twój system po zakończeniu instalacji. + + 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. + Wybierz wygląd i styl pulpitu Plazmy KDE. Możesz również pominąć ten krok i skonfigurować wygląd po zainstalowaniu systemu. Kliknięcie przycisku wyboru wyglądu i stylu daje podgląd na żywo tego wyglądu i stylu. PlasmaLnfViewStep - + Look-and-Feel - + Wygląd-i-Zachowanie + + + + PreserveFiles + + + Saving files for later ... + Zapisywanie plików na później ... + + + + No files configured to save for later. + Nie skonfigurowano żadnych plików do zapisania na później. + + + + Not all of the configured files could be preserved. + Nie wszystkie pliki konfiguracyjne mogą być zachowane. ProcessResult - + There was no output from the command. - + +W wyniku polecenia nie ma żadnego rezultatu. - + Output: @@ -1837,52 +1871,52 @@ Wyjście: - + External command crashed. Zewnętrzne polecenie zakończone niepowodzeniem. - + Command <i>%1</i> crashed. Wykonanie polecenia <i>%1</i> nie powiodło się. - + External command failed to start. Nie udało się uruchomić zewnętrznego polecenia. - + Command <i>%1</i> failed to start. Polecenie <i>%1</i> nie zostało uruchomione. - + Internal error when starting command. Wystąpił wewnętrzny błąd podczas uruchamiania polecenia. - + Bad parameters for process job call. Błędne parametry wywołania zadania. - + External command failed to finish. Nie udało się ukończyć zewnętrznego polecenia. - + Command <i>%1</i> failed to finish in %2 seconds. Nie udało się ukończyć polecenia <i>%1</i> w ciągu %2 sekund. - + External command finished with errors. Ukończono zewnętrzne polecenie z błędami. - + Command <i>%1</i> finished with exit code %2. Polecenie <i>%1</i> zostało ukończone z błędem o kodzie %2. @@ -1901,22 +1935,22 @@ Wyjście: Domyślnie - + unknown nieznany - + extended rozszerzona - + unformatted niesformatowany - + swap przestrzeń wymiany @@ -2009,52 +2043,52 @@ Wyjście: Zbieranie informacji o systemie... - + has at least %1 GB available drive space ma przynajmniej %1 GB dostępnego miejsca na dysku - + There is not enough drive space. At least %1 GB is required. Nie ma wystarczającej ilości miejsca na dysku. Wymagane jest przynajmniej %1 GB. - + has at least %1 GB working memory ma przynajmniej %1 GB pamięci roboczej - + The system does not have enough working memory. At least %1 GB is required. System nie posiada wystarczającej ilości pamięci roboczej. Wymagane jest przynajmniej %1 GB. - + is plugged in to a power source jest podłączony do źródła zasilania - + The system is not plugged in to a power source. System nie jest podłączony do źródła zasilania. - + is connected to the Internet jest podłączony do Internetu - + The system is not connected to the Internet. System nie jest podłączony do Internetu. - + The installer is not running with administrator rights. Instalator jest uruchomiony bez praw administratora. - + The screen is too small to display the installer. Zbyt niska rozdzielczość ekranu, aby wyświetlić instalator. @@ -2098,29 +2132,29 @@ Wyjście: SetHostNameJob - + Set hostname %1 Ustaw nazwę komputera %1 - + Set hostname <strong>%1</strong>. Ustaw nazwę komputera <strong>%1</strong>. - + Setting hostname %1. Ustawianie nazwy komputera %1. - - + + Internal Error Błąd wewnętrzny - - + + Cannot write hostname to target system Nie można zapisać nazwy komputera w docelowym systemie @@ -2324,7 +2358,16 @@ Wyjście: Shell Processes Job - + Działania procesów powłoki + + + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 @@ -2371,28 +2414,28 @@ Wyjście: Machine feedback - + Maszynowa informacja zwrotna Configuring machine feedback. - + Konfiguracja machine feedback Error in machine feedback configuration. - + Błąd w konfiguracji maszynowej informacji zwrotnej. Could not configure machine feedback correctly, script error %1. - + Nie można poprawnie skonfigurować maszynowej informacji zwrotnej, błąd skryptu %1. Could not configure machine feedback correctly, Calamares error %1. - + Nie można poprawnie skonfigurować maszynowej informacji zwrotnej, błąd Calamares %1. @@ -2405,7 +2448,7 @@ Wyjście: Placeholder - + Symbol zastępczy @@ -2417,7 +2460,7 @@ Wyjście: TextLabel - + EtykietaTekstowa @@ -2497,7 +2540,7 @@ Wyjście: UsersViewStep - + Users Użytkownicy @@ -2555,7 +2598,7 @@ Wyjście: <h1>%1</h1><br/><strong>%2<br/>dla %3</strong><br/><br/>Prawa autorskie 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Prawa autorskie 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Podziękowania dla: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg i <a href="https://www.transifex.com/calamares/calamares/">zespołu tłumaczy Calamares</a>.<br/><br/><a href="https://calamares.io/">Projekt Calamares</a> jest sponsorowany przez <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support Wsparcie %1 @@ -2563,7 +2606,7 @@ Wyjście: WelcomeViewStep - + Welcome Witamy diff --git a/lang/calamares_pt_BR.ts b/lang/calamares_pt_BR.ts index 1caabe62b..84302178a 100644 --- a/lang/calamares_pt_BR.ts +++ b/lang/calamares_pt_BR.ts @@ -9,12 +9,12 @@ This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - Este sistema foi iniciado com um ambiente de inicialização <strong>EFI</strong>.<br><br>Para configurar o início a partir de um ambiente EFI, este instalador deverá instalar um gerenciador de inicialização, como o <strong>GRUB</strong> ou <strong>systemd-boot</strong> em uma <strong>Partição de Sistema EFI</strong>. Este processo é automático, a não ser que escolha o particionamento manual, que no caso permite-lhe escolher ou criá-lo manualmente. + Este sistema foi iniciado com um ambiente de inicialização <strong>EFI</strong>.<br><br>Para configurar o início a partir de um ambiente EFI, este instalador deverá instalar um gerenciador de inicialização, como o <strong>GRUB</strong> ou <strong>systemd-boot</strong> em uma <strong>Partição de Sistema EFI</strong>. Esse processo é automático, a não ser que escolha o particionamento manual, que no caso fará você escolher ou criar o gerenciador de inicialização por conta própria. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - Este sistema foi iniciado utilizando o <strong>BIOS</strong> como ambiente de inicialização.<br><br>Para configurar a inicialização em um ambiente BIOS, este instalador deve instalar um gerenciador de boot, como o <strong>GRUB</strong>, no começo de uma partição ou no <strong>Master Boot Record</strong>, perto do começo da tabela de partições (recomendado). Este processo é automático, a não ser que você escolha o particionamento manual, onde você deverá configurá-lo manualmente. + Este sistema foi iniciado utilizando o <strong>BIOS</strong> como ambiente de inicialização.<br><br>Para configurar a inicialização em um ambiente BIOS, este instalador deve instalar um gerenciador de boot, como o <strong>GRUB</strong>, no começo de uma partição ou no <strong>Master Boot Record</strong>, perto do começo da tabela de partições (recomendado). Esse processo é automático, a não ser que você escolha o particionamento manual, onde você deverá configurá-lo manualmente. @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Página em Branco + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalar @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Concluído @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Executar comando %1 %2 - + Running command %1 %2 Executando comando %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Executando operação %1. - + Bad working directory path Caminho de diretório de trabalho ruim - + Working directory %1 for python job %2 is not readable. Diretório de trabalho %1 para a tarefa do python %2 não é legível. - + Bad main script file Arquivo de script principal ruim - + Main script file %1 for python job %2 is not readable. Arquivo de script principal %1 para a tarefa do python %2 não é legível. - + Boost.Python error in job "%1". Boost.Python erro na tarefa "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Voltar - + + &Next &Próximo - - + + &Cancel &Cancelar - - + + Cancel installation without changing the system. Cancelar instalação sem modificar o sistema. - + + Calamares Initialization Failed + Falha na inicialização do Calamares + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 não pôde ser instalado. O Calamares não conseguiu carregar todos os módulos configurados. Este é um problema com o modo em que o Calamares está sendo utilizado pela distribuição. + + + + <br/>The following modules could not be loaded: + <br/>Os seguintes módulos não puderam ser carregados: + + + + &Install + &Instalar + + + Cancel installation? Cancelar a instalação? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Você deseja realmente cancelar a instalação atual? O instalador será fechado e todas as alterações serão perdidas. - + &Yes &Sim - + &No &Não - + &Close Fe&char - + Continue with setup? Continuar com configuração? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> O instalador %1 está prestes a fazer alterações no disco a fim de instalar %2.<br/><strong>Você não será capaz de desfazer estas mudanças.</strong> - + &Install now &Instalar agora - + Go &back &Voltar - + &Done Completa&do - + The installation is complete. Close the installer. A instalação está completa. Feche o instalador. - + Error Erro - + Installation Failed Falha na Instalação @@ -290,7 +319,7 @@ O instalador será fechado e todas as alterações serão perdidas. This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a> Este computador não satisfaz os requisitos mínimos para instalar %1. -A instalação não pode continuar.<a href="#details">Detalhes...</a> +A instalação não pode continuar. Detalhes: @@ -387,7 +416,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - Parece que não há um sistema operacional neste dispositivo. O que você gostaria de fazer?<br/>Você poderá revisar e confirmar suas opções antes que as alterações sejam feitas no dispositivo de armazenamento. + Parece que não há um sistema operacional neste dispositivo de armazenamento. O que você gostaria de fazer?<br/>Você poderá revisar e confirmar suas opções antes que as alterações sejam feitas no dispositivo de armazenamento. @@ -432,17 +461,17 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. ClearMountsJob - + Clear mounts for partitioning operations on %1 Limpar as montagens para as operações nas partições em %1 - + Clearing mounts for partitioning operations on %1. Limpando montagens para operações de particionamento em %1. - + Cleared all mounts for %1 Todos os pontos de montagem para %1 foram limpos @@ -473,20 +502,26 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. CommandList - + + Could not run command. Não foi possível executar o comando. - - No rootMountPoint is defined, so command cannot be run in the target environment. - O comando não pode ser executado no ambiente de destino porque o rootMontPoint não foi definido. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + O comando é executado no ambiente do hospedeiro e precisa saber o caminho root, mas nenhum rootMountPoint foi definido. + + + + The command needs to know the user's name, but no username is defined. + O comando precisa saber do nome do usuário, mas nenhum nome de usuário foi definido. ContextualProcessJob - + Contextual Processes Job Tarefa de Processos Contextuais @@ -544,27 +579,27 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.&Tamanho: - + En&crypt &Criptografar - + Logical Lógica - + Primary Primária - + GPT GPT - + Mountpoint already in use. Please select another one. Ponto de montagem já em uso. Por favor, selecione outro. @@ -646,70 +681,40 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. CreateUserJob - + Create user %1 Criar usuário %1 - + Create user <strong>%1</strong>. Criar usuário <strong>%1</strong>. - + Creating user %1. Criando usuário %1. - + Sudoers dir is not writable. O diretório do sudoers não é gravável. - + Cannot create sudoers file for writing. Não foi possível criar arquivo sudoers para gravação. - + Cannot chmod sudoers file. Não foi possível utilizar chmod no arquivo sudoers. - + Cannot open groups file for reading. Não foi possível abrir arquivo de grupos para leitura. - - - Cannot create user %1. - Impossível criar o usuário %1. - - - - useradd terminated with error code %1. - useradd terminou com código de erro %1. - - - - Cannot add user %1 to groups: %2. - Não foi possível adicionar o usuário %1 aos grupos: %2. - - - - usermod terminated with error code %1. - O usermod terminou com o código de erro %1. - - - - Cannot set home directory ownership for user %1. - Impossível definir proprietário da pasta pessoal para o usuário %1. - - - - chown terminated with error code %1. - chown terminou com código de erro %1. - DeletePartitionJob @@ -796,7 +801,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -854,7 +859,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.Marcadores: - + Mountpoint already in use. Please select another one. Ponto de montagem já em uso. Por favor, selecione outro. @@ -943,12 +948,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.&Reiniciar agora - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Tudo pronto.</h1><br/>%1 foi instalado no seu computador.<br/>Agora você pode reiniciar seu novo sistema ou continuar usando o ambiente Live %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>A instalação falhou</h1><br/>%1 não foi instalado em seu computador.<br/>A mensagem de erro foi: %2. @@ -1023,12 +1028,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. KeyboardPage - + Set keyboard model to %1.<br/> Definir o modelo de teclado para %1.<br/> - + Set keyboard layout to %1/%2. Definir o layout do teclado para %1/%2. @@ -1072,64 +1077,64 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.Formulário - + I accept the terms and conditions above. Aceito os termos e condições acima. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Termos de licença</h1>Este procedimento de configuração irá instalar software proprietário, que está sujeito aos termos de licenciamento. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor, revise os acordos de licença de usuário final (EULAs) acima.<br/>Se você não concordar com os termos, o procedimento de configuração não pode continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Termos de licença</h1>Este procedimento de instalação pode instalar o software proprietário, que está sujeito a termos de licenciamento, a fim de fornecer recursos adicionais e melhorar a experiência do usuário. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor, revise os acordos de licença de usuário final (EULAs) acima.<br/>Se você não concordar com os termos, o software proprietário não será instalado e as alternativas de código aberto serão utilizadas em seu lugar. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>driver %1</strong><br/>por %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>driver gráfico %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>plugin do navegador %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>codec %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>pacote %1</strong><br/><font color="Grey">por %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">por %2</font> - + <a href="%1">view license agreement</a> <a href="%1">mostrar termos de licença</a> @@ -1185,12 +1190,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. LocaleViewStep - + Loading location data... Carregando dados de localização... - + Location Localização @@ -1198,22 +1203,22 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. NetInstallPage - + Name Nome - + Description Descrição - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalação pela Rede. (Desabilitada: Não foi possível adquirir lista de pacotes, verifique sua conexão com a internet) - + Network Installation. (Disabled: Received invalid groups data) Instalação pela Rede. (Desabilitado: Recebidos dados de grupos inválidos) @@ -1221,7 +1226,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. NetInstallViewStep - + Package selection Seleção de pacotes @@ -1229,242 +1234,242 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. PWQ - + Password is too short A senha é muito curta - + Password is too long A senha é muito longa - + Password is too weak A senha é muito fraca - + Memory allocation error when setting '%1' Erro de alocação de memória ao definir '% 1' - + Memory allocation error Erro de alocação de memória - + The password is the same as the old one A senha é a mesma que a antiga - + The password is a palindrome A senha é um palíndromo - + The password differs with case changes only A senha difere apenas com mudanças entre maiúsculas ou minúsculas - + The password is too similar to the old one A senha é muito semelhante à antiga - + The password contains the user name in some form A senha contém o nome de usuário em alguma forma - + The password contains words from the real name of the user in some form A senha contém palavras do nome real do usuário em alguma forma - + The password contains forbidden words in some form A senha contém palavras proibidas de alguma forma - + The password contains less than %1 digits A senha contém menos de %1 dígitos - + The password contains too few digits A senha contém poucos dígitos - + The password contains less than %1 uppercase letters A senha contém menos que %1 letras maiúsculas - + The password contains too few uppercase letters A senha contém poucas letras maiúsculas - + The password contains less than %1 lowercase letters A senha contém menos que %1 letras minúsculas - + The password contains too few lowercase letters A senha contém poucas letras minúsculas - + The password contains less than %1 non-alphanumeric characters A senha contém menos que %1 caracteres não alfanuméricos - + The password contains too few non-alphanumeric characters A senha contém poucos caracteres não alfanuméricos - + The password is shorter than %1 characters A senha é menor que %1 caracteres - + The password is too short A senha é muito curta - + The password is just rotated old one A senha é apenas uma antiga modificada - + The password contains less than %1 character classes A senha contém menos de %1 tipos de caracteres - + The password does not contain enough character classes A senha não contém tipos suficientes de caracteres - + The password contains more than %1 same characters consecutively A senha contém mais que %1 caracteres iguais consecutivamente - + The password contains too many same characters consecutively A senha contém muitos caracteres iguais consecutivamente - + The password contains more than %1 characters of the same class consecutively A senha contém mais que %1 caracteres do mesmo tipo consecutivamente - + The password contains too many characters of the same class consecutively A senha contém muitos caracteres da mesma classe consecutivamente - + The password contains monotonic sequence longer than %1 characters A senha contém uma sequência monotônica com mais de %1 caracteres - + The password contains too long of a monotonic character sequence A senha contém uma sequência de caracteres monotônicos muito longa - + No password supplied Nenhuma senha fornecida - + Cannot obtain random numbers from the RNG device Não é possível obter números aleatórios do dispositivo RNG - + Password generation failed - required entropy too low for settings A geração de senha falhou - a entropia requerida é muito baixa para as configurações - + The password fails the dictionary check - %1 A senha falhou na verificação do dicionário - %1 - + The password fails the dictionary check A senha falhou na verificação do dicionário - + Unknown setting - %1 Configuração desconhecida - %1 - + Unknown setting Configuração desconhecida - + Bad integer value of setting - %1 Valor de número inteiro errado na configuração - %1 - + Bad integer value Valor de número inteiro errado - + Setting %1 is not of integer type A configuração %1 não é do tipo inteiro - + Setting is not of integer type A configuração não é de tipo inteiro - + Setting %1 is not of string type A configuração %1 não é do tipo string - + Setting is not of string type - A configuração não é de tipo string + A configuração não é do tipo string - + Opening the configuration file failed Falha ao abrir o arquivo de configuração - + The configuration file is malformed O arquivo de configuração está defeituoso - + Fatal failure Falha fatal - + Unknown error Erro desconhecido @@ -1514,7 +1519,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. <small>If more than one person will use this computer, you can set up multiple accounts after installation.</small> - <small>Se mais de uma pessoa usará este computador, você pode definir múltiplas contas após a instalação.</small> + <small>Se mais de uma pessoa utilizará este computador, você pode definir múltiplas contas após a instalação.</small> @@ -1534,7 +1539,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. <small>This name will be used if you make the computer visible to others on a network.</small> - <small>Este nome será usado caso você deixe o computador visível a outros na rede.</small> + <small>Esse nome será usado caso você deixe o computador visível a outros na rede.</small> @@ -1603,34 +1608,34 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. PartitionModel - - + + Free Space Espaço livre - - + + New partition Nova partição - + Name Nome - + File System Sistema de arquivos - + Mount Point Ponto de montagem - + Size Tamanho @@ -1659,8 +1664,8 @@ A instalação pode continuar, mas alguns recursos podem ser desativados. - &Create - &Criar + Cre&ate + Cri&ar @@ -1678,105 +1683,115 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.Insta&lar o gerenciador de inicialização em: - + Are you sure you want to create a new partition table on %1? Você tem certeza de que deseja criar uma nova tabela de partições em %1? + + + Can not create new partition + Não foi possível criar uma nova partição + + + + 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. + A tabela de partições %1 já tem %2 partições primárias, e nenhuma a mais pode ser adicionada. Por favor, remova uma partição primária e adicione uma partição estendida no lugar. + PartitionViewStep - + Gathering system information... Coletando informações do sistema... - + Partitions Partições - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>ao lado de</strong> outro sistema operacional. - + <strong>Erase</strong> disk and install %1. <strong>Apagar</strong> disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Substituir</strong> uma partição com %1. - + <strong>Manual</strong> partitioning. Particionamento <strong>manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>ao lado de</strong> outro sistema operacional no disco <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Apagar</strong> disco <strong>%2</strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Substituir</strong> uma partição no disco <strong>%2</strong> (%3) com %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionamento <strong>manual</strong> no disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Atualmente: - + After: Depois: - + No EFI system partition configured Nenhuma partição de sistema EFI configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Uma partição de sistema EFI é necessária para iniciar %1.<br/><br/>Para configurar uma partição de sistema EFI, volte, selecione ou crie um sistema de arquivos FAT32 com o marcador <strong>esp</strong> ativado e ponto de montagem <strong>%2</strong>.<br/><br/>Você pode continuar sem definir uma partição de sistema EFI, mas seu sistema pode não iniciar. - + EFI system partition flag not set Marcador da partição do sistema EFI não definida - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Uma partição de sistema EFI é necessária para iniciar %1.<br/><br/>Uma partição foi configurada com o ponto de montagem <strong>%2</strong>, mas seu marcador <strong>esp</strong> não foi definido.<br/>Para definir o marcador, volte e edite a partição.<br/><br/>Você pode continuar sem definir um marcador, mas seu sistema pode não iniciar. - + Boot partition not encrypted Partição de boot não criptografada - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Uma partição de inicialização separada foi configurada juntamente com uma partição raiz criptografada, mas a partição de inicialização não é criptografada.<br/><br/>Há preocupações de segurança quanto a esse tipo de configuração, porque arquivos de sistema importantes são mantidos em uma partição não criptografada.<br/>Você pode continuar se quiser, mas o desbloqueio do sistema de arquivos acontecerá mais tarde durante a inicialização do sistema.<br/>Para criptografar a partição de inicialização, volte e recrie-a, selecionando <strong>Criptografar</strong> na janela de criação da partição. @@ -1808,30 +1823,48 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.Substituto - - 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. - Por favor, escolha o tema para o Desktop KDE Plasma. Você também pode pular esta etapa e configurar o tema assim que o sistema for instalado. + + 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. + Por favor escolha um estilo visual para o Desktop KDE Plasma. Você também pode pular esse passo e configurar o estilo visual quando o sistema estiver instalado. Ao clicar na seleção de estilo visual será possível visualizar um preview daquele estilo visual. PlasmaLnfViewStep - + Look-and-Feel Tema + + PreserveFiles + + + Saving files for later ... + Salvando arquivos para mais tarde... + + + + No files configured to save for later. + Nenhum arquivo configurado para ser salvo mais tarde. + + + + Not all of the configured files could be preserved. + Nem todos os arquivos configurados puderam ser preservados. + + ProcessResult - + There was no output from the command. Não houve saída do comando. - + Output: @@ -1840,52 +1873,52 @@ Saída: - + External command crashed. O comando externo falhou. - + Command <i>%1</i> crashed. O comando <i>%1</i> falhou. - + External command failed to start. O comando externo falhou ao iniciar. - + Command <i>%1</i> failed to start. O comando <i>%1</i> falhou ao iniciar. - + Internal error when starting command. Erro interno ao iniciar o comando. - + Bad parameters for process job call. Parâmetros ruins para a chamada da tarefa do processo. - + External command failed to finish. O comando externo falhou ao finalizar. - + Command <i>%1</i> failed to finish in %2 seconds. O comando <i>%1</i> falhou ao finalizar em %2 segundos. - + External command finished with errors. O comando externo foi concluído com erros. - + Command <i>%1</i> finished with exit code %2. O comando <i>%1</i> foi concluído com o código %2. @@ -1904,22 +1937,22 @@ Saída: Padrão - + unknown desconhecido - + extended estendida - + unformatted não formatado - + swap swap @@ -2012,52 +2045,52 @@ Saída: Coletando informações do sistema... - + has at least %1 GB available drive space tenha pelo menos %1 GB de espaço disponível no dispositivo - + There is not enough drive space. At least %1 GB is required. Não há espaço suficiente no armazenamento. Pelo menos %1 GB é necessário. - + has at least %1 GB working memory tenha pelo menos %1 GB de memória - + The system does not have enough working memory. At least %1 GB is required. O sistema não tem memória de trabalho suficiente. Pelo menos %1 GB é necessário. - + is plugged in to a power source está conectado a uma fonte de energia - + The system is not plugged in to a power source. O sistema não está conectado a uma fonte de energia. - + is connected to the Internet está conectado à Internet - + The system is not connected to the Internet. O sistema não está conectado à Internet. - + The installer is not running with administrator rights. O instalador não está sendo executado com permissões de administrador. - + The screen is too small to display the installer. A tela é muito pequena para exibir o instalador. @@ -2101,29 +2134,29 @@ Saída: SetHostNameJob - + Set hostname %1 Definir nome da máquina %1 - + Set hostname <strong>%1</strong>. Definir nome da máquina <strong>%1</strong>. - + Setting hostname %1. - Definindo nome da máquina %1 + Definindo nome da máquina %1. - - + + Internal Error Erro interno - - + + Cannot write hostname to target system Não é possível gravar o nome da máquina para o sistema alvo @@ -2251,7 +2284,7 @@ Saída: Setting password for user %1. - Definindo senha para usuário %1 + Definindo senha para usuário %1. @@ -2330,6 +2363,15 @@ Saída: Processos de trabalho do Shell + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2500,7 +2542,7 @@ Saída: UsersViewStep - + Users Usuários @@ -2545,7 +2587,7 @@ Saída: <h1>Welcome to the Calamares installer for %1.</h1> - <h1>Bem-vindo ao instalador da Calamares para %1.</h1> + <h1>Bem-vindo ao instalador Calamares para %1.</h1> @@ -2555,10 +2597,10 @@ Saída: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - <h1>%1</h1><br/><strong>%2<br/>para %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Agradecimentos a: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg e às <a href="https://www.transifex.com/calamares/calamares/">equipes de tradutores do Calamares</a>.<br/><br/>O desenvolvimento do <a href="https://calamares.io/">Calamares</a> tem apoio de <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. + <h1>%1</h1><br/><strong>%2<br/>para %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Agradecimentos a: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg e às <a href="https://www.transifex.com/calamares/calamares/">equipes de tradução do Calamares</a>.<br/><br/>O desenvolvimento do <a href="https://calamares.io/">Calamares</a> tem apoio de <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 suporte @@ -2566,7 +2608,7 @@ Saída: WelcomeViewStep - + Welcome Bem-vindo diff --git a/lang/calamares_pt_PT.ts b/lang/calamares_pt_PT.ts index 45370ddff..0afd8cc7a 100644 --- a/lang/calamares_pt_PT.ts +++ b/lang/calamares_pt_PT.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Página em Branco + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalar @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Concluído @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Correr comando %1 %2 - + Running command %1 %2 A executar comando %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Operação %1 em execução. - + Bad working directory path Caminho do directório de trabalho errado - + Working directory %1 for python job %2 is not readable. Directório de trabalho %1 para a tarefa python %2 não é legível. - + Bad main script file Ficheiro de script principal errado - + Main script file %1 for python job %2 is not readable. Ficheiro de script principal %1 para a tarefa python %2 não é legível. - + Boost.Python error in job "%1". Erro Boost.Python na tarefa "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Voltar - + + &Next &Próximo - - + + &Cancel &Cancelar - - + + Cancel installation without changing the system. Cancelar instalar instalação sem modificar o sistema. - + + Calamares Initialization Failed + Falha na Inicialização do Calamares + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 não pode ser instalado. O Calamares não foi capaz de carregar todos os módulos configurados. Isto é um problema da maneira como o Calamares é usado pela distribuição. + + + + <br/>The following modules could not be loaded: + <br/>Os módulos seguintes não puderam ser carregados: + + + + &Install + &Instalar + + + Cancel installation? Cancelar a instalação? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Tem a certeza que pretende cancelar o atual processo de instalação? O instalador será encerrado e todas as alterações serão perdidas. - + &Yes &Sim - + &No &Não - + &Close &Fechar - + Continue with setup? Continuar com a configuração? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> O %1 instalador está prestes a fazer alterações ao seu disco em ordem para instalar %2.<br/><strong>Não será capaz de desfazer estas alterações.</strong> - + &Install now &Instalar agora - + Go &back Voltar &atrás - + &Done &Feito - + The installation is complete. Close the installer. A instalação está completa. Feche o instalador. - + Error Erro - + Installation Failed Falha na Instalação @@ -430,17 +459,17 @@ O instalador será encerrado e todas as alterações serão perdidas. ClearMountsJob - + Clear mounts for partitioning operations on %1 Limpar montagens para operações de particionamento em %1 - + Clearing mounts for partitioning operations on %1. - A clarear montagens para operações de particionamento em %1. + A limpar montagens para operações de particionamento em %1. - + Cleared all mounts for %1 Limpar todas as montagens para %1 @@ -450,7 +479,7 @@ O instalador será encerrado e todas as alterações serão perdidas. Clear all temporary mounts. - Clarear todas as montagens temporárias. + Limpar todas as montagens temporárias. @@ -465,26 +494,32 @@ O instalador será encerrado e todas as alterações serão perdidas. Cleared all temporary mounts. - Clareadas todas as montagens temporárias. + Limpou todas as montagens temporárias. CommandList - + + Could not run command. Não foi possível correr o comando. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Não está definido o Ponto de Montagem root, portanto o comando não pode ser corrido no ambiente alvo. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + O comando corre no ambiente do host e precisa de conhecer o caminho root, mas nenhum Ponto de Montagem root está definido. + + + + The command needs to know the user's name, but no username is defined. + O comando precisa de saber o nome do utilizador, mas não está definido nenhum nome de utilizador. ContextualProcessJob - + Contextual Processes Job Tarefa de Processos Contextuais @@ -542,27 +577,27 @@ O instalador será encerrado e todas as alterações serão perdidas.Ta&manho: - + En&crypt En&criptar - + Logical Lógica - + Primary Primária - + GPT GPT - + Mountpoint already in use. Please select another one. Ponto de montagem já em uso. Por favor selecione outro. @@ -644,70 +679,40 @@ O instalador será encerrado e todas as alterações serão perdidas. CreateUserJob - + Create user %1 Criar utilizador %1 - + Create user <strong>%1</strong>. Criar utilizador <strong>%1</strong>. - + Creating user %1. A criar utilizador %1. - + Sudoers dir is not writable. O diretório dos super utilizadores não é gravável. - + Cannot create sudoers file for writing. Impossível criar ficheiro do super utilizador para escrita. - + Cannot chmod sudoers file. Impossível de usar chmod no ficheiro dos super utilizadores. - + Cannot open groups file for reading. Impossível abrir ficheiro dos grupos para leitura. - - - Cannot create user %1. - Não é possível criar utilizador %1. - - - - useradd terminated with error code %1. - useradd terminou com código de erro %1. - - - - Cannot add user %1 to groups: %2. - Não é possível adicionar o utilizador %1 aos grupos: %2. - - - - usermod terminated with error code %1. - usermod terminou com código de erro %1. - - - - Cannot set home directory ownership for user %1. - Impossível definir permissão da pasta pessoal para o utilizador %1. - - - - chown terminated with error code %1. - chown terminou com código de erro %1. - DeletePartitionJob @@ -794,7 +799,7 @@ O instalador será encerrado e todas as alterações serão perdidas. DummyCppJob - + Dummy C++ Job Tarefa Dummy C++ @@ -852,7 +857,7 @@ O instalador será encerrado e todas as alterações serão perdidas.Flags: - + Mountpoint already in use. Please select another one. Ponto de montagem já em uso. Por favor selecione outro. @@ -941,12 +946,12 @@ O instalador será encerrado e todas as alterações serão perdidas.&Reiniciar agora - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Tudo feito</h1><br/>%1 foi instalado no seu computador.<br/>Pode agora reiniciar para o seu novo sistema, ou continuar a usar o %2 ambiente Live. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalação Falhada</h1><br/>%1 não foi instalado no seu computador.<br/>A mensagem de erro foi: %2. @@ -1021,12 +1026,12 @@ O instalador será encerrado e todas as alterações serão perdidas. KeyboardPage - + Set keyboard model to %1.<br/> Definir o modelo do teclado para %1.<br/> - + Set keyboard layout to %1/%2. Definir esquema do teclado para %1/%2. @@ -1070,64 +1075,64 @@ O instalador será encerrado e todas as alterações serão perdidas.Formulário - + I accept the terms and conditions above. Aceito os termos e condições acima descritos. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acordo de Licença</h1>Este procedimento instalará programas proprietários que estão sujeitos a termos de licenciamento. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Por favor reveja o Acordo de Utilização do Utilizador Final (EULA) acima.<br/>Se não concordar com os termos, o procedimento de instalação não pode continuar. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acordo de Licença</h1>Este procedimento pode instalar programas proprietários que estão sujeitos a termos de licenciamento com vista a proporcionar funcionalidades adicionais e melhorar a experiência do utilizador. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Por favor reveja o Acordo de Utilização do Utilizador Final (EULA) acima.<br/>Se não concordar com os termos, programas proprietários não serão instalados, e em vez disso serão usadas soluções alternativas de código aberto. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 controlador</strong><br/>por %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 controlador gráfico</strong><br/><font color="Grey">por %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 extra para navegador</strong><br/><font color="Grey">por %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">por %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 pacote</strong><br/><font color="Grey">por %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">por %2</font> - + <a href="%1">view license agreement</a> <a href="%1">visualizar acordo de licença</a> @@ -1183,12 +1188,12 @@ O instalador será encerrado e todas as alterações serão perdidas. LocaleViewStep - + Loading location data... A carregar dados de localização... - + Location Localização @@ -1196,22 +1201,22 @@ O instalador será encerrado e todas as alterações serão perdidas. NetInstallPage - + Name Nome - + Description Descrição - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalaçao de Rede. (Desativada: Incapaz de buscar listas de pacotes, verifique a sua ligação de rede) - + Network Installation. (Disabled: Received invalid groups data) Instalação de Rede. (Desativada: Recebeu dados de grupos inválidos) @@ -1219,7 +1224,7 @@ O instalador será encerrado e todas as alterações serão perdidas. NetInstallViewStep - + Package selection Seleção de pacotes @@ -1227,242 +1232,242 @@ O instalador será encerrado e todas as alterações serão perdidas. PWQ - + Password is too short A palavra-passe é demasiado curta - + Password is too long A palavra-passe é demasiado longa - + Password is too weak A palavra-passe é demasiado fraca - + Memory allocation error when setting '%1' Erro de alocação de memória quando definido '%1' - + Memory allocation error Erro de alocação de memória - + The password is the same as the old one A palavra-passe é a mesma que a antiga - + The password is a palindrome A palavra-passe é um palíndromo - + The password differs with case changes only A palavra-passe difere com apenas diferenças de maiúsculas e minúsculas - + The password is too similar to the old one A palavra-passe é demasiado semelhante à antiga - + The password contains the user name in some form A palavra passe contém de alguma forma o nome do utilizador - + The password contains words from the real name of the user in some form A palavra passe contém de alguma forma palavras do nome real do utilizador - + The password contains forbidden words in some form A palavra-passe contém de alguma forma palavras proibidas - + The password contains less than %1 digits A palavra-passe contém menos de %1 dígitos - + The password contains too few digits A palavra-passe contém muito poucos dígitos - + The password contains less than %1 uppercase letters A palavra-passe contém menos de %1 letras maiúsculas - + The password contains too few uppercase letters A palavra-passe contém muito poucas letras maiúsculas - + The password contains less than %1 lowercase letters A palavra-passe contém menos de %1 letras minúsculas - + The password contains too few lowercase letters A palavra-passe contém muito poucas letras minúsculas - + The password contains less than %1 non-alphanumeric characters A palavra-passe contém menos de %1 carateres não-alfanuméricos - + The password contains too few non-alphanumeric characters A palavra-passe contém muito pouco carateres não alfa-numéricos - + The password is shorter than %1 characters A palavra-passe é menor do que %1 carateres - + The password is too short A palavra-passe é demasiado pequena - + The password is just rotated old one A palavra-passe é apenas uma antiga alternada - + The password contains less than %1 character classes A palavra-passe contém menos de %1 classe de carateres - + The password does not contain enough character classes A palavra-passe não contém classes de carateres suficientes - + The password contains more than %1 same characters consecutively A palavra-passe contém apenas mais do que %1 carateres iguais consecutivos - + The password contains too many same characters consecutively A palavra-passe contém demasiados carateres iguais consecutivos - + The password contains more than %1 characters of the same class consecutively A palavra-passe contém mais do que %1 carateres consecutivos da mesma classe - + The password contains too many characters of the same class consecutively A palavra-passe contém demasiados carateres consecutivos da mesma classe - + The password contains monotonic sequence longer than %1 characters A palavra-passe contém sequência mono tónica mais longa do que %1 carateres - + The password contains too long of a monotonic character sequence A palavra-passe contém uma sequência mono tónica de carateres demasiado longa - + No password supplied Nenhuma palavra-passe fornecida - + Cannot obtain random numbers from the RNG device Não é possível obter sequência aleatória de números a partir do dispositivo RNG - + Password generation failed - required entropy too low for settings Geração de palavra-passe falhada - entropia obrigatória demasiado baixa para definições - + The password fails the dictionary check - %1 A palavra-passe falha a verificação do dicionário - %1 - + The password fails the dictionary check A palavra-passe falha a verificação do dicionário - + Unknown setting - %1 Definição desconhecida - %1 - + Unknown setting Definição desconhecida - + Bad integer value of setting - %1 Valor inteiro incorreto para definição - %1 - + Bad integer value Valor inteiro incorreto - + Setting %1 is not of integer type Definição %1 não é do tipo inteiro - + Setting is not of integer type Definição não é do tipo inteiro - + Setting %1 is not of string type Definição %1 não é do tipo cadeia de carateres - + Setting is not of string type Definição não é do tipo cadeira de carateres - + Opening the configuration file failed Abertura da configuração de ficheiro falhou - + The configuration file is malformed O ficheiro de configuração está mal formado - + Fatal failure Falha fatal - + Unknown error Erro desconhecido @@ -1601,34 +1606,34 @@ O instalador será encerrado e todas as alterações serão perdidas. PartitionModel - - + + Free Space Espaço Livre - - + + New partition Nova partição - + Name Nome - + File System Sistema de Ficheiros - + Mount Point Ponto de Montagem - + Size Tamanho @@ -1657,8 +1662,8 @@ O instalador será encerrado e todas as alterações serão perdidas. - &Create - &Criar + Cre&ate + Cri&ar @@ -1676,105 +1681,115 @@ O instalador será encerrado e todas as alterações serão perdidas.Instalar &carregador de arranque em: - + Are you sure you want to create a new partition table on %1? Tem certeza de que deseja criar uma nova tabela de partições em %1? + + + Can not create new partition + Não é possível criar nova partição + + + + 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. + A tabela de partições em %1 já tem %2 partições primárias, e não podem ser adicionadas mais. Em vez disso, por favor remova uma partição primária e adicione uma partição estendida. + PartitionViewStep - + Gathering system information... A recolher informações do sistema... - + Partitions Partições - + Install %1 <strong>alongside</strong> another operating system. Instalar %1 <strong>paralelamente</strong> a outro sistema operativo. - + <strong>Erase</strong> disk and install %1. <strong>Apagar</strong> disco e instalar %1. - + <strong>Replace</strong> a partition with %1. <strong>Substituir</strong> a partição com %1. - + <strong>Manual</strong> partitioning. Particionamento <strong>Manual</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalar %1 <strong>paralelamente</strong> a outro sistema operativo no disco <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Apagar</strong> disco <strong>%2</strong> (%3) e instalar %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Substituir</strong> a partição no disco <strong>%2</strong> (%3) com %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Particionamento <strong>Manual</strong> no disco <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disco <strong>%1</strong> (%2) - + Current: Atual: - + After: Depois: - + No EFI system partition configured Nenhuma partição de sistema EFI configurada - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. É necessária uma partição de sistema EFI para iniciar %1.<br/><br/>Para configurar uma partição de sistema EFI, volte atrás e selecione ou crie um sistema de ficheiros FAT32 com a flag <strong>esp</strong> ativada e ponto de montagem <strong>%2</strong>.<br/><br/>Pode continuar sem configurar uma partição de sistema EFI mas o seu sistema pode falhar o arranque. - + EFI system partition flag not set flag não definida da partição de sistema EFI - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. É necessária uma partição de sistema EFI para iniciar %1.<br/><br/>A partitição foi configurada com o ponto de montagem <strong>%2</strong> mas a sua flag <strong>esp</strong> não está definida.<br/>Para definir a flag, volte atrás e edite a partição.<br/><br/>Pode continuar sem definir a flag mas o seu sistema pode falhar o arranque. - + Boot partition not encrypted Partição de arranque não encriptada - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Foi preparada uma partição de arranque separada juntamente com uma partição root encriptada, mas a partição de arranque não está encriptada.<br/><br/>Existem preocupações de segurança com este tipo de configuração, por causa de importantes ficheiros de sistema serem guardados numa partição não encriptada.<br/>Se desejar pode continuar, mas o destrancar do sistema de ficheiros irá ocorrer mais tarde durante o arranque do sistema.<br/>Para encriptar a partição de arranque, volte atrás e recrie-a, e selecione <strong>Encriptar</strong> na janela de criação de partições. @@ -1806,30 +1821,48 @@ O instalador será encerrado e todas as alterações serão perdidas.Espaço reservado - - 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. - Por favor escolha uma aparência para o Ambiente de Trabalho KDE Plasma. Também pode saltar este passo e configurar a aparência depois do sistema instalado. + + 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. + Por favor escolha a aparência para o Ambiente de Trabalho KDE Plasma. Pode também saltar este passo e configurar a aparência uma vez instalado o sistema. Ao clicar numa seleção de aparência irá ter uma pré-visualização ao vivo dessa aparência. PlasmaLnfViewStep - + Look-and-Feel Aparência + + PreserveFiles + + + Saving files for later ... + A guardar ficheiros para mais tarde ... + + + + No files configured to save for later. + Nenhuns ficheiros configurados para guardar para mais tarde. + + + + Not all of the configured files could be preserved. + Nem todos os ficheiros configurados puderam ser preservados. + + ProcessResult - + There was no output from the command. O comando não produziu saída de dados. - + Output: @@ -1838,52 +1871,52 @@ Saída de Dados: - + External command crashed. O comando externo "crashou". - + Command <i>%1</i> crashed. Comando <i>%1</i> "crashou". - + External command failed to start. Comando externo falhou ao iniciar. - + Command <i>%1</i> failed to start. Comando <i>%1</i> falhou a inicialização. - + Internal error when starting command. Erro interno ao iniciar comando. - + Bad parameters for process job call. Maus parâmetros para chamada de processamento de tarefa. - + External command failed to finish. Comando externo falhou a finalização. - + Command <i>%1</i> failed to finish in %2 seconds. Comando <i>%1</i> falhou ao finalizar em %2 segundos. - + External command finished with errors. Comando externo finalizou com erros. - + Command <i>%1</i> finished with exit code %2. Comando <i>%1</i> finalizou com código de saída %2. @@ -1902,22 +1935,22 @@ Saída de Dados: Padrão - + unknown desconhecido - + extended estendido - + unformatted não formatado - + swap swap @@ -2010,52 +2043,52 @@ Saída de Dados: A recolher informação de sistema... - + has at least %1 GB available drive space tem pelo menos %1 GB de espaço livre em disco - + There is not enough drive space. At least %1 GB is required. Não existe espaço livre suficiente em disco. É necessário pelo menos %1 GB. - + has at least %1 GB working memory tem pelo menos %1 GB de memória disponível - + The system does not have enough working memory. At least %1 GB is required. O sistema não tem memória disponível suficiente. É necessário pelo menos %1 GB. - + is plugged in to a power source está ligado a uma fonte de energia - + The system is not plugged in to a power source. O sistema não está ligado a uma fonte de energia. - + is connected to the Internet está ligado à internet - + The system is not connected to the Internet. O sistema não está ligado à internet. - + The installer is not running with administrator rights. O instalador não está a correr com permissões de administrador. - + The screen is too small to display the installer. O ecrã tem um tamanho demasiado pequeno para mostrar o instalador. @@ -2099,29 +2132,29 @@ Saída de Dados: SetHostNameJob - + Set hostname %1 Configurar nome da máquina %1 - + Set hostname <strong>%1</strong>. Definir nome da máquina <strong>%1</strong>. - + Setting hostname %1. A definir nome da máquina %1. - - + + Internal Error Erro interno - - + + Cannot write hostname to target system Não é possível escrever o nome da máquina para o sistema selecionado @@ -2328,6 +2361,15 @@ Saída de Dados: Tarefa de Processos da Shell + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2498,7 +2540,7 @@ Saída de Dados: UsersViewStep - + Users Utilizadores @@ -2533,7 +2575,7 @@ Saída de Dados: &About - &Sobre + &Acerca @@ -2548,7 +2590,7 @@ Saída de Dados: About %1 installer - Sobre %1 instalador + Acerca %1 instalador @@ -2556,7 +2598,7 @@ Saída de Dados: <h1>%1</h1><br/><strong>%2<br/>para %3</strong><br/><br/>Direitos de cópia 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Direitos de cópia 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Agradecimentos a: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg e à <a href="https://www.transifex.com/calamares/calamares/">equipa de tradutores do Calamares</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> desenvolvimento patrocinado por <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 suporte @@ -2564,7 +2606,7 @@ Saída de Dados: WelcomeViewStep - + Welcome Bem-vindo diff --git a/lang/calamares_ro.ts b/lang/calamares_ro.ts index 58b0e3c24..7cd83d32a 100644 --- a/lang/calamares_ro.ts +++ b/lang/calamares_ro.ts @@ -4,7 +4,7 @@ The <strong>boot environment</strong> of this system.<br><br>Older x86 systems only support <strong>BIOS</strong>.<br>Modern systems usually use <strong>EFI</strong>, but may also show up as BIOS if started in compatibility mode. - <strong>Mediul de boot</strong> al acestui sistem.<br><br>Sisteme x86 mai vechi suportă numai <strong>BIOS</strong>.<br>Sisteme moderne folosesc de obicei <strong>EFI</strong>, dar ar putea fi afișate ca BIOS dacă au fost configurate în modul de compatibilitate. + <strong>Mediul de boot</strong> al acestui sistem.<br><br>Sistemele x86 mai vechi suportă numai <strong>BIOS</strong>.<br>Sisteme moderne folosesc de obicei <strong>EFI</strong>, dar ar putea fi afișate ca BIOS dacă au fost pornite în modul de compatibilitate. @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instalează @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Gata @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Rulează comanda %1 %2 - + Running command %1 %2 Se rulează comanda %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Se rulează operațiunea %1. - + Bad working directory path Calea dosarului de lucru este proastă - + Working directory %1 for python job %2 is not readable. Dosarul de lucru %1 pentru sarcina python %2 nu este citibil. - + Bad main script file Fișierul script principal este prost - + Main script file %1 for python job %2 is not readable. Fișierul script peincipal %1 pentru sarcina Python %2 nu este citibil. - + Boost.Python error in job "%1". Eroare Boost.Python în sarcina „%1”. @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Înapoi - + + &Next &Următorul - - + + &Cancel &Anulează - - + + Cancel installation without changing the system. Anulează instalarea fără schimbarea sistemului. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + Instalează + + + Cancel installation? Anulez instalarea? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Doriți să anulați procesul curent de instalare? Programul de instalare va ieși, iar toate modificările vor fi pierdute. - + &Yes &Da - + &No &Nu - + &Close În&chide - + Continue with setup? Continuați configurarea? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Programul de instalare %1 este pregătit să facă schimbări pe discul dumneavoastră pentru a instala %2.<br/><strong>Nu veți putea anula aceste schimbări.</strong> - + &Install now &Instalează acum - + Go &back Î&napoi - + &Done &Gata - + The installation is complete. Close the installer. Instalarea este completă. Închide instalatorul. - + Error Eroare - + Installation Failed Instalare eșuată @@ -430,17 +459,17 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. ClearMountsJob - + Clear mounts for partitioning operations on %1 Eliminați montările pentru operațiunea de partiționare pe %1 - + Clearing mounts for partitioning operations on %1. Se elimină montările pentru operațiunile de partiționare pe %1. - + Cleared all mounts for %1 S-au eliminat toate punctele de montare pentru %1 @@ -471,20 +500,26 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. CommandList - + + Could not run command. Nu s-a putut executa comanda. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Nu este definit niciun rootMountPoint, așadar comanda nu a putut fi executată în mediul dorit. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. + ContextualProcessJob - + Contextual Processes Job Job de tip Contextual Process @@ -542,27 +577,27 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Mă&rime: - + En&crypt &Criptează - + Logical Logică - + Primary Primară - + GPT GPT - + Mountpoint already in use. Please select another one. Punct de montare existent. Vă rugăm alegeţi altul. @@ -644,70 +679,40 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. CreateUserJob - + Create user %1 Creează utilizatorul %1 - + Create user <strong>%1</strong>. Creează utilizatorul <strong>%1</strong>. - + Creating user %1. Se creează utilizator %1. - + Sudoers dir is not writable. Nu se poate scrie în dosarul sudoers. - + Cannot create sudoers file for writing. Nu se poate crea fișierul sudoers pentru scriere. - + Cannot chmod sudoers file. Nu se poate chmoda fișierul sudoers. - + Cannot open groups file for reading. Nu se poate deschide fișierul groups pentru citire. - - - Cannot create user %1. - Nu se poate crea utilizatorul %1. - - - - useradd terminated with error code %1. - useradd s-a terminat cu codul de eroare %1. - - - - Cannot add user %1 to groups: %2. - Nu s-a reușit adăugarea utilizatorului %1 la grupurile: %2 - - - - usermod terminated with error code %1. - usermod s-a terminat cu codul de eroare %1. - - - - Cannot set home directory ownership for user %1. - Nu se poate seta apartenența dosarului home pentru utilizatorul %1. - - - - chown terminated with error code %1. - chown s-a terminat cu codul de eroare %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -852,7 +857,7 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Flags: - + Mountpoint already in use. Please select another one. Punct de montare existent. Vă rugăm alegeţi altul. @@ -941,12 +946,12 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.&Repornește acum - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Gata.</h1><br/>%1 a fost instalat pe calculatorul dumneavoastră.<br/>Puteți reporni noul sistem, sau puteți continua să folosiți sistemul de operare portabil %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalarea a eșuat</h1><br/>%1 nu a mai fost instalat pe acest calculator.<br/>Mesajul de eroare era: %2. @@ -1021,12 +1026,12 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. KeyboardPage - + Set keyboard model to %1.<br/> Setează modelul tastaturii la %1.<br/> - + Set keyboard layout to %1/%2. Setează aranjamentul de tastatură la %1/%2. @@ -1070,64 +1075,64 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Formular - + I accept the terms and conditions above. Sunt de acord cu termenii și condițiile de mai sus. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Acord de licențiere</h1>Această procedură va instala software proprietar supus unor termeni de licențiere. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Vă rugăm să citiți Licența de utilizare (EULA) de mai sus.<br>Dacă nu sunteți de acord cu termenii, procedura de instalare nu poate continua. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Acord de licențiere</h1>Această procedură de instalare poate instala software proprietar supus unor termeni de licențiere, pentru a putea oferi funcții suplimentare și pentru a îmbunătăți experiența utilizatorilor. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Vă rugăm să citiți Licența de utilizare (EULA) de mai sus.<br/>Dacă nu sunteți de acord cu termenii, softwareul proprietar nu va fi instalat și se vor folosi alternative open-source în loc. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 driver</strong><br/>de %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 driver grafic</strong><br/><font color="Grey">de %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 plugin de browser</strong><br/><font color="Grey">de %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">de %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 pachet</strong><br/><font color="Grey">de %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">de %2</font> - + <a href="%1">view license agreement</a> <a href="%1">vezi acordul de licențiere</a> @@ -1183,12 +1188,12 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. LocaleViewStep - + Loading location data... Se încarcă datele locației... - + Location Locație @@ -1196,22 +1201,22 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. NetInstallPage - + Name Nume - + Description Despre - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalarea rețelei. (Dezactivat: Nu se pot obține listele de pachete, verificați conexiunea la rețea) - + Network Installation. (Disabled: Received invalid groups data) Instalare prin rețea. (Dezactivată: S-au recepționat grupuri de date invalide) @@ -1219,7 +1224,7 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. NetInstallViewStep - + Package selection Selecția pachetelor @@ -1227,244 +1232,247 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. PWQ - + Password is too short Parola este prea scurtă - + Password is too long Parola este prea lungă - + Password is too weak - + Parola este prea slabă - + Memory allocation error when setting '%1' - + Eroare de alocare a memorie in timpul setării '%1' - + Memory allocation error - + Eroare de alocare a memoriei - + The password is the same as the old one - + Parola este aceeasi a si cea veche - + The password is a palindrome - + Parola este un palindrom - + The password differs with case changes only - + Parola diferă doar prin schimbăarii ale majusculelor - + The password is too similar to the old one - + Parola este prea similară cu cea vehe - + The password contains the user name in some form - + Parola contine numele de utilizator intr-o anume formă - + The password contains words from the real name of the user in some form - + Parola contine cuvinte din numele real al utilizatorului intr-o anumita formă - + The password contains forbidden words in some form - + Parola contine cuvinte interzise int-o anumita formă - + The password contains less than %1 digits - + Parola contine mai putin de %1 caractere - + The password contains too few digits - + Parola contine prea putine caractere - + The password contains less than %1 uppercase letters - + Parola contine mai putin de %1 litera cu majusculă - + The password contains too few uppercase letters - + Parola contine prea putine majuscule - + The password contains less than %1 lowercase letters - + Parola contine mai putin de %1 minuscule - + The password contains too few lowercase letters - + Parola contine prea putine minuscule - + The password contains less than %1 non-alphanumeric characters - + Parola contine mai putin de %1 caractere non-alfanumerice - + The password contains too few non-alphanumeric characters - + Parola contine prea putine caractere non-alfanumerice + + + - + The password is shorter than %1 characters - + Parola este mai scurta de %1 caractere - + The password is too short - + Parola este prea mica - + The password is just rotated old one - + Parola este doar cea veche rasturnata - + The password contains less than %1 character classes - + Parola contine mai putin de %1 clase de caractere - + The password does not contain enough character classes - + Parola nu contine destule clase de caractere - + The password contains more than %1 same characters consecutively - + Parola ontine mai mult de %1 caractere identice consecutiv - + The password contains too many same characters consecutively - + Parola ontine prea multe caractere identice consecutive - + The password contains more than %1 characters of the same class consecutively - + Parola contine mai mult de %1 caractere ale aceleiaşi clase consecutive - + The password contains too many characters of the same class consecutively - + Parola contine prea multe caractere ale aceleiaşi clase consecutive - + The password contains monotonic sequence longer than %1 characters - + Parola ontine o secventa monotonica mai lunga de %1 caractere - + The password contains too long of a monotonic character sequence - + Parola contine o secventa de caractere monotonica prea lunga - + No password supplied - + Nicio parola nu a fost furnizata - + Cannot obtain random numbers from the RNG device - + Nu s-a putut obtine un numar aleator de la dispozitivul RNG - + Password generation failed - required entropy too low for settings - + Generarea parolei a esuat - necesita entropie prea mica pentru setari - + The password fails the dictionary check - %1 - + Parola a esuat verificarea dictionarului - %1 - + The password fails the dictionary check - + Parola a esuat verificarea dictionarului - + Unknown setting - %1 - + Setare necunoscuta - %1 - + Unknown setting - + Setare necunoscuta - + Bad integer value of setting - %1 - + Valoare gresita integrala a setari - %1 - + Bad integer value - + Valoare gresita integrala a setari - + Setting %1 is not of integer type - + Setarea %1 nu este de tip integral - + Setting is not of integer type - + Setarea nu este de tipul integral - + Setting %1 is not of string type - + Setarea %1 nu este de tipul şir - + Setting is not of string type - + Setarea nu este de tipul şir - + Opening the configuration file failed - + Deschiderea fisierului de configuratie a esuat - + The configuration file is malformed - + Fisierul de configuratie este malformat - + Fatal failure - + Esec fatal - + Unknown error - + Eroare necunoscuta @@ -1601,34 +1609,34 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. PartitionModel - - + + Free Space Spațiu liber - - + + New partition Partiție nouă - + Name Nume - + File System Sistem de fișiere - + Mount Point Punct de montare - + Size Mărime @@ -1657,8 +1665,8 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute. - &Create - &Crează + Cre&ate + @@ -1676,105 +1684,115 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Instalează boot&loaderul pe: - + Are you sure you want to create a new partition table on %1? Sigur doriți să creați o nouă tabelă de partiție pe %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Se adună informații despre sistem... - + Partitions Partiții - + Install %1 <strong>alongside</strong> another operating system. Instalează %1 <strong>laolaltă</strong> cu un alt sistem de operare. - + <strong>Erase</strong> disk and install %1. <strong>Șterge</strong> discul și instalează %1. - + <strong>Replace</strong> a partition with %1. <strong>Înlocuiește</strong> o partiție cu %1. - + <strong>Manual</strong> partitioning. Partiționare <strong>manuală</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instalează %1 <strong>laolaltă</strong> cu un alt sistem de operare pe discul <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Șterge</strong> discul <strong>%2</strong> (%3) și instalează %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Înlocuiește</strong> o partiție pe discul <strong>%2</strong> (%3) cu %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Partiționare <strong>manuală</strong> a discului <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Discul <strong>%1</strong> (%2) - + Current: Actual: - + After: După: - + No EFI system partition configured Nicio partiție de sistem EFI nu a fost configurată - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Este necesară o partiție de sistem EFI pentru a porni %1.<br/><br/>Pentru a configura o partiție de sistem EFI, reveniți și selectați sau creați o partiție FAT32 cu flag-ul <strong>esp</strong> activat și montată la <strong>%2</strong>.<br/><br/>Puteți continua și fără configurarea unei partiții de sistem EFI, dar este posibil ca sistemul să nu pornească. - + EFI system partition flag not set Flag-ul de partiție de sistem pentru EFI nu a fost setat - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. O partiție de sistem EFI este necesară pentru a porni %1.<br/><br/>A fost configurată o partiție cu punct de montare la <strong>%2</strong> dar flag-ul <strong>esp</strong> al acesteia nu a fost setat.<br/>Pentru a seta flag-ul, reveniți și editați partiția.<br/><br/>Puteți continua și fără setarea flag-ului, dar este posibil ca sistemul să nu pornească. - + Boot partition not encrypted Partiția de boot nu este criptată - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. A fost creată o partiție de boot împreună cu o partiție root criptată, dar partiția de boot nu este criptată.<br/><br/>Sunt potențiale probleme de securitate cu un astfel de aranjament deoarece importante fișiere de sistem sunt păstrate pe o partiție necriptată.<br/>Puteți continua dacă doriți, dar descuierea sistemului se va petrece mai târziu în timpul pornirii.<br/>Pentru a cripta partiția de boot, reveniți și recreați-o, alegând opțiunea <strong>Criptează</strong> din fereastra de creare de partiții. @@ -1806,29 +1824,48 @@ Programul de instalare va ieși, iar toate modificările vor fi pierdute.Substituent - - 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. - Trebuie să alegi o interfață pentru KDE Plasma Desktop Poți sări acest pas și să configurezi interfața și după instalarea sistemului. + + 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. + Alege un aspect pentru KDE Plasma Desktop. Deasemenea poti sari acest pas si configura aspetul odata ce sistemul este instalat. Apasand pe selectia aspectului iti va oferi o previzualizare live al acelui aspect. PlasmaLnfViewStep - + Look-and-Feel Interfață + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + +Nu a existat nici o iesire din comanda - + Output: @@ -1837,52 +1874,52 @@ Output - + External command crashed. Comanda externă a eșuat. - + Command <i>%1</i> crashed. Comanda <i>%1</i> a eșuat. - + External command failed to start. Comanda externă nu a putut fi pornită. - + Command <i>%1</i> failed to start. Comanda <i>%1</i> nu a putut fi pornită. - + Internal error when starting command. Eroare internă la pornirea comenzii. - + Bad parameters for process job call. Parametri proști pentru apelul sarcinii de proces. - + External command failed to finish. Finalizarea comenzii externe a eșuat. - + Command <i>%1</i> failed to finish in %2 seconds. Comanda <i>%1</i> nu a putut fi finalizată în %2 secunde. - + External command finished with errors. Comanda externă finalizată cu erori. - + Command <i>%1</i> finished with exit code %2. Comanda <i>%1</i> finalizată cu codul de ieșire %2. @@ -1901,22 +1938,22 @@ Output Implicit - + unknown necunoscut - + extended extins - + unformatted neformatat - + swap swap @@ -2009,52 +2046,52 @@ Output Se adună informații despre sistem... - + has at least %1 GB available drive space are cel puțin %1 spațiu disponibil - + There is not enough drive space. At least %1 GB is required. Nu este suficient spațiu disponibil. Sunt necesari cel puțin %1 GB. - + has at least %1 GB working memory are cel puțin %1 GB de memorie utilizabilă - + The system does not have enough working memory. At least %1 GB is required. Sistemul nu are suficientă memorie utilizabilă. Sunt necesari cel puțin %1 GB. - + is plugged in to a power source este alimentat cu curent - + The system is not plugged in to a power source. Sistemul nu este alimentat cu curent. - + is connected to the Internet este conectat la Internet - + The system is not connected to the Internet. Sistemul nu este conectat la Internet. - + The installer is not running with administrator rights. Programul de instalare nu rulează cu privilegii de administrator. - + The screen is too small to display the installer. Ecranu este prea mic pentru a afișa instalatorul. @@ -2098,29 +2135,29 @@ Output SetHostNameJob - + Set hostname %1 Setează hostname %1 - + Set hostname <strong>%1</strong>. Setați un hostname <strong>%1</strong>. - + Setting hostname %1. Se setează hostname %1. - - + + Internal Error Eroare internă - - + + Cannot write hostname to target system Nu se poate scrie hostname pe sistemul țintă @@ -2327,6 +2364,15 @@ Output Shell-ul procesează sarcina. + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2497,7 +2543,7 @@ Output UsersViewStep - + Users Utilizatori @@ -2555,7 +2601,7 @@ Output <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Mulțumiri: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg și <a href="https://www.transifex.com/calamares/calamares/">echipei de traducători Calamares</a>.<br/><br/><a href="https://calamares.io/">Calamares</a>, dezvoltare sponsorizată de <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support %1 suport @@ -2563,7 +2609,7 @@ Output WelcomeViewStep - + Welcome Bine ați venit diff --git a/lang/calamares_ru.ts b/lang/calamares_ru.ts index 3fc140067..2c05acdc9 100644 --- a/lang/calamares_ru.ts +++ b/lang/calamares_ru.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Пустая страница + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Установить @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Готово @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Выполнить команду %1 %2 - + Running command %1 %2 Выполняется команда %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Выполняется действие %1. - + Bad working directory path Неверный путь к рабочему каталогу - + Working directory %1 for python job %2 is not readable. Рабочий каталог %1 для задачи python %2 недоступен для чтения. - + Bad main script file Ошибочный главный файл сценария - + Main script file %1 for python job %2 is not readable. Главный файл сценария %1 для задачи python %2 недоступен для чтения. - + Boost.Python error in job "%1". Boost.Python ошибка в задаче "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back &Назад - + + &Next &Далее - - + + &Cancel О&тмена - - + + Cancel installation without changing the system. Отменить установку без изменения системы. - + + Calamares Initialization Failed + Ошибка инициализации Calamares + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + <br/>Не удалось загрузить следующие модули: + + + + &Install + &Установить + + + Cancel installation? Отменить установку? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Действительно прервать процесс установки? Программа установки сразу прекратит работу, все изменения будут потеряны. - + &Yes &Да - + &No &Нет - + &Close &Закрыть - + Continue with setup? Продолжить установку? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Программа установки %1 готова внести изменения на Ваш диск, чтобы установить %2.<br/><strong>Отменить эти изменения будет невозможно.</strong> - + &Install now Приступить к &установке - + Go &back &Назад - + &Done &Готово - + The installation is complete. Close the installer. Установка завершена. Закройте установщик. - + Error Ошибка - + Installation Failed Установка завершилась неудачей @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 Освободить точки монтирования для выполнения разметки на %1 - + Clearing mounts for partitioning operations on %1. Освобождаются точки монтирования для выполнения разметки на %1. - + Cleared all mounts for %1 Освобождены все точки монтирования для %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. Не удалось выполнить команду. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + The command needs to know the user's name, but no username is defined. + Команде необходимо знать имя пользователя, но оно не задано. + ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. Ра&змер: - + En&crypt Ши&фровать - + Logical Логический - + Primary Основной - + GPT GPT - + Mountpoint already in use. Please select another one. Точка монтирования уже занята. Пожалуйста, выберете другую. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Создать учетную запись %1 - + Create user <strong>%1</strong>. Создать учетную запись <strong>%1</strong>. - + Creating user %1. Создается учетная запись %1. - + Sudoers dir is not writable. Каталог sudoers не доступен для записи. - + Cannot create sudoers file for writing. Не удалось записать файл sudoers. - + Cannot chmod sudoers file. Не удалось применить chmod к файлу sudoers. - + Cannot open groups file for reading. Не удалось открыть файл groups для чтения. - - - Cannot create user %1. - Не удалось создать учетную запись пользователя %1. - - - - useradd terminated with error code %1. - Команда useradd завершилась с кодом ошибки %1. - - - - Cannot add user %1 to groups: %2. - Не удается добавить пользователя %1 в группы: %2. - - - - usermod terminated with error code %1. - Команда usermod завершилась с кодом ошибки %1. - - - - Cannot set home directory ownership for user %1. - Не удалось задать владельца домашней папки пользователя %1. - - - - chown terminated with error code %1. - Команда chown завершилась с кодом ошибки %1. - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. Флаги: - + Mountpoint already in use. Please select another one. Точка монтирования уже занята. Пожалуйста, выберете другую. @@ -932,7 +937,7 @@ The installer will quit and all changes will be lost. <html><head/><body><p>When this box is checked, your system will restart immediately when you click on <span style=" font-style:italic;">Done</span> or close the installer.</p></body></html> - + <html><head/><body><p>Если этот флажок установлен, ваша система будет перезагружена сразу после нажатия кнопки <span style=" font-style:italic;">Готово</span> или закрытия инсталлятора.</p></body></html> @@ -940,14 +945,14 @@ The installer will quit and all changes will be lost. П&ерезагрузить - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Готово.</h1><br/>Система %1 установлена на Ваш компьютер.<br/>Вы можете перезагрузить компьютер и использовать Вашу новую систему или продолжить работу в Live окружении %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. - + <h1>Сбой установки</h1><br/>Не удалось установить %1 на ваш компьютер.<br/>Сообщение об ошибке: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> Установить модель клавиатуры на %1.<br/> - + Set keyboard layout to %1/%2. Установить раскладку клавиатуры на %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. Форма - + I accept the terms and conditions above. Я принимаю приведенные выше условия. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Лицензионное соглашение</h1>На этом этапе будет установлено программное обеспечение с проприетарной лицензией. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Ознакомьтесь с приведенными выше Лицензионными соглашениями пользователя (EULA).<br/>Если не согласны с условиями, продолжение установки невозможно. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Лицензионное соглашение</h1>На этом этапе можно установить программное обеспечение с проприетарной лицензией, дающее дополнительные возможности и повышающее удобство работы. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Ознакомьтесь выше, с Лицензионными соглашениями конечного пользователя (EULA).<br/>Если вы не согласны с условиями, проприетарное программное обеспечение будет заменено на альтернативное открытое программное обеспечение. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>драйвер %1</strong><br/>от %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>видео драйвер %1</strong><br/><font color="Grey">от %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>плагин браузера %1</strong><br/><font color="Grey">от %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>кодек %1</strong><br/><font color="Grey">от %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>пакет %1</strong><br/><font color="Grey">от %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">от %2</font> - + <a href="%1">view license agreement</a> <a href="%1">посмотреть лицензионное соглашение</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... Загружаю данные о местоположениях... - + Location Местоположение @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Имя - + Description Описание - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Установка по сети. (Отключено: не удается получить список пакетов, проверьте сетевое подключение) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Выбор пакетов @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short Слишком короткий пароль - + Password is too long Слишком длинный пароль - + Password is too weak Пароль слишком слабый - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one Пароль такой же, как и старый - + The password is a palindrome Пароль является палиндромом - + The password differs with case changes only Пароль отличается только регистром символов - + The password is too similar to the old one Пароль слишком похож на старый - + The password contains the user name in some form Пароль содержит имя пользователя - + The password contains words from the real name of the user in some form Пароль содержит слова из реального имени пользователя - + The password contains forbidden words in some form Пароль содержит запрещённые слова - + The password contains less than %1 digits Пароль содержит менее %1 цифр - + The password contains too few digits В пароле слишком мало цифр - + The password contains less than %1 uppercase letters Пароль содержит менее %1 заглавных букв - + The password contains too few uppercase letters В пароле слишком мало заглавных букв - + The password contains less than %1 lowercase letters Пароль содержит менее %1 строчных букв - + The password contains too few lowercase letters В пароле слишком мало строчных букв - + The password contains less than %1 non-alphanumeric characters Пароль содержит менее %1 не буквенно-цифровых символов - + The password contains too few non-alphanumeric characters В пароле слишком мало не буквенно-цифровых символов - + The password is shorter than %1 characters Пароль короче %1 символов - + The password is too short Пароль слишком короткий - + The password is just rotated old one - + Новый пароль — это просто перевёрнутый старый - + The password contains less than %1 character classes - + Пароль содержит менее %1 классов символов - + The password does not contain enough character classes - + Пароль содержит недостаточно классов символов - + The password contains more than %1 same characters consecutively Пароль содержит более %1 одинаковых последовательных символов - + The password contains too many same characters consecutively Пароль содержит слишком много одинаковых последовательных символов - + The password contains more than %1 characters of the same class consecutively - + Пароль содержит более %1 символов одного и того же класса последовательно - + The password contains too many characters of the same class consecutively - + Пароль содержит слишком длинную последовательность символов одного и того же класса - + The password contains monotonic sequence longer than %1 characters - + Пароль содержит монотонную последовательность длиннее %1 символов - + The password contains too long of a monotonic character sequence - + Пароль содержит слишком длинную монотонную последовательность символов - + No password supplied - + Не задан пароль - + Cannot obtain random numbers from the RNG device Не удаётся получить случайные числа с устройства RNG - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 Пароль не прошёл проверку на использование словарных слов - %1 - + The password fails the dictionary check Пароль не прошёл проверку на использование словарных слов - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed Не удалось открыть конфигурационный файл - + The configuration file is malformed - + Fatal failure - + Unknown error Неизвестная ошибка @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space Доступное место - - + + New partition Новый раздел - + Name Имя - + File System Файловая система - + Mount Point Точка монтирования - + Size Размер @@ -1656,8 +1661,8 @@ The installer will quit and all changes will be lost. - &Create - &Создать + Cre&ate + @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. Установить &загрузчик в: - + Are you sure you want to create a new partition table on %1? Вы уверены, что хотите создать новую таблицу разделов на %1? + + + Can not create new partition + Не удалось создать новый раздел + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + В таблице разделов на %1 уже %2 первичных разделов, больше добавить нельзя. Удалите один из первичных разделов и добавьте расширенный раздел. + PartitionViewStep - + Gathering system information... Сбор информации о системе... - + Partitions Разделы - + Install %1 <strong>alongside</strong> another operating system. Установить %1 <strong>параллельно</strong> к другой операционной системе. - + <strong>Erase</strong> disk and install %1. <strong>Очистить</strong> диск и установить %1. - + <strong>Replace</strong> a partition with %1. <strong>Заменить</strong> раздел на %1. - + <strong>Manual</strong> partitioning. <strong>Ручная</strong> разметка. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Установить %1 <strong>параллельно</strong> к другой операционной системе на диске <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Очистить</strong> диск <strong>%2</strong> (%3) и установить %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Заменить</strong> раздел на диске <strong>%2</strong> (%3) на %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ручная</strong> разметка диска <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Диск <strong>%1</strong> (%2) - + Current: Текущий: - + After: После: - + No EFI system partition configured Нет настроенного системного раздела EFI - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Чтобы начать, необходим системный раздел EFI %1.<br/><br/>Для настройки системного раздела EFI, вернитесь, выберите или создайте файловую систему FAT32 с установленным флагом <strong>esp</strong> и точкой монтирования <strong>%2</strong>.<br/><br/>Вы можете продолжить и без настройки системного раздела EFI, но Ваша система может не загрузиться. - + EFI system partition flag not set Не установлен флаг системного раздела EFI - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Чтобы начать, необходим системный раздел EFI %1.<br/><br/>Был настроен раздел с точкой монтирования <strong>%2</strong>, но его флаг <strong>esp</strong> не установлен.<br/>Для установки флага вернитесь и отредактируйте раздел.<br/><br/>Вы можете продолжить и без установки флага, но Ваша система может не загрузиться. - + Boot partition not encrypted Загрузочный раздел не зашифрован - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Включено шифрование корневого раздела, но использован отдельный загрузочный раздел без шифрования.<br/><br/>При такой конфигурации возникают проблемы с безопасностью, потому что важные системные файлы хранятся на разделе без шифрования.<br/>Если хотите, можете продолжить, но файловая система будет разблокирована позднее во время загрузки системы.<br/>Чтобы включить шифрование загрузочного раздела, вернитесь назад и снова создайте его, отметив <strong>Шифровать</strong> в окне создания раздела. @@ -1805,81 +1820,101 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + +Вывод: + - + External command crashed. Сбой внешней команды. - + Command <i>%1</i> crashed. Сбой команды <i>%1</i>. - + External command failed to start. - + Не удалось запустить внешнюю команду. - + Command <i>%1</i> failed to start. - + Не удалось запустить команду <i>%1</i>. - + Internal error when starting command. - + Внутренняя ошибка при запуске команды. - + Bad parameters for process job call. Неверные параметры для вызова процесса. - + External command failed to finish. - + Не удалось завершить внешнюю команду. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Внешняя команда завершилась с ошибками - + Command <i>%1</i> finished with exit code %2. Команда <i>%1</i> завершилась с кодом %2. @@ -1898,22 +1933,22 @@ Output: По умолчанию - + unknown неизвестный - + extended расширенный - + unformatted неформатированный - + swap swap @@ -2006,52 +2041,52 @@ Output: Сбор информации о системе... - + has at least %1 GB available drive space доступно как минимум %1 ГБ свободного дискового пространства - + There is not enough drive space. At least %1 GB is required. Недостаточно места на дисках. Необходимо как минимум %1 ГБ. - + has at least %1 GB working memory доступно как минимум %1 ГБ оперативной памяти - + The system does not have enough working memory. At least %1 GB is required. Недостаточно оперативной памяти. Необходимо как минимум %1 ГБ. - + is plugged in to a power source подключено сетевое питание - + The system is not plugged in to a power source. Сетевое питание не подключено. - + is connected to the Internet присутствует выход в сеть Интернет - + The system is not connected to the Internet. Отсутствует выход в Интернет. - + The installer is not running with administrator rights. Программа установки не запущена с привилегиями администратора. - + The screen is too small to display the installer. Слишком маленький экран для окна установщика. @@ -2095,29 +2130,29 @@ Output: SetHostNameJob - + Set hostname %1 Задать имя компьютера в сети %1 - + Set hostname <strong>%1</strong>. Задать имя компьютера в сети <strong>%1</strong>. - + Setting hostname %1. Задаю имя компьютера в сети для %1. - - + + Internal Error Внутренняя ошибка - - + + Cannot write hostname to target system Не возможно записать имя компьютера в целевую систему @@ -2324,6 +2359,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2345,12 +2389,12 @@ Output: Installation feedback - + Отчёт об установке Sending installation feedback. - + Отправка отчёта об установке. @@ -2494,7 +2538,7 @@ Output: UsersViewStep - + Users Пользователи @@ -2552,7 +2596,7 @@ Output: - + %1 support %1 поддержка @@ -2560,7 +2604,7 @@ Output: WelcomeViewStep - + Welcome Добро пожаловать diff --git a/lang/calamares_sk.ts b/lang/calamares_sk.ts index b196209c4..a0f4c1c84 100644 --- a/lang/calamares_sk.ts +++ b/lang/calamares_sk.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Prázdna stránka + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Inštalácia @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Hotovo @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Spustenie príkazu %1 %2 - + Running command %1 %2 Spúšťa sa príkaz %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Spúšťa sa operácia %1. - + Bad working directory path Nesprávna cesta k pracovnému adresáru - + Working directory %1 for python job %2 is not readable. Pracovný adresár %1 pre úlohu jazyka python %2 nie je možné čítať. - + Bad main script file Nesprávny súbor hlavného skriptu - + Main script file %1 for python job %2 is not readable. Súbor hlavného skriptu %1 pre úlohu jazyka python %2 nie je možné čítať. - + Boost.Python error in job "%1". Chyba knižnice Boost.Python v úlohe „%1“. @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Späť - + + &Next Ď&alej - - + + &Cancel &Zrušiť - - + + Cancel installation without changing the system. Zruší inštaláciu bez zmeny systému. - + + Calamares Initialization Failed + Zlyhala inicializácia inštalátora Calamares + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + Nie je možné nainštalovať %1. Calamares nemohol načítať všetky konfigurované moduly. Je problém s tým, ako sa Calamares používa pri distribúcii. + + + + <br/>The following modules could not be loaded: + <br/>Nebolo možné načítať nasledujúce moduly + + + + &Install + _Inštalovať + + + Cancel installation? Zrušiť inštaláciu? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Skutočne chcete zrušiť aktuálny priebeh inštalácie? Inštalátor sa ukončí a všetky zmeny budú stratené. - + &Yes _Áno - + &No _Nie - + &Close _Zavrieť - + Continue with setup? Pokračovať v inštalácii? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Inštalátor distribúcie %1 sa chystá vykonať zmeny na vašom disku, aby nainštaloval distribúciu %2. <br/><strong>Tieto zmeny nebudete môcť vrátiť späť.</strong> - + &Install now &Inštalovať teraz - + Go &back Prejsť s&päť - + &Done _Dokončiť - + The installation is complete. Close the installer. Inštalácia je dokončená. Zatvorí inštalátor. - + Error Chyba - + Installation Failed Inštalácia zlyhala @@ -430,17 +459,17 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. ClearMountsJob - + Clear mounts for partitioning operations on %1 Vymazať pripojenia pre operácie rozdelenia oddielov na zariadení %1 - + Clearing mounts for partitioning operations on %1. Vymazávajú sa pripojenia pre operácie rozdelenia oddielov na zariadení %1. - + Cleared all mounts for %1 Vymazané všetky pripojenia pre zariadenie %1 @@ -471,20 +500,26 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. CommandList - + + Could not run command. Nepodarilo sa spustiť príkaz. - - No rootMountPoint is defined, so command cannot be run in the target environment. - Nie je definovaný parameter rootMountPoint, takže príkaz nemôže byť spustený v cieľovom prostredí. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Príkaz beží v hostiteľskom prostredí a potrebuje poznať koreňovú cestu, ale nie je definovaný žiadny koreňový prípojný bod. + + + + The command needs to know the user's name, but no username is defined. + Príkaz musí poznať meno používateľa, ale žiadne nie je definované. ContextualProcessJob - + Contextual Processes Job Úloha kontextových procesov @@ -542,27 +577,27 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Veľ&kosť: - + En&crypt Zaši&frovať - + Logical Logický - + Primary Primárny - + GPT GPT - + Mountpoint already in use. Please select another one. Bod pripojenia sa už používa. Prosím, vyberte iný. @@ -644,70 +679,40 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. CreateUserJob - + Create user %1 Vytvoriť používateľa %1 - + Create user <strong>%1</strong>. Vytvoriť používateľa <strong>%1</strong>. - + Creating user %1. Vytvára sa používateľ %1. - + Sudoers dir is not writable. Adresár Sudoers nie je zapisovateľný. - + Cannot create sudoers file for writing. Nedá sa vytvoriť súbor sudoers na zapisovanie. - + Cannot chmod sudoers file. Nedá sa vykonať príkaz chmod na súbori sudoers. - + Cannot open groups file for reading. Nedá sa otvoriť súbor skupín na čítanie. - - - Cannot create user %1. - Nedá sa vytvoriť používateľ %1. - - - - useradd terminated with error code %1. - Príkaz useradd ukončený s chybovým kódom %1. - - - - Cannot add user %1 to groups: %2. - Nedá sa pridať používateľ %1 do skupín: %2. - - - - usermod terminated with error code %1. - Príkaz usermod ukončený s chybovým kódom %1. - - - - Cannot set home directory ownership for user %1. - Nedá sa nastaviť vlastníctvo domovského adresára pre používateľa %1. - - - - chown terminated with error code %1. - Príkaz chown ukončený s chybovým kódom %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. DummyCppJob - + Dummy C++ Job Fiktívna úloha jazyka C++ @@ -852,7 +857,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Značky: - + Mountpoint already in use. Please select another one. Bod pripojenia sa už používa. Prosím, vyberte iný. @@ -941,12 +946,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. &Reštartovať teraz - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Všetko je dokončené.</h1><br/>Distribúcia %1 bola nainštalovaná do vášho počítača.<br/>Teraz môžete reštartovať počítač a spustiť váš nový systém, alebo pokračovať v používaní živého prostredia distribúcie %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Inštalácia zlyhala</h1><br/>Distribúcia %1 nebola nainštalovaná do vášho počítača.<br/>Chybová hláška: %2. @@ -1021,12 +1026,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. KeyboardPage - + Set keyboard model to %1.<br/> Nastavenie modelu klávesnice na %1.<br/> - + Set keyboard layout to %1/%2. Nastavenie rozloženia klávesnice na %1/%2. @@ -1070,64 +1075,64 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Forma - + I accept the terms and conditions above. Prijímam podmienky vyššie. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licenčné podmienky</h1>Tento proces inštalácie môže nainštalovať uzavretý softvér, ktorý je predmetom licenčných podmienok. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Prosím, prečítajte si licenčnú zmluvu koncového používateľa (EULAs) vyššie.<br/>Ak nesúhlasíte s podmienkami, proces inštalácie nemôže pokračovať. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licenčné podmienky</h1>Tento proces inštalácie môže nainštalovať uzavretý softvér, ktorý je predmetom licenčných podmienok v rámci poskytovania dodatočných funkcií a vylepšenia používateľských skúseností. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Prosím, prečítajte si licenčnú zmluvu koncového používateľa (EULAs) vyššie.<br/>Ak nesúhlasíte s podmienkami, uzavretý softvér nebude nainštalovaný a namiesto neho budú použité alternatívy s otvoreným zdrojom. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>Ovládač %1</strong><br/>vytvoril %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>Ovládač grafickej karty %1</strong><br/><font color="Grey">vytvoril %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>Zásuvný modul prehliadača %1</strong><br/><font color="Grey">vytvoril %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>Kodek %1</strong><br/><font color="Grey">vytvoril %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>Balík %1</strong><br/><font color="Grey">vytvoril %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">vytvoril %2</font> - + <a href="%1">view license agreement</a> <a href="%1">Zobraziť licenčné podmienky</a> @@ -1183,12 +1188,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. LocaleViewStep - + Loading location data... Načítavajú sa údaje umiestnenia... - + Location Umiestnenie @@ -1196,22 +1201,22 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. NetInstallPage - + Name Názov - + Description Popis - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Sieťová inštalácia. (Zakázaná: Nie je možné získať zoznamy balíkov. Skontrolujte vaše sieťové pripojenie.) - + Network Installation. (Disabled: Received invalid groups data) Sieťová inštalácia. (Zakázaná: Boli prijaté neplatné údaje o skupinách) @@ -1219,7 +1224,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. NetInstallViewStep - + Package selection Výber balíkov @@ -1227,242 +1232,242 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. PWQ - + Password is too short Heslo je príliš krátke - + Password is too long Heslo je príliš dlhé - + Password is too weak Heslo je príliš slabé - + Memory allocation error when setting '%1' - + Chyba počas vyhradzovania pamäte pri nastavovaní „%1“ - + Memory allocation error Chyba počas vyhradzovania pamäte - + The password is the same as the old one Heslo je rovnaké ako to staré - + The password is a palindrome - + Heslo je palindróm - + The password differs with case changes only - + Heslo sa odlišuje iba vo veľkosti písmen - + The password is too similar to the old one Heslo je príliš podobné ako to staré - + The password contains the user name in some form Heslo obsahuje v nejakom tvare používateľské meno - + The password contains words from the real name of the user in some form Heslo obsahuje v nejakom tvare slová zo skutočného mena používateľa - + The password contains forbidden words in some form - + Heslo obsahuje zakázané slová v určitom tvare - + The password contains less than %1 digits - + Heslo obsahuje menej ako %1 číslic - + The password contains too few digits - + Heslo tiež obsahuje pár číslic - + The password contains less than %1 uppercase letters - + Heslo obsahuje menej ako %1 veľkých písmen - + The password contains too few uppercase letters - + Heslo obsahuje príliš málo veľkých písmen - + The password contains less than %1 lowercase letters - + Heslo obsahuje menej ako %1 malých písmen - + The password contains too few lowercase letters - + Heslo obsahuje príliš málo malých písmen - + The password contains less than %1 non-alphanumeric characters - + Heslo obsahuje menej ako% 1 nealfanumerických znakov - + The password contains too few non-alphanumeric characters - + Heslo obsahuje príliš málo nealfanumerických znakov - + The password is shorter than %1 characters Heslo je kratšie ako %1 znakov - + The password is too short Heslo je príliš krátke - + The password is just rotated old one - + Heslo je iba obrátené staré heslo - + The password contains less than %1 character classes - + Heslo obsahuje menej ako %1 triedy znakov - + The password does not contain enough character classes - + Heslo neobsahuje dostatok tried znakov - + The password contains more than %1 same characters consecutively - + Heslo obsahuje viac ako% 1 rovnakých znakov za sebou - + The password contains too many same characters consecutively - + Heslo obsahuje príliš veľa rovnakých znakov - + The password contains more than %1 characters of the same class consecutively - + Heslo obsahuje postupne viac ako% 1 znakov toho istého typu - + The password contains too many characters of the same class consecutively - + Heslo obsahuje postupne príliš veľa znakov toho istého typu - + The password contains monotonic sequence longer than %1 characters - + Heslo obsahuje monotónnu sekvenciu dlhšiu ako %1 znakov - + The password contains too long of a monotonic character sequence - + Heslo obsahuje príliš dlhú sekvenciu monotónnych znakov - + No password supplied Nebolo poskytnuté žiadne heslo - + Cannot obtain random numbers from the RNG device Nedajú sa získať náhodné čísla zo zariadenia RNG - + Password generation failed - required entropy too low for settings - + Generovanie hesla zlyhalo - potrebná entropia je príliš nízka na nastavenie - + The password fails the dictionary check - %1 - + Heslo zlyhalo pri slovníkovej kontrole - %1 - + The password fails the dictionary check - + Heslo zlyhalo pri slovníkovej kontrole - + Unknown setting - %1 Neznáme nastavenie - %1 - + Unknown setting Neznáme nastavenie - + Bad integer value of setting - %1 Nesprávna celočíselná hodnota nastavenia - %1 - + Bad integer value Nesprávna celočíselná hodnota - + Setting %1 is not of integer type Nastavenie %1 nie je celé číslo - + Setting is not of integer type Nastavenie nie je celé číslo - + Setting %1 is not of string type Nastavenie %1 nie je reťazec - + Setting is not of string type Nastavenie nie je reťazec - + Opening the configuration file failed Zlyhalo otváranie konfiguračného súboru - + The configuration file is malformed Konfiguračný súbor je poškodený - + Fatal failure Závažné zlyhanie - + Unknown error Neznáma chyba @@ -1601,34 +1606,34 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. PartitionModel - - + + Free Space Voľné miesto - - + + New partition Nový oddiel - + Name Názov - + File System Systém súborov - + Mount Point Bod pripojenia - + Size Veľkosť @@ -1657,8 +1662,8 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. - &Create - &Vytvoriť + Cre&ate + Vytvoriť @@ -1676,105 +1681,115 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Nainštalovať &zavádzač na: - + Are you sure you want to create a new partition table on %1? Naozaj chcete vytvoriť novú tabuľku oddielov na zariadení %1? + + + Can not create new partition + Nedá sa vytvoriť nový oddiel + + + + 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. + Tabuľka oddielov na %1 už obsahuje primárne oddiely %2 a nie je možné pridávať žiadne ďalšie. Odstráňte jeden primárny oddiel a namiesto toho pridajte rozšírenú oblasť. + PartitionViewStep - + Gathering system information... Zbierajú sa informácie o počítači... - + Partitions Oddiely - + Install %1 <strong>alongside</strong> another operating system. Inštalácia distribúcie %1 <strong>popri</strong> inom operačnom systéme. - + <strong>Erase</strong> disk and install %1. <strong>Vymazanie</strong> disku a inštalácia distribúcie %1. - + <strong>Replace</strong> a partition with %1. <strong>Nahradenie</strong> oddielu distribúciou %1. - + <strong>Manual</strong> partitioning. <strong>Ručné</strong> rozdelenie oddielov. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Inštalácia distribúcie %1 <strong>popri</strong> inom operačnom systéme na disku <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Vymazanie</strong> disku <strong>%2</strong> (%3) a inštalácia distribúcie %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Nahradenie</strong> oddielu na disku <strong>%2</strong> (%3) distribúciou %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Ručné</strong> rozdelenie oddielov na disku <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Teraz: - + After: Potom: - + No EFI system partition configured Nie je nastavený žiadny oddiel systému EFI - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Oddiel systému EFI je potrebný pre spustenie distribúcie %1.<br/><br/>Na nastavenie oddielu systému EFI prejdite späť a vyberte alebo vytvorte systém súborov FAT32 s povolenou značkou <strong>esp</strong> a bod pripojenia <strong>%2</strong>.<br/><br/>Môžete pokračovať bez nastavenia oddielu systému EFI, ale váš systém môže pri spustení zlyhať. - + EFI system partition flag not set Značka oddielu systému EFI nie je nastavená - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Oddiel systému EFI je potrebný pre spustenie distribúcie %1.<br/><br/>Oddiel bol nastavený s bodom pripojenia <strong>%2</strong>, ale nemá nastavenú značku <strong>esp</strong>.<br/>Na nastavenie značky prejdite späť a upravte oddiel.<br/><br/>Môžete pokračovať bez nastavenia značky, ale váš systém môže pri spustení zlyhať. - + Boot partition not encrypted Zavádzací oddiel nie je zašifrovaný - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Spolu so zašifrovaným koreňovým oddielom bol nainštalovaný oddelený zavádzací oddiel, ktorý ale nie je zašifrovaný.<br/><br/>S týmto typom inštalácie je ohrozená bezpečnosť, pretože dôležité systémové súbory sú uchovávané na nezašifrovanom oddieli.<br/>Ak si to želáte, môžete pokračovať, ale neskôr, počas spúšťania systému sa vykoná odomknutie systému súborov.<br/>Na zašifrovanie zavádzacieho oddielu prejdite späť a vytvorte ju znovu vybraním voľby <strong>Zašifrovať</strong> v okne vytvárania oddielu. @@ -1806,29 +1821,48 @@ Inštalátor sa ukončí a všetky zmeny budú stratené. Zástupný text - - 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. - Prosím, zvoľte vzhľad a dojem pre pracovné prostredie KDE Plasma. Tento krok môžete preskočiť a nastaviť vzhľad a dojem po inštalácii systému. + + 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. + Prosím, zvoľte vzhľad a dojem pre pracovné prostredie KDE Plasma. Tento krok môžete preskočiť a nastaviť vzhľad a dojem po inštalácii systému. Kliknutím na výber Vzhľad a dojem sa zobrazí živý náhľad daného vzhľadu a dojmu. PlasmaLnfViewStep - + Look-and-Feel Vzhľad a dojem + + PreserveFiles + + + Saving files for later ... + Ukladajú sa súbory na neskôr... + + + + No files configured to save for later. + Žiadne konfigurované súbory pre uloženie na neskôr. + + + + Not all of the configured files could be preserved. + Nie všetky konfigurované súbory môžu byť uchované. + + ProcessResult - + There was no output from the command. - + +Žiadny výstup z príkazu. - + Output: @@ -1837,52 +1871,52 @@ Výstup: - + External command crashed. Externý príkaz nečakane skončil. - + Command <i>%1</i> crashed. Príkaz <i>%1</i> nečakane skončil. - + External command failed to start. Zlyhalo spustenie externého príkazu. - + Command <i>%1</i> failed to start. Zlyhalo spustenie príkazu <i>%1</i> . - + Internal error when starting command. Počas spúšťania príkazu sa vyskytla interná chyba. - + Bad parameters for process job call. Nesprávne parametre pre volanie úlohy procesu. - + External command failed to finish. Zlyhalo dokončenie externého príkazu. - + Command <i>%1</i> failed to finish in %2 seconds. Zlyhalo dokončenie príkazu <i>%1</i> počas doby %2 sekúnd. - + External command finished with errors. Externý príkaz bol dokončený s chybami. - + Command <i>%1</i> finished with exit code %2. Príkaz <i>%1</i> skončil s ukončovacím kódom %2. @@ -1901,22 +1935,22 @@ Výstup: Predvolený - + unknown neznámy - + extended rozšírený - + unformatted nenaformátovaný - + swap odkladací @@ -2009,52 +2043,52 @@ Výstup: Zbierajú sa informácie o počítači... - + has at least %1 GB available drive space obsahuje aspoň %1 GB voľného miesta na disku - + There is not enough drive space. At least %1 GB is required. Nie je dostatok miesta na disku. Vyžaduje sa aspoň %1 GB. - + has at least %1 GB working memory obsahuje aspoň %1 GB voľnej operačnej pamäte - + The system does not have enough working memory. At least %1 GB is required. Počítač neobsahuje dostatok operačnej pamäte. Vyžaduje sa aspoň %1 GB. - + is plugged in to a power source je pripojený k zdroju napájania - + The system is not plugged in to a power source. Počítač nie je pripojený k zdroju napájania. - + is connected to the Internet je pripojený k internetu - + The system is not connected to the Internet. Počítač nie je pripojený k internetu. - + The installer is not running with administrator rights. Inštalátor nie je spustený s právami správcu. - + The screen is too small to display the installer. Obrazovka je príliš malá na to, aby bolo možné zobraziť inštalátor. @@ -2098,29 +2132,29 @@ Výstup: SetHostNameJob - + Set hostname %1 Nastavenie názvu hostiteľa %1 - + Set hostname <strong>%1</strong>. Nastavenie názvu hostiteľa <strong>%1</strong>. - + Setting hostname %1. Nastavuje sa názov hostiteľa %1. - - + + Internal Error Vnútorná chyba - - + + Cannot write hostname to target system Nedá sa zapísať názov hostiteľa do cieľového systému @@ -2327,6 +2361,15 @@ Výstup: Úloha procesov príkazového riadku + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2497,7 +2540,7 @@ Výstup: UsersViewStep - + Users Používatelia @@ -2555,7 +2598,7 @@ Výstup: <h1>%1</h1><br/><strong>%2<br/>pre distribúciu %3</strong><br/><br/>Autorské práva 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Autorské práva 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Poďakovanie: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg a <a href="https://www.transifex.com/calamares/calamares/">tím prekladateľov inštalátora Calamares</a>.<br/><br/>Vývoj inštalátora <a href="https://calamares.io/">Calamares</a> je podporovaný spoločnosťou <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support Podpora distribúcie %1 @@ -2563,7 +2606,7 @@ Výstup: WelcomeViewStep - + Welcome Uvítanie diff --git a/lang/calamares_sl.ts b/lang/calamares_sl.ts index f31a6da78..73a05cfe1 100644 --- a/lang/calamares_sl.ts +++ b/lang/calamares_sl.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Namesti @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Končano @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path Nepravilna pot delovne mape - + Working directory %1 for python job %2 is not readable. Ni mogoče brati delovne mape %1 za pythonovo opravilo %2. - + Bad main script file Nepravilna datoteka glavnega skripta - + Main script file %1 for python job %2 is not readable. Ni mogoče brati datoteke %1 glavnega skripta za pythonovo opravilo %2. - + Boost.Python error in job "%1". Napaka Boost.Python v opravilu "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Nazaj - + + &Next &Naprej - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Preklic namestitve? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Ali res želite preklicati trenutni namestitveni proces? Namestilni program se bo končal in vse spremembe bodo izgubljene. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error Napaka - + Installation Failed Namestitev je spodletela @@ -430,17 +459,17 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -471,20 +500,26 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. Ve&likost - + En&crypt - + Logical Logičen - + Primary Primaren - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. CreateUserJob - + Create user %1 Ustvari uporabnika %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. Mapa sudoers ni zapisljiva. - + Cannot create sudoers file for writing. Ni mogoče ustvariti datoteke sudoers za pisanje. - + Cannot chmod sudoers file. Na datoteki sudoers ni mogoče izvesti opravila chmod. - + Cannot open groups file for reading. Datoteke skupin ni bilo mogoče odpreti za branje. - - - Cannot create user %1. - Ni mogoče ustvariti uporabnika %1. - - - - useradd terminated with error code %1. - useradd se je prekinil s kodo napake %1. - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - Ni mogoče nastaviti lastništva domače mape za uporabnika %1. - - - - chown terminated with error code %1. - chown se je prekinil s kodo napake %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. Zastavice: - + Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. KeyboardPage - + Set keyboard model to %1.<br/> Nastavi model tipkovnice na %1.<br/> - + Set keyboard layout to %1/%2. Nastavi razporeditev tipkovnice na %1/%2. @@ -1070,64 +1075,64 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. Oblika - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1183,12 +1188,12 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. LocaleViewStep - + Loading location data... Nalaganje podatkov položaja ... - + Location Položaj @@ -1196,22 +1201,22 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. NetInstallPage - + Name Ime - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. NetInstallViewStep - + Package selection @@ -1227,242 +1232,242 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. PartitionModel - - + + Free Space Razpoložljiv prostor - - + + New partition Nov razdelek - + Name Ime - + File System Datotečni sistem - + Mount Point Priklopna točka - + Size Velikost @@ -1657,8 +1662,8 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - &Create - &Ustvari + Cre&ate + @@ -1676,105 +1681,115 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - + Are you sure you want to create a new partition table on %1? Ali ste prepričani, da želite ustvariti novo razpredelnico razdelkov na %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Zbiranje informacij o sistemu ... - + Partitions Razdelki - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: Potem: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ Namestilni program se bo končal in vse spremembe bodo izgubljene. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Nepravilni parametri za klic procesa opravila. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: Privzeto - + unknown - + extended - + unformatted - + swap @@ -2007,52 +2040,52 @@ Output: Zbiranje informacij o sistemu ... - + has at least %1 GB available drive space ima vsaj %1 GB razpoložljivega prostora na disku - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory ima vsaj %1 GB delovnega pomnilnika - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source je priklopljen na vir napajanja - + The system is not plugged in to a power source. - + is connected to the Internet je povezan s spletom - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users @@ -2553,7 +2595,7 @@ Output: - + %1 support @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Dobrodošli diff --git a/lang/calamares_sq.ts b/lang/calamares_sq.ts index a1bbf7108..c62e9d461 100644 --- a/lang/calamares_sq.ts +++ b/lang/calamares_sq.ts @@ -9,12 +9,12 @@ This system was started with an <strong>EFI</strong> boot environment.<br><br>To configure startup from an EFI environment, this installer must deploy a boot loader application, like <strong>GRUB</strong> or <strong>systemd-boot</strong> on an <strong>EFI System Partition</strong>. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own. - Ky sistem qe nisur me një mjedis nisjesh <strong>EFI</strong>.<br><br>Që të formësojë nisjen nga një mjedis EFI, ky instalues duhet të vërë në punë një aplikacion ngarkuesi nisësi, të tillë si <strong>GRUB</strong> ose <strong>systemd-boot</strong> në një <strong>Ndare EFI Sistemi</strong>. Kjo bëhet vetvetiu, hiq rastin kur zgjidhni pjesëzim dorazi, rast në të cilin duhet ta zgjidhni apo krijoni ju vetë. + Ky sistem qe nisur me një mjedis nisjesh <strong>EFI</strong>.<br><br>Që të formësojë nisjen nga një mjedis EFI, ky instalues duhet të vërë në punë një aplikacion ngarkuesi nisësi, të tillë si <strong>GRUB</strong> ose <strong>systemd-boot</strong> në një <strong>Pjesë EFI Sistemi</strong>. Kjo bëhet vetvetiu, hiq rastin kur zgjidhni pjesëzim dorazi, rast në të cilin duhet ta zgjidhni apo krijoni ju vetë. This system was started with a <strong>BIOS</strong> boot environment.<br><br>To configure startup from a BIOS environment, this installer must install a boot loader, like <strong>GRUB</strong>, either at the beginning of a partition or on the <strong>Master Boot Record</strong> near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own. - Ky sistem qe nisur me një mjedis nisjesh <strong>BIOS</strong>.<br><br>Që të formësojë nisjen nga një mjedis BIOS, ky instalues duhet të instalojë një ngarkues nisjesh, të tillë si <strong>GRUB</strong>, ose në krye të n jë ndarjeje, ose te <strong>Master Boot Record</strong> pranë fillimit të tabelës së ndarjeve (e parapëlqyer). Kjo bëhet vetvetiu, veç në zgjedhshi ndarje dorazi, rast në të cilin duhet ta rregulloni ju vetë. + Ky sistem qe nisur me një mjedis nisjesh <strong>BIOS</strong>.<br><br>Që të formësojë nisjen nga një mjedis BIOS, ky instalues duhet të instalojë një ngarkues nisjesh, të tillë si <strong>GRUB</strong>, ose në krye të një pjese, ose te <strong>Master Boot Record</strong> pranë fillimit të tabelës së pjesëve (e parapëlqyer). Kjo bëhet vetvetiu, veç në zgjedhshi pjesëzim dorazi, rast në të cilin duhet ta rregulloni ju vetë. @@ -27,12 +27,12 @@ Boot Partition - Ndarje Nisjesh + Pjesë Nisjesh System Partition - Ndarje Sistemi + Pjesë Sistemi @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Faqe e Zbrazët + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instaloje @@ -105,7 +113,7 @@ Calamares::JobThread - + Done U bë @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Xhiro urdhrin %1 %2 - + Running command %1 %2 Po xhirohet urdhri %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Po xhirohet %1 veprim. - + Bad working directory path Shteg i gabuar drejtorie pune - + Working directory %1 for python job %2 is not readable. Drejtoria e punës %1 për aktin python %2 s’është e lexueshme. - + Bad main script file Kartelë kryesore programthi e dëmtuar - + Main script file %1 for python job %2 is not readable. Kartela kryesore e programthit file %1 për aktin python %2 s’është e lexueshme. - + Boost.Python error in job "%1". Gabim Boost.Python tek akti \"%1\". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Mbrapsht - + + &Next &Pasuesi - - + + &Cancel &Anuloje - - + + Cancel installation without changing the system. Anuloje instalimin pa ndryshuar sistemin. - + + Calamares Initialization Failed + Gatitja e Calamares-it Dështoi + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 s’mund të instalohet. Calamares s’qe në gjendje të ngarkonte krejt modulet e konfiguruar. Ky është një problem që lidhet me mënyrën se si përdoret Calamares nga shpërndarja. + + + + <br/>The following modules could not be loaded: + <br/>S’u ngarkuan dot modulet vijues: + + + + &Install + &Instaloje + + + Cancel installation? Të anulohet instalimi? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Doni vërtet të anulohet procesi i tanishëm i instalimit? Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. - + &Yes &Po - + &No &Jo - + &Close &Mbylle - + Continue with setup? Të vazhdohet me rregullimin? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Instaluesi %1 është një hap larg nga bërja e ndryshimeve në diskun tuaj, që të mund të instalojë %2.<br/><strong>S’do të jeni në gjendje t’i zhbëni këto ndryshime.</strong> - + &Install now &Instaloje tani - + Go &back Kthehu &mbrapsht - + &Done &U bë - + The installation is complete. Close the installer. Instalimi u plotësua. Mbylle instaluesin. - + Error Gabim - + Installation Failed Instalimi Dështoi @@ -258,7 +287,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. unparseable Python error - Gabim kodi Python të papërtypshëm dot + Gabim kod Python i papërtypshëm dot @@ -304,7 +333,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. For best results, please ensure that this computer: - Për përfundime më të mirë, ju lutemi, garantoni që ky kompjuter: + Për përfundime më të mira, ju lutemi, garantoni që ky kompjuter: @@ -327,7 +356,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. <strong>Manual partitioning</strong><br/>You can create or resize partitions yourself. - <strong>Ndarje dorazi</strong><br/>Ndarjet mund t’i krijoni dhe ripërmasoni ju vetë. + <strong>Pjesëzim dorazi</strong><br/>Pjesët mund t’i krijoni dhe ripërmasoni ju vetë. @@ -337,7 +366,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. %1 will be shrunk to %2MB and a new %3MB partition will be created for %4. - %1 do të zvogëlohet në %2MB dhe për %4 do të krijohet një ndarje e re %3MB. + %1 do të zvogëlohet në %2MB dhe për %4 do të krijohet një pjesë e re %3MB. @@ -355,37 +384,37 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Reuse %1 as home partition for %2. - Ripërdore %1 si ndarjen shtëpi për %2. + Ripërdore %1 si pjesën shtëpi për %2. <strong>Select a partition to shrink, then drag the bottom bar to resize</strong> - <strong>Përzgjidhni një ndarje që të zvogëlohet, mandej tërhiqni shtyllën e poshtme që ta ripërmasoni</strong> + <strong>Përzgjidhni një pjesë që të zvogëlohet, mandej tërhiqni shtyllën e poshtme që ta ripërmasoni</strong> <strong>Select a partition to install on</strong> - <strong>Përzgjidhni një ndarje ku të instalohet</strong> + <strong>Përzgjidhni një pjesë ku të instalohet</strong> An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - Në këtë sistem s’mund të gjendet gjëkundi një ndarje EFI sistemi. Ju lutemi, kthehuni mbrapsht dhe përdorni pjesëzimin dorazi që të rregulloni %1. + Në këtë sistem s’gjendet gjëkundi një pjesë EFI sistemi. Ju lutemi, kthehuni mbrapsht dhe përdorni pjesëzimin dorazi që të rregulloni %1. The EFI system partition at %1 will be used for starting %2. - Për nisjen e %2 do të përdoret ndarja EFI e sistemit te %1. + Për nisjen e %2 do të përdoret pjesa EFI e sistemit te %1. EFI system partition: - Ndarje Sistemi EFI: + Pjesë Sistemi EFI: This storage device does not seem to have an operating system on it. What would you like to do?<br/>You will be able to review and confirm your choices before any change is made to the storage device. - Kjo pajisje depozitimi përmban %1 në të. Ç’do të donit të bënito?<br/>Do të jeni në gjendje të rishqyrtoni dhe ripohoni zgjedhjet tuaja, para se te pajisja e depozitimit të bëhet çfarëdo ndryshimi. + Kjo pajisje depozitimi përmban %1 në të. Ç’do të donit të bënit?<br/>Do të jeni në gjendje të rishqyrtoni dhe ripohoni zgjedhjet tuaja, para se te pajisja e depozitimit të bëhet çfarëdo ndryshimi. @@ -406,7 +435,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. <strong>Install alongside</strong><br/>The installer will shrink a partition to make room for %1. - <strong>Instaloje në krah të tij</strong><br/>Instaluesi do të zvogëlojë një ndarje për të bërë vend për %1. + <strong>Instaloje në krah të tij</strong><br/>Instaluesi do të zvogëlojë një pjesë për të bërë vend për %1. @@ -414,7 +443,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. <strong>Replace a partition</strong><br/>Replaces a partition with %1. - <strong>Zëvendëso një ndarje</strong><br/>Zëvendëson një ndarje me %1. + <strong>Zëvendëso një pjesë</strong><br/>Zëvendëson një pjesë me %1. @@ -430,17 +459,17 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. ClearMountsJob - + Clear mounts for partitioning operations on %1 Hiqi montimet për veprime pjesëzimi te %1 - + Clearing mounts for partitioning operations on %1. Po hiqen montimet për veprime pjesëzimi te %1. - + Cleared all mounts for %1 U hoqën krejt montimet për %1 @@ -455,7 +484,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Clearing all temporary mounts. - Po hiqenn krejt montimet e përkohshme. + Po hiqen krejt montimet e përkohshme. @@ -471,20 +500,26 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. CommandList - + + Could not run command. S’u xhirua dot urdhri. - - No rootMountPoint is defined, so command cannot be run in the target environment. - S’ka të caktuar rootMountPoint, ndaj urdhri s’mund të xhirohet në mjedisin e synuar. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Urdhri xhirohet në mjedisin strehë dhe është e nevojshme të dijë shtegun për rrënjën, por nuk ka rootMountPoint të përcaktuar. + + + + The command needs to know the user's name, but no username is defined. + Urdhri lypset të dijë emrin e përdoruesit, por s’ka të përcaktuar emër përdoruesi. ContextualProcessJob - + Contextual Processes Job Akt Procesesh Kontekstuale @@ -494,7 +529,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Create a Partition - Krijoni një Ndarje + Krijoni një Pjesë @@ -504,7 +539,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Partition &Type: - &Lloj Ndarjeje: + &Lloj Pjese: @@ -542,27 +577,27 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. &Madhësi: - + En&crypt &Fshehtëzoje - + Logical - Logjik + Logjike - + Primary - Parësor + Parësore - + GPT GPT - + Mountpoint already in use. Please select another one. Pikë montimi tashmë e përdorur. Ju lutemi, përzgjidhni një tjetër. @@ -572,22 +607,22 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Create new %2MB partition on %4 (%3) with file system %1. - Krijo ndarje të re %2MB te %4 (%3) me sistem kartelash %1. + Krijo pjesë të re %2MB te %4 (%3) me sistem kartelash %1. Create new <strong>%2MB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>. - Krijo ndarje të re <strong>%2MB</strong> te <strong>%4</strong> (%3) me sistem kartelash <strong>%1</strong>. + Krijo pjesë të re <strong>%2MB</strong> te <strong>%4</strong> (%3) me sistem kartelash <strong>%1</strong>. Creating new %1 partition on %2. - Po krijohet ndarje e re %1 te %2. + Po krijohet pjesë e re %1 te %2. The installer failed to create partition on disk '%1'. - Instaluesi s’arriti të krijojë ndarje në diskun '%1'. + Instaluesi s’arriti të krijojë pjesë në diskun '%1'. @@ -595,17 +630,17 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Create Partition Table - Krijo Tabelë Ndarjesh + Krijo Tabelë Pjesësh Creating a new partition table will delete all existing data on the disk. - Krijimi i një tabele të re ndarjesh do të fshijë krejt të dhënat ekzistuese në disk. + Krijimi i një tabele të re pjesësh do të fshijë krejt të dhënat ekzistuese në disk. What kind of partition table do you want to create? - Ç’lloj tabele ndarjesh doni të krijoni? + Ç’lloj tabele pjesësh doni të krijoni? @@ -615,7 +650,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. GUID Partition Table (GPT) - Tabelë Ndarjesh GUID (GPT) + Tabelë Pjesësh GUID (GPT) @@ -623,113 +658,83 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Create new %1 partition table on %2. - Krijo tabelë të re ndarjesh %1 te %2. + Krijo tabelë të re pjesësh %1 te %2. Create new <strong>%1</strong> partition table on <strong>%2</strong> (%3). - Krijoni tabelë ndarjeje të re <strong>%1</strong> te <strong>%2</strong> (%3). + Krijoni tabelë pjesësh të re <strong>%1</strong> te <strong>%2</strong> (%3). Creating new %1 partition table on %2. - Po krijohet tabelë e re ndarjesh %1 te %2. + Po krijohet tabelë e re pjesësh %1 te %2. The installer failed to create a partition table on %1. - Instaluesi s’arriti të krijojë tabelë ndarjesh në diskun %1. + Instaluesi s’arriti të krijojë tabelë pjesësh në diskun %1. CreateUserJob - + Create user %1 Krijo përdoruesin %1 - + Create user <strong>%1</strong>. Krijo përdoruesin <strong>%1</strong>. - + Creating user %1. Po krijohet përdoruesi %1. - + Sudoers dir is not writable. Drejtoria sudoers s’është e shkrueshme. - + Cannot create sudoers file for writing. S’krijohet dot kartelë sudoers për shkrim. - + Cannot chmod sudoers file. S’mund të kryhet chmod mbi kartelën sudoers. - + Cannot open groups file for reading. S’hapet dot kartelë grupesh për lexim. - - - Cannot create user %1. - S’krijohet dot përdoruesi %1. - - - - useradd terminated with error code %1. - useradd përfundoi me kod gabimi %1. - - - - Cannot add user %1 to groups: %2. - S’shton dot përdoruesin %1 te grupe: %2. - - - - usermod terminated with error code %1. - usermod përfundoi me kod gabimi %1. - - - - Cannot set home directory ownership for user %1. - S’caktohet dot pronësia e drejtorisë shtëpi për përdoruesin %1. - - - - chown terminated with error code %1. - chown përfundoi me kod gabimi %1. - DeletePartitionJob Delete partition %1. - Fshije ndarjen %1. + Fshije pjesën %1. Delete partition <strong>%1</strong>. - Fshije ndarjen <strong>%1</strong>. + Fshije pjesën <strong>%1</strong>. Deleting partition %1. - Po fshihet ndarja %1. + Po fshihet pjesa %1. The installer failed to delete partition %1. - Instaluesi dështoi në fshirjen e ndarjes %1. + Instaluesi dështoi në fshirjen e pjesës %1. @@ -737,32 +742,32 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. The type of <strong>partition table</strong> on the selected storage device.<br><br>The only way to change the partition table type is to erase and recreate the partition table from scratch, which destroys all data on the storage device.<br>This installer will keep the current partition table unless you explicitly choose otherwise.<br>If unsure, on modern systems GPT is preferred. - Lloji i <strong>tabelës së ndarjeve</strong> në pajisjen e përzgjedhur të depozitimeve.<br><br>Mënyra e vetme për ndryshim të tabelës së ndarjeve është të fshihet dhe rikrijohet nga e para tabela e ndarjeve, çka shkatërron krejt të dhënat në pajisjen e depozitimit.<br>Ky instalues do të ruajë tabelën e tanishme të ndarjeve, veç në zgjedhshi shprehimisht ndryshe.<br>Nëse s’jeni i sigurt, në sisteme moderne parapëlqehet GPT. + Lloji i <strong>tabelës së pjesëve</strong> në pajisjen e përzgjedhur të depozitimeve.<br><br>Mënyra e vetme për ndryshim të tabelës së pjesëve është të fshihet dhe rikrijohet nga e para tabela e pjesëve, çka shkatërron krejt të dhënat në pajisjen e depozitimit.<br>Ky instalues do të ruajë tabelën e tanishme të pjesëve, veç në zgjedhshi shprehimisht ndryshe.<br>Nëse s’jeni i sigurt, në sisteme moderne parapëlqehet GPT. This device has a <strong>%1</strong> partition table. - Kjo pajisje ka një tabelë ndarjesh <strong>%1</strong>. + Kjo pajisje ka një tabelë pjesësh <strong>%1</strong>. This is a <strong>loop</strong> device.<br><br>It is a pseudo-device with no partition table that makes a file accessible as a block device. This kind of setup usually only contains a single filesystem. - Kjo është një pajisje <strong>loop</strong>.<br><br>Është një pseudo-pajisje pa tabelë ndarjesh, që e bën një kartelë të përdorshme si një pajisje blloqesh. Kjo lloj skeme zakonisht përmban një sistem të vetëm kartelash. + Kjo është një pajisje <strong>loop</strong>.<br><br>Është një pseudo-pajisje pa tabelë pjesësh, që e bën një kartelë të përdorshme si një pajisje blloqesh. Kjo lloj skeme zakonisht përmban një sistem të vetëm kartelash. This installer <strong>cannot detect a partition table</strong> on the selected storage device.<br><br>The device either has no partition table, or the partition table is corrupted or of an unknown type.<br>This installer can create a new partition table for you, either automatically, or through the manual partitioning page. - Ky instalues <strong>s’pikas dot tabelë ndarjesh</strong> te pajisja e depozitimit e përzgjedhur.<br><br>Ose pajisja s’ka tabelë ndarjesh, ose tabela e ndarjeve është e dëmtuar ose e një lloji të panjohur.<br>Ky instalues mund të krijojë për ju një tabelë të re ndarjesh, ose vetvetiu, ose përmes faqes së pjesëzimit dorazi. + Ky instalues <strong>s’pikas dot tabelë pjesësh</strong> te pajisja e depozitimit e përzgjedhur.<br><br>Ose pajisja s’ka tabelë pjesësh, ose tabela e pjesëve është e dëmtuar ose e një lloji të panjohur.<br>Ky instalues mund të krijojë për ju një tabelë të re pjesësh, ose vetvetiu, ose përmes faqes së pjesëzimit dorazi. <br><br>This is the recommended partition table type for modern systems which start from an <strong>EFI</strong> boot environment. - <br><br>Ky është lloji i parapëlqyer tabele ndarjesh për sisteme modernë që nisen nga një mjedis nisjesh <strong>EFI</strong>. + <br><br>Ky është lloji i parapëlqyer tabele pjesësh për sisteme modernë që nisen nga një mjedis nisjesh <strong>EFI</strong>. <br><br>This partition table type is only advisable on older systems which start from a <strong>BIOS</strong> boot environment. GPT is recommended in most other cases.<br><br><strong>Warning:</strong> the MBR partition table is an obsolete MS-DOS era standard.<br>Only 4 <em>primary</em> partitions may be created, and of those 4, one can be an <em>extended</em> partition, which may in turn contain many <em>logical</em> partitions. - <br><br>Ky lloj tabele ndarjesh është i këshillueshëm vetëm në sisteme të vjetër të cilët nisen nga një mjedis nisjesh <strong>BIOS</strong>. Në shumicën e rasteve të tjera këshillohet GPT.<br><br><strong>Kujdes:</strong> Tabela e ndarjeve MBR është një standard i vjetruar, i erës MS-DOS.<br>Mund të krijohen vetëm 4 ndarje <em>parësore</em>, dhe nga këto 4, një mund të jetë ndarje <em>extended</em>, e cila nga ana e vet mund të përmbajë mjaft ndarje <em>logjike</em>. + <br><br>Ky lloj tabele pjesësh është i këshillueshëm vetëm në sisteme të vjetër të cilët nisen nga një mjedis nisjesh <strong>BIOS</strong>. Në shumicën e rasteve të tjera këshillohet GPT.<br><br><strong>Kujdes:</strong> Tabela e pjesëve MBR është një standard i vjetruar, i erës MS-DOS.<br>Mund të krijohen vetëm 4 pjesë <em>parësore</em>, dhe nga këto 4, një mund të jetë pjesë <em>extended</em>, e cila nga ana e vet mund të përmbajë mjaft pjesë <em>logjike</em>. @@ -783,18 +788,18 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Skip writing LUKS configuration for Dracut: "/" partition is not encrypted - Anashkalo shkrim formësiim LUKS për Dracut: ndarja \"/\" s’është e fshehtëzuar + Anashkalo shkrim formësimi LUKS për Dracut: pjesa \"/\" s’është e fshehtëzuar Failed to open %1 - S’arriti të hapë %1 + S’u arrit të hapet %1 DummyCppJob - + Dummy C++ Job Akt C++ Dummy @@ -804,7 +809,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Edit Existing Partition - Përpuno Ndarje Ekzistuese + Përpuno Pjesën Ekzistuese @@ -824,7 +829,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Warning: Formatting the partition will erase all existing data. - Kujdes: Formatimi i ndarjes do të fshijë krejt të dhënat ekzistuese. + Kujdes: Formatimi i pjesës do të fshijë krejt të dhënat ekzistuese. @@ -852,7 +857,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Flamurka: - + Mountpoint already in use. Please select another one. Pikë montimi tashmë e përdorur. Ju lutemi, përzgjidhni një tjetër. @@ -890,27 +895,27 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Set partition information - Caktoni të dhëna ndarjeje + Caktoni të dhëna pjese Install %1 on <strong>new</strong> %2 system partition. - Instaloje %1 në ndarje sistemi <strong>të re</strong> %2. + Instaloje %1 në pjesë sistemi <strong>të re</strong> %2. Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>. - Rregullo ndarje të <strong>re</strong> %2 me pikë montimi <strong>%1</strong>. + Rregullo pjesë të <strong>re</strong> %2 me pikë montimi <strong>%1</strong>. Install %2 on %3 system partition <strong>%1</strong>. - Instaloje %2 te ndarja e sistemit %3 <strong>%1</strong>. + Instaloje %2 te pjesa e sistemit %3 <strong>%1</strong>. Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>. - Rregullo ndarje %3 <strong>%1</strong> me pikë montimi <strong>%2</strong>. + Rregullo pjesë %3 <strong>%1</strong> me pikë montimi <strong>%2</strong>. @@ -941,12 +946,12 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. &Rinise tani - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Kaq qe.</h1><br/>%1 është instaluar në kompjuterin tuaj.<br/>Tani mundeni ta rinisni me sistemin tuaj të ri, ose të vazhdoni përdorimin e mjedisit %2 Live. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Instalimi Dështoi</h1><br/>%1 s’u instalua në kompjuterin tuaj.<br/>Mesazhi i gabimit qe: %2. @@ -974,22 +979,22 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Format partition %1 (file system: %2, size: %3 MB) on %4. - Formatoje ndarjen %1 (sistem kartelash: %2, madhësi: %3 MB) në %4. + Formatoje pjesën %1 (sistem kartelash: %2, madhësi: %3 MB) në %4. Format <strong>%3MB</strong> partition <strong>%1</strong> with file system <strong>%2</strong>. - Formato ndarje <strong>%3MB</strong> <strong>%1</strong> me sistem kartelash <strong>%2</strong>. + Formato pjesë <strong>%3MB</strong> <strong>%1</strong> me sistem kartelash <strong>%2</strong>. Formatting partition %1 with file system %2. - Po formatohet ndarja %1 me sistem kartelash %2. + Po formatohet pjesa %1 me sistem kartelash %2. The installer failed to format partition %1 on disk '%2'. - Instaluesi s’arriti të formatojë ndarjen %1 në diskun '%2'. + Instaluesi s’arriti të formatojë pjesën %1 në diskun '%2'. @@ -1021,12 +1026,12 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. KeyboardPage - + Set keyboard model to %1.<br/> Si model tastiere do të caktohet %1.<br/> - + Set keyboard layout to %1/%2. Si model tastiere do të caktohet %1%2. @@ -1070,64 +1075,64 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Formular - + I accept the terms and conditions above. I pranoj termat dhe kushtet më sipër. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Marrëveshje Licence</h1>Kjo procedurë rregullimi do të instalojë software pronësor që është subjekt kushtesh licencimi. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - Ju lutemi, shqyrtoni Marrëveshje Licencimi Për Përdorues të Thjeshtë (EULAs) më sipër.<br/>Nëse nuk pajtohemi me kushtet, procedura e rregullimit s’mund të shkojë më tej. + Ju lutemi, shqyrtoni Marrëveshje Licencimi Për Përdorues të Thjeshtë (EULAs) më sipër.<br/>Nëse nuk pajtoheni me kushtet, procedura e rregullimit s’mund të shkojë më tej. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Marrëveshje Licence</h1>Që të furnizojë veçori shtesë dhe të përmirësojë punën e përdoruesit, kjo procedurë rregullimi mundet të instalojë software pronësor që është subjekt kushtesh licencimi. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - Ju lutemi, shqyrtoni Marrëveshje Licencimi Për Përdorues të Thjeshtë (EULAs) më sipër.<br/>Nëse nuk pajtohemi me kushtet, nuk do të instalohet software pronësor, dhe në vend të tij do të përdoren alternativa nga burimi i hapët. + Ju lutemi, shqyrtoni Marrëveshje Licencimi Për Përdorues të Thjeshtë (EULAs) më sipër.<br/>Nëse nuk pajtoheni me kushtet, nuk do të instalohet software pronësor, dhe në vend të tij do të përdoren alternativa nga burimi i hapët. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>përudhës %1</strong><br/>nga %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>Përudhës grafik %1</strong><br/><font color=\"Grey\">nga %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>Shtojcë shfletuesi %1</strong><br/><font color=\"Grey\">nga %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>Kodek %1</strong><br/><font color=\"Grey\">nga %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>Paketë %1</strong><br/><font color=\"Grey\">nga %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color=\"Grey\">nga %2</font> - + <a href="%1">view license agreement</a> <a href="%1">shihni marrëveshje licence</a> @@ -1183,12 +1188,12 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. LocaleViewStep - + Loading location data... Po ngarkohen të dhëna vendndodhjeje… - + Location Vendndodhje @@ -1196,22 +1201,22 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. NetInstallPage - + Name Emër - + Description Përshkrim - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Instalim Nga Rrjeti. (U çaktivizua: S’arrihet të sillen lista paketash, kontrolloni lidhjen tuaj në rrjet) - + Network Installation. (Disabled: Received invalid groups data) Instalim Nga Rrjeti. (U çaktivizua: U morën të dhëna të pavlefshme grupesh) @@ -1219,7 +1224,7 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. NetInstallViewStep - + Package selection Përzgjedhje paketash @@ -1227,242 +1232,242 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. PWQ - + Password is too short Fjalëkalimi është shumë i shkurtër - + Password is too long Fjalëkalimi është shumë i gjatë - + Password is too weak Fjalëkalimi është shumë i dobët - + Memory allocation error when setting '%1' Gabim caktimi kujtese kur rregullohej '%1' - + Memory allocation error Gabim caktimi kujtese - + The password is the same as the old one Fjalëkalimi është i njëjtë me të vjetrin - + The password is a palindrome Fjalëkalimi është një palindromë - + The password differs with case changes only Fjalëkalimet ndryshojnë vetëm nga shkronja të mëdha apo të vogla - + The password is too similar to the old one Fjalëkalimi është shumë i ngjashëm me të vjetrin - + The password contains the user name in some form Fjalëkalimi, në një farë mënyre, përmban emrin e përdoruesit - + The password contains words from the real name of the user in some form Fjalëkalim, në një farë mënyre, përmban fjalë nga emri i vërtetë i përdoruesit - + The password contains forbidden words in some form Fjalëkalimi, në një farë mënyre, përmban fjalë të ndaluara - + The password contains less than %1 digits Fjalëkalimi përmban më pak se %1 shifra - + The password contains too few digits Fjalëkalimi përmban shumë pak shifra - + The password contains less than %1 uppercase letters Fjalëkalimi përmban më pak se %1 shkronja të mëdha - + The password contains too few uppercase letters Fjalëkalimi përmban pak shkronja të mëdha - + The password contains less than %1 lowercase letters Fjalëkalimi përmban më pak se %1 shkronja të vogla - + The password contains too few lowercase letters Fjalëkalimi përmban pak shkronja të vogla - + The password contains less than %1 non-alphanumeric characters Fjalëkalimi përmban më pak se %1 shenja jo alfanumerike - + The password contains too few non-alphanumeric characters Fjalëkalimi përmban pak shenja jo alfanumerike - + The password is shorter than %1 characters Fjalëkalimi është më i shkurtër se %1 shenja - + The password is too short Fjalëkalimi është shumë i shkurtër - + The password is just rotated old one Fjalëkalimi është i vjetri i ricikluar - + The password contains less than %1 character classes Fjalëkalimi përmban më pak se %1 klasa shkronjash - + The password does not contain enough character classes - Fjalëkalimi nuk përmban klasa të mjaftueshme shenjash + Fjalëkalimi s’përmban klasa të mjaftueshme shenjash - + The password contains more than %1 same characters consecutively Fjalëkalimi përmban më shumë se %1 shenja të njëjta njëra pas tjetrës - + The password contains too many same characters consecutively Fjalëkalimi përmban shumë shenja të njëjta njëra pas tjetrës - + The password contains more than %1 characters of the same class consecutively Fjalëkalimi përmban më shumë se %1 shenja të së njëjtës klasë njëra pas tjetrës - + The password contains too many characters of the same class consecutively Fjalëkalimi përmban shumë shenja të së njëjtës klasë njëra pas tjetrës - + The password contains monotonic sequence longer than %1 characters Fjalëkalimi përmban varg monoton më të gjatë se %1 shenja - + The password contains too long of a monotonic character sequence Fjalëkalimi përmban varg monoton gjatë shenjash - + No password supplied S’u dha fjalëkalim - + Cannot obtain random numbers from the RNG device S’merren dot numra të rëndomtë nga pajisja RNG - + Password generation failed - required entropy too low for settings Prodhimi i fjalëkalimit dështoi - entropi e domosdoshme për rregullimin shumë e ulët - + The password fails the dictionary check - %1 - Fjalëkalimi s’kaloi dot kontrollin kundrejt fjalorit - %1 + Fjalëkalimi s’kalon dot kontrollin kundrejt fjalorit - %1 - + The password fails the dictionary check - Fjalëkalimi s’kaloi dot kontrollin kundrejt fjalorit + Fjalëkalimi s’kalon dot kontrollin kundrejt fjalorit - + Unknown setting - %1 Rregullim i panjohur - %1 - + Unknown setting Rregullim i panjohur - + Bad integer value of setting - %1 Vlerë e plotë e gabuar për rregullimin - %1 - + Bad integer value Vlerë e plotë e gabuar - + Setting %1 is not of integer type Rregullimi për %1 is s’është numër i plotë - + Setting is not of integer type Rregullimi s’është numër i plotë - + Setting %1 is not of string type Rregullimi për %1 is s’është i llojit varg - + Setting is not of string type Rregullimi s’është i llojit varg - + Opening the configuration file failed Dështoi hapja e kartelës së formësimit - + The configuration file is malformed Kartela e formësimit është e keqformuar - + Fatal failure Dështim fatal - + Unknown error Gabim i panjohur @@ -1585,12 +1590,12 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. New partition for %1 - Ndarje e re për %1 + Pjesë e re për %1 New partition - Ndarje e re + Pjesë e re @@ -1601,34 +1606,34 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. PartitionModel - - + + Free Space Hapësirë e Lirë - - + + New partition - Ndarje e re + Pjesë e re - + Name Emër - + File System Sistem Kartelash - + Mount Point Pikë Montimi - + Size Madhësi @@ -1653,11 +1658,11 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. New Partition &Table - &Tabelë e Re Ndarjesh + &Tabelë e Re Pjesësh - &Create + Cre&ate &Krijoje @@ -1676,107 +1681,117 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Instalo &ngarkues nisjesh në: - + Are you sure you want to create a new partition table on %1? - Jeni i sigurt se doni të krijoni një tabelë të re ndarjesh në %1? + Jeni i sigurt se doni të krijoni një tabelë të re pjesësh në %1? + + + + Can not create new partition + S’krijohet dot pjesë e re + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + Tabela e pjesëzimit te %1 ka tashmë %2 pjesë parësore, dhe s’mund të shtohen të tjera. Ju lutemi, në vend të kësaj, hiqni një pjesë parësore dhe shtoni një pjesë të zgjeruar. PartitionViewStep - + Gathering system information... Po grumbullohen të dhëna mbi sistemin… - + Partitions - Ndarje + Pjesë - + Install %1 <strong>alongside</strong> another operating system. Instalojeni %1 <strong>në krah</strong> të një tjetër sistemi operativ. - + <strong>Erase</strong> disk and install %1. <strong>Fshije</strong> diskun dhe instalo %1. - + <strong>Replace</strong> a partition with %1. - <strong>Zëvendësojeni</strong> një ndarje me %1. + <strong>Zëvendësojeni</strong> një pjesë me %1. - + <strong>Manual</strong> partitioning. Pjesëzim <strong>dorazi</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Instaloje %1 <strong>në krah</strong> të një tjetri sistemi operativ në diskun <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Fshije</strong> diskun <strong>%2</strong> (%3) dhe instalo %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - <strong>Zëvendëso</strong> një ndarje te disku <strong>%2</strong> (%3) me %1. + <strong>Zëvendëso</strong> një pjesë te disku <strong>%2</strong> (%3) me %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Pjesëzim <strong>dorazi</strong> në diskun <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disku <strong>%1</strong> (%2) - + Current: E tanishmja: - + After: Më Pas: - + No EFI system partition configured - S’ka të formësuar ndarje sistemi EFI + S’ka të formësuar pjesë sistemi EFI - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - Që të niset %1, është e domosdoshme një ndarje sistemi EFI.<br/><br/>Që të formësoni një ndarje sistemi EFI, kthehuni mbrapsht dhe përzgjidhni ose krijoni një sistem kartelash FAT32 me flamurkën <strong>esp</strong> të aktivizuar dhe me pikë montimi <strong>%2</strong>.<br/><br/>Mund të vazhdoni pa rregulluar një ndarje sistemi EFI, por mundet që sistemi të mos arrijë dot të niset. + Që të niset %1, është e domosdoshme një pjesë sistemi EFI.<br/><br/>Që të formësoni një pjesë sistemi EFI, kthehuni mbrapsht dhe përzgjidhni ose krijoni një sistem kartelash FAT32 me flamurkën <strong>esp</strong> të aktivizuar dhe me pikë montimi <strong>%2</strong>.<br/><br/>Mund të vazhdoni pa rregulluar një pjesë sistemi EFI, por mundet që sistemi të mos arrijë dot të niset. - + EFI system partition flag not set - S’është vënë flamurkë EFI ndarjeje sistemi + S’është vënë flamurkë EFI pjese sistemi - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - Që të niset %1, është e domosdoshme një ndarje sistemi EFI.<br/><br/>Është formësuar një ndarje me pikë montimi <strong>%2</strong>, por pa i vënë flamurkën <strong>esp</strong>.<br/>Që t’ia vini, kthehuni mbrapsht dhe përpunoni ndarjen.<br/><br/>Mund të vazhdoni pa i vënë flamurkën, por mundet që sistemi të mos arrijë dot të niset. + Që të niset %1, është e domosdoshme një pjesë sistemi EFI.<br/><br/>Është formësuar një pjesë me pikë montimi <strong>%2</strong>, por pa i vënë flamurkën <strong>esp</strong>.<br/>Që t’ia vini, kthehuni mbrapsht dhe përpunoni pjesë.<br/><br/>Mund të vazhdoni pa i vënë flamurkën, por mundet që sistemi të mos arrijë dot të niset. - + Boot partition not encrypted - Ndarje nisjesh e pafshehtëzuar + Pjesë nisjesh e pafshehtëzuar - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. - Tok me ndarjen e fshehtëzuar <em>root</em> qe rregulluar edhe një ndarje <em>boot</em> veçmas, por ndarja <em>boot</em> s’është e fshehtëzuar.<br/><br/>Ka preokupime mbi sigurinë e këtij lloj rregullimi, ngaqë kartela të rëndësishme sistemi mbahen në një ndarje të pafshehtëzuar.<br/>Mund të vazhdoni nëse doni, por shkyçja e sistemit të kartelave do të ndodhë më vonë, gjatë nisjes së sistemit.<br/>Që të fshehtëzoni ndarjen <em>boot</em>, kthehuni mbrapsht dhe rikrijojeni, duke përzgjedhur te skena e krijimit të ndarjes <strong>Fshehtëzoje</strong>. + Tok me pjesën e fshehtëzuar <em>root</em> qe rregulluar edhe një pjesë <em>boot</em> veçmas, por pjesa <em>boot</em> s’është e fshehtëzuar.<br/><br/>Ka preokupime mbi sigurinë e këtij lloj rregullimi, ngaqë kartela të rëndësishme sistemi mbahen në një pjesë të pafshehtëzuar.<br/>Mund të vazhdoni nëse doni, por shkyçja e sistemit të kartelave do të ndodhë më vonë, gjatë nisjes së sistemit.<br/>Që të fshehtëzoni pjesën <em>boot</em>, kthehuni mbrapsht dhe rikrijojeni, duke përzgjedhur te skena e krijimit të pjesës <strong>Fshehtëzoje</strong>. @@ -1806,30 +1821,48 @@ Instaluesi do të mbyllet dhe krejt ndryshimet do të hidhen tej. Vendmbajtëse - - 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. - Ju lutemi, zgjidhni një look-and-feel (pamje dhe ndjesi) për Desktopin KDE Plasma. Mund edhe ta anashkaloni këtë hap dhe pamje-dhe-ndjesi ta formësoni pasi të jetë instaluar sistemi. + + 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. + Ju lutemi, zgjidhni pamje dhe ndjesi për Desktopin KDE Plasma. Mundeni edhe ta anashkaloni këtë hap dhe të formësoni pamje dhe ndjesi pasi të jetë instaluar sistemi. Klikimi mbi një përzgjedhje për pamje dhe ndjesi do t’ju japë një paraparje të atypëratyshme të tyre. PlasmaLnfViewStep - + Look-and-Feel Pamje-dhe-Ndjesi + + PreserveFiles + + + Saving files for later ... + Po ruhen kartela për më vonë ... + + + + No files configured to save for later. + S’ka kartela të formësuara për t’i ruajtur më vonë. + + + + Not all of the configured files could be preserved. + S’u mbajtën dot tërë kartelat e formësuara. + + ProcessResult - + There was no output from the command. S’pati përfundim nga urdhri. - + Output: @@ -1838,52 +1871,52 @@ Përfundim: - + External command crashed. Urdhri i jashtëm u vithis. - + Command <i>%1</i> crashed. Urdhri <i>%1</i> u vithis. - + External command failed to start. Dështoi nisja e urdhrit të jashtëm. - + Command <i>%1</i> failed to start. Dështoi nisja e urdhrit <i>%1</i>. - + Internal error when starting command. Gabim i brendshëm kur niset urdhri. - + Bad parameters for process job call. Parametra të gabuar për thirrje akti procesi. - + External command failed to finish. - Udhri i jashtëm s’arriti të përfundohej. + S’u arrit të përfundohej urdhër i jashtëm. - + Command <i>%1</i> failed to finish in %2 seconds. - Urdhri <i>%1</i> s’arriti të përfundohej në %2 sekonda. + S’u arrit të përfundohej urdhri <i>%1</i> në %2 sekonda. - + External command finished with errors. Urdhri i jashtë përfundoi me gabime. - + Command <i>%1</i> finished with exit code %2. Urdhri <i>%1</i> përfundoi me kod daljeje %2. @@ -1902,29 +1935,29 @@ Përfundim: Parazgjedhje - + unknown e panjohur - + extended extended - + unformatted e paformatuar - + swap swap Unpartitioned space or unknown partition table - Hapësirë e papjesëzuar ose tabelë e panjohur ndarjesh + Hapësirë e papjesëzuar ose tabelë e panjohur pjesësh @@ -1937,59 +1970,59 @@ Përfundim: Select where to install %1.<br/><font color="red">Warning: </font>this will delete all files on the selected partition. - Përzgjidhni ku të instalohet %1.<br/><font color=\"red\">Kujdes: </font>kjo do të sjellë fshirjen e krejt kartelave në ndarjen e përzgjedhur. + Përzgjidhni ku të instalohet %1.<br/><font color=\"red\">Kujdes: </font>kjo do të sjellë fshirjen e krejt kartelave në pjesën e përzgjedhur. The selected item does not appear to be a valid partition. - Objekti i përzgjedhur s’duket se është ndarje e vlefshme. + Objekti i përzgjedhur s’duket se është pjesë e vlefshme. %1 cannot be installed on empty space. Please select an existing partition. - %1 s’mund të instalohet në hapësirë të zbrazët. Ju lutemi, përzgjidhni një ndarje ekzistuese. + %1 s’mund të instalohet në hapësirë të zbrazët. Ju lutemi, përzgjidhni një pjesë ekzistuese. %1 cannot be installed on an extended partition. Please select an existing primary or logical partition. - %1 s’mund të instalohet në një ndarje të llojit extended. Ju lutemi, përzgjidhni një ndarje parësore ose logjike ekzistuese. + %1 s’mund të instalohet në një pjesë të llojit <em>extended</em>. Ju lutemi, përzgjidhni një pjesë parësore ose logjike ekzistuese. %1 cannot be installed on this partition. - %1 s’mund të instalohet në këtë ndarje. + %1 s’mund të instalohet në këtë pjesë. Data partition (%1) - Ndarje të dhënash (%1) + Pjesë të dhënash (%1) Unknown system partition (%1) - Ndarje sistemi e panjohur (%1) + Pjesë sistemi e panjohur (%1) %1 system partition (%2) - Ndarje sistemi %1 (%2) + Pjesë sistemi %1 (%2) <strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB. - <strong>%4</strong><br/><br/>Ndarja %1 është shumë e vogël për %2. Ju lutemi, përzgjidhni një ndarje me kapacitet të paktën %3 GiB. + <strong>%4</strong><br/><br/>Ndarja %1 është shumë e vogël për %2. Ju lutemi, përzgjidhni një pjesë me kapacitet të paktën %3 GiB. <strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1. - <strong>%2</strong><br/><br/>Në këtë sistem s’gjendet dot ndonjë ndarje sistemi EFI. Ju lutemi, që të rregulloni %1, kthehuni mbrapsht dhe përdorni procesin e pjesëzimit dorazi. + <strong>%2</strong><br/><br/>Në këtë sistem s’gjendet dot ndonjë pjesë sistemi EFI. Ju lutemi, që të rregulloni %1, kthehuni mbrapsht dhe përdorni procesin e pjesëzimit dorazi. <strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost. - <strong>%3</strong><br/><br/>%1 do të instalohet në %2.<br/><font color=\"red\">Kujdes: </font>krejt të dhënat në ndarjen %2 do të humbin. + <strong>%3</strong><br/><br/>%1 do të instalohet në %2.<br/><font color=\"red\">Kujdes: </font>krejt të dhënat në pjesën %2 do të humbin. @@ -1999,7 +2032,7 @@ Përfundim: EFI system partition: - Ndarje Sistemi EFI: + Pjesë Sistemi EFI: @@ -2010,52 +2043,52 @@ Përfundim: Po grumbullohen të dhëna mbi sistemin… - + has at least %1 GB available drive space ka të paktën %1 GB hapësirë të përdorshme - + There is not enough drive space. At least %1 GB is required. S’ka hapësirë të mjaftueshme. Lypset të paktën %1 GB. - + has at least %1 GB working memory ka të paktën %1 GB kujtesë të përdorshme - + The system does not have enough working memory. At least %1 GB is required. Sistemi s’ka kujtesë të mjaftueshme për të punuar. Lypsen të paktën %1 GB. - + is plugged in to a power source - është në prizë + është lidhur te një burim energjie - + The system is not plugged in to a power source. - Sistemi s'është i lidhur me ndonjë burim rryme. + Sistemi s'është i lidhur me ndonjë burim energjie. - + is connected to the Internet është lidhur në Internet - + The system is not connected to the Internet. Sistemi s’është i lidhur në Internet. - + The installer is not running with administrator rights. Instaluesi s’po xhirohet me të drejta përgjegjësi. - + The screen is too small to display the installer. Ekrani është shumë i vogël për shfaqjen e instaluesit. @@ -2065,12 +2098,12 @@ Përfundim: Resize partition %1. - Ripërmaso ndarjen %1. + Ripërmaso pjesën %1. Resize <strong>%2MB</strong> partition <strong>%1</strong> to <strong>%3MB</strong>. - Ripërmasoje ndarjen <strong>%2MB</strong> <strong>%1</strong> në <strong>%3MB</strong>. + Ripërmasoje pjesën <strong>%2MB</strong> <strong>%1</strong> në <strong>%3MB</strong>. @@ -2080,7 +2113,7 @@ Përfundim: The installer failed to resize partition %1 on disk '%2'. - Instaluesi s’arriti të ripërmasojë ndarjen %1 në diskun '%2'. + Instaluesi s’arriti të ripërmasojë pjesën %1 në diskun '%2'. @@ -2099,29 +2132,29 @@ Përfundim: SetHostNameJob - + Set hostname %1 Cakto strehëemër %1 - + Set hostname <strong>%1</strong>. Cakto strehëemër <strong>%1</strong>. - + Setting hostname %1. Po caktohet strehëemri %1. - - + + Internal Error Gabim i Brendshëm - - + + Cannot write hostname to target system S’shkruhet dot strehëemër te sistemi i synuar @@ -2143,7 +2176,7 @@ Përfundim: Failed to write to %1 - Dështoi në shkrimin te %1 + S’u arrit të shkruhej te %1 @@ -2161,17 +2194,17 @@ Përfundim: Set flags on partition %1. - Caktoni flamurka në ndarjen %1. + Caktoni flamurka në pjesën %1. Set flags on %1MB %2 partition. - Caktoni flamurka në ndarjen %1MB %2.` + Caktoni flamurka në pjesën %1MB %2.` Set flags on new partition. - Caktoni flamurka në ndarje të re. + Caktoni flamurka në pjesë të re. @@ -2191,52 +2224,52 @@ Përfundim: Flag partition <strong>%1</strong> as <strong>%2</strong>. - I vini shenjë ndarjes <strong>%1</strong> si <strong>%2</strong>. + I vini shenjë pjesës <strong>%1</strong> si <strong>%2</strong>. Flag %1MB <strong>%2</strong> partition as <strong>%3</strong>. - I vini shenjë ndarjes %1MB <strong>%2</strong> si <strong>%3</strong>. + I vini shenjë pjesës %1MB <strong>%2</strong> si <strong>%3</strong>. Flag new partition as <strong>%1</strong>. - I vini shenjë ndarjes së re si <strong>%1</strong>. + I vini shenjë pjesës së re si <strong>%1</strong>. Clearing flags on partition <strong>%1</strong>. - Po hiqen shenjat në ndarjen <strong>%1</strong>. + Po hiqen shenjat në pjesën <strong>%1</strong>. Clearing flags on %1MB <strong>%2</strong> partition. - Po hiqen shenjat në ndarjen %1MB <strong>%2</strong>. + Po hiqen shenjat në pjesën %1MB <strong>%2</strong>. Clearing flags on new partition. - Po hiqen shenjat në ndarjen e re. + Po hiqen shenjat në pjesën e re. Setting flags <strong>%2</strong> on partition <strong>%1</strong>. - Po vihen flamurkat <strong>%2</strong> në ndarjen <strong>%1</strong>. + Po vihen flamurkat <strong>%2</strong> në pjesën <strong>%1</strong>. Setting flags <strong>%3</strong> on %1MB <strong>%2</strong> partition. - Po vihen flamurkat <strong>%3</strong> në ndarjen %1MB <strong>%2</strong>. + Po vihen flamurkat <strong>%3</strong> në pjesën %1MB <strong>%2</strong>. Setting flags <strong>%1</strong> on new partition. - Po vihen flamurkat <strong>%1</strong> në ndarjen e re. + Po vihen flamurkat <strong>%1</strong> në pjesën e re. The installer failed to set flags on partition %1. - Instaluesi s’arriti të vërë flamurka në ndarjen %1. + Instaluesi s’arriti të vërë flamurka në pjesën %1. @@ -2328,6 +2361,15 @@ Përfundim: Akt Procesesh Shelli + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2440,7 +2482,7 @@ Përfundim: By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes. - Duke përzgjedhur këtë, di të dërgoni të dhëna mbi instalimin dhe hardware-in tuaj. Këto të dhëna do të <b>dërgohen vetëm një herë</b>, pasi të përfundojë instalimi. + Duke përzgjedhur këtë, do të dërgoni të dhëna mbi instalimin dhe hardware-in tuaj. Këto të dhëna do të <b>dërgohen vetëm një herë</b>, pasi të përfundojë instalimi. @@ -2498,7 +2540,7 @@ Përfundim: UsersViewStep - + Users Përdorues @@ -2556,7 +2598,7 @@ Përfundim: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Të drejta Kopjimi 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Të drejta Kopjimi 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Falënderime për: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg dhe <a href="https://www.transifex.com/calamares/calamares/">ekipin e përkthyesve të Calamares-it</a>.<br/><br/>Zhvillimi i <a href="https://calamares.io/">Calamares</a> sponsorizohet nga <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software. - + %1 support Asistencë %1 @@ -2564,7 +2606,7 @@ Përfundim: WelcomeViewStep - + Welcome Mirë se vini diff --git a/lang/calamares_sr.ts b/lang/calamares_sr.ts index 436a0d457..311181629 100644 --- a/lang/calamares_sr.ts +++ b/lang/calamares_sr.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Инсталирај @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Завршено @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Покрени команду %1 %2 - + Running command %1 %2 Извршавам команду %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Извршавам %1 операцију. - + Bad working directory path Лоша путања радног директоријума - + Working directory %1 for python job %2 is not readable. Радни директоријум %1 за питонов посао %2 није читљив. - + Bad main script file Лош фајл главне скрипте - + Main script file %1 for python job %2 is not readable. Фајл главне скрипте %1 за питонов посао %2 није читљив. - + Boost.Python error in job "%1". Boost.Python грешка у послу „%1“. @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Назад - + + &Next &Следеће - - + + &Cancel &Откажи - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Отказати инсталацију? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Да ли стварно желите да прекинете текући процес инсталације? Инсталер ће бити затворен и све промене ће бити изгубљене. - + &Yes - + &No - + &Close - + Continue with setup? Наставити са подешавањем? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now &Инсталирај сада - + Go &back Иди &назад - + &Done - + The installation is complete. Close the installer. - + Error Грешка - + Installation Failed Инсталација није успела @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 Уклони тачке припајања за операције партиције на %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 Уклоњене све тачке припајања за %1 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. Вели&чина - + En&crypt - + Logical Логичка - + Primary Примарна - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Направи корисника %1 - + Create user <strong>%1</strong>. - + Creating user %1. Правим корисника %1 - + Sudoers dir is not writable. Није могуће писати у "Судоерс" директоријуму. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. Није могуће променити мод (chmod) над "судоерс" фајлом - + Cannot open groups file for reading. - - - Cannot create user %1. - Није могуће направити корисника %1. - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1070,64 +1075,64 @@ The installer will quit and all changes will be lost. Форма - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location Локација @@ -1196,22 +1201,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Назив - + Description Опис - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Избор пакета @@ -1227,242 +1232,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name Назив - + File System Фајл систем - + Mount Point - + Size @@ -1657,7 +1662,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1676,105 +1681,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: Тренутно: - + After: После: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Лоши параметри при позиву посла процеса. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: подразумевано - + unknown непознато - + extended проширена - + unformatted неформатирана - + swap @@ -2007,52 +2040,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error Интерна грешка - - + + Cannot write hostname to target system @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Корисници @@ -2553,7 +2595,7 @@ Output: - + %1 support %1 подршка @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Добродошли diff --git a/lang/calamares_sr@latin.ts b/lang/calamares_sr@latin.ts index 6e4add226..646eba512 100644 --- a/lang/calamares_sr@latin.ts +++ b/lang/calamares_sr@latin.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Instaliraj @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Gotovo @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path Neispravna putanja do radne datoteke - + Working directory %1 for python job %2 is not readable. Nemoguće pročitati radnu datoteku %1 za funkciju %2 u Python-u. - + Bad main script file Neispravan glavna datoteka za skriptu - + Main script file %1 for python job %2 is not readable. Glavna datoteka za skriptu %1 za Python funkciju %2 se ne može pročitati. - + Boost.Python error in job "%1". Boost.Python greška u funkciji %1 @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Nazad - + + &Next &Dalje - - + + &Cancel &Prekini - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Prekini instalaciju? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Da li stvarno želite prekinuti trenutni proces instalacije? Instaler će se zatvoriti i sve promjene će biti izgubljene. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error Greška - + Installation Failed Neuspješna instalacija @@ -430,17 +459,17 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. ClearMountsJob - + Clear mounts for partitioning operations on %1 Skini tačke montiranja za operacije nad particijama na %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 Sve tačke montiranja na %1 skinute @@ -471,20 +500,26 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. Veli&čina - + En&crypt - + Logical Logička - + Primary Primarna - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. CreateUserJob - + Create user %1 Napravi korisnika %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. Nemoguće mijenjati fajlove u sudoers direktorijumu - + Cannot create sudoers file for writing. Nemoguće napraviti sudoers fajl - + Cannot chmod sudoers file. Nemoguće uraditi chmod nad sudoers fajlom. - + Cannot open groups file for reading. Nemoguće otvoriti groups fajl - - - Cannot create user %1. - Nemoguće napraviti korisnika %1. - - - - useradd terminated with error code %1. - Komanda useradd prekinuta sa kodom greške %1 - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - Nemoguće postaviti vlasništvo nad početnim direktorijumom za korisnika %1. - - - - chown terminated with error code %1. - Komanda chown prekinuta sa kodom greške %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1070,64 +1075,64 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1183,12 +1188,12 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. LocaleViewStep - + Loading location data... Očitavam podatke o lokaciji... - + Location Lokacija @@ -1196,22 +1201,22 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. NetInstallPage - + Name Naziv - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. NetInstallViewStep - + Package selection @@ -1227,242 +1232,242 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. PartitionModel - - + + Free Space Slobodan prostor - - + + New partition Nova particija - + Name Naziv - + File System Fajl sistem - + Mount Point - + Size Veličina @@ -1657,7 +1662,7 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - &Create + Cre&ate @@ -1676,105 +1681,115 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions Particije - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: Poslije: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ Instaler će se zatvoriti i sve promjene će biti izgubljene. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Pogrešni parametri kod poziva funkcije u procesu. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2007,52 +2040,52 @@ Output: - + has at least %1 GB available drive space ima najmanje %1GB slobodnog prostora na disku - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory ima bar %1GB radne memorije - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source je priključen na izvor struje - + The system is not plugged in to a power source. - + is connected to the Internet ima vezu sa internetom - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 Postavi ime računara %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Korisnici @@ -2553,7 +2595,7 @@ Output: - + %1 support @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Dobrodošli diff --git a/lang/calamares_sv.ts b/lang/calamares_sv.ts index 03b99dde2..ecdea6978 100644 --- a/lang/calamares_sv.ts +++ b/lang/calamares_sv.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Installera @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Klar @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Kör kommando %1 %2 - + Running command %1 %2 Kör kommando %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Kör %1-operation - + Bad working directory path Arbetskatalogens sökväg är ogiltig - + Working directory %1 for python job %2 is not readable. Arbetskatalog %1 för pythonuppgift %2 är inte läsbar. - + Bad main script file Ogiltig huvudskriptfil - + Main script file %1 for python job %2 is not readable. Huvudskriptfil %1 för pythonuppgift %2 är inte läsbar. - + Boost.Python error in job "%1". Boost.Python-fel i uppgift "%'1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Bakåt - + + &Next &Nästa - - + + &Cancel Avbryt - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Avbryt installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Är du säker på att du vill avsluta installationen i förtid? Alla ändringar kommer att gå förlorade. - + &Yes - + &No - + &Close - + Continue with setup? Fortsätt med installation? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1-installeraren är på väg att göra ändringar för att installera %2.<br/><strong>Du kommer inte att kunna ångra dessa ändringar!strong> - + &Install now &Installera nu - + Go &back Gå &bakåt - + &Done - + The installation is complete. Close the installer. - + Error Fel - + Installation Failed Installationen misslyckades @@ -430,17 +459,17 @@ Alla ändringar kommer att gå förlorade. ClearMountsJob - + Clear mounts for partitioning operations on %1 Rensa monteringspunkter för partitionering på %1 - + Clearing mounts for partitioning operations on %1. Rensar monteringspunkter för partitionering på %1. - + Cleared all mounts for %1 Rensade alla monteringspunkter för %1 @@ -471,20 +500,26 @@ Alla ändringar kommer att gå förlorade. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ Alla ändringar kommer att gå förlorade. Storlek: - + En&crypt Kr%yptera - + Logical Logisk - + Primary Primär - + GPT GPT - + Mountpoint already in use. Please select another one. Monteringspunkt används redan. Välj en annan. @@ -644,70 +679,40 @@ Alla ändringar kommer att gå förlorade. CreateUserJob - + Create user %1 Skapar användare %1 - + Create user <strong>%1</strong>. Skapa användare <strong>%1</strong>. - + Creating user %1. Skapar användare %1 - + Sudoers dir is not writable. Sudoerkatalogen är inte skrivbar. - + Cannot create sudoers file for writing. Kunde inte skapa sudoerfil för skrivning. - + Cannot chmod sudoers file. Kunde inte chmodda sudoerfilen. - + Cannot open groups file for reading. Kunde inte öppna gruppfilen för läsning. - - - Cannot create user %1. - Kunde inte skapa användaren %1. - - - - useradd terminated with error code %1. - useradd stoppades med felkod %1. - - - - Cannot add user %1 to groups: %2. - Kan inte lägga till användare %1 till grupper: %2. - - - - usermod terminated with error code %1. - usermod avslutade med felkod %1. - - - - Cannot set home directory ownership for user %1. - Kunde inte ge användaren %1 äganderätt till sin hemkatalog. - - - - chown terminated with error code %1. - chown stoppades med felkod %1. - DeletePartitionJob @@ -794,7 +799,7 @@ Alla ändringar kommer att gå förlorade. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ Alla ändringar kommer att gå förlorade. Flaggor: - + Mountpoint already in use. Please select another one. Monteringspunkt används redan. Välj en annan. @@ -941,12 +946,12 @@ Alla ändringar kommer att gå förlorade. Sta&rta om nu - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Klappat och klart.</h1><br/>%1 har installerats på din dator.<br/>Du kan nu starta om till ditt nya system, eller fortsätta att använda %2 i liveläge. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ Alla ändringar kommer att gå förlorade. KeyboardPage - + Set keyboard model to %1.<br/> Sätt tangenbordsmodell till %1.<br/> - + Set keyboard layout to %1/%2. Sätt tangentbordslayout till %1/%2. @@ -1070,64 +1075,64 @@ Alla ändringar kommer att gå förlorade. Formulär - + I accept the terms and conditions above. Jag accepterar villkoren och avtalet ovan. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Licensavtal</h1>Denna installationsprocedur kommer att installera proprietär mjukvara som omfattas av licensvillkor. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Läs igenom End User Agreements (EULA:s) ovan.<br/>Om du inte accepterar villkoren kan inte installationsproceduren fortsätta. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Licensavtal</h1>Denna installationsprocedur kan installera proprietär mjukvara som omfattas av licensvillkor för att tillhandahålla ytterligare funktioner och förbättra användarupplevelsen. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1-drivrutin</strong><br/>från %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 grafikdrivrutin</strong><br/><font color="Grey">från %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 insticksprogram</strong><br/><font color="Grey">från %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 codec</strong><br/><font color="Grey">från %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1-paket</strong><br/><font color="Grey">från %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">från %2</font> - + <a href="%1">view license agreement</a> <a href="%1">visa licensavtal</a> @@ -1183,12 +1188,12 @@ Alla ändringar kommer att gå förlorade. LocaleViewStep - + Loading location data... Laddar platsdata... - + Location Plats @@ -1196,22 +1201,22 @@ Alla ändringar kommer att gå förlorade. NetInstallPage - + Name Namn - + Description Beskrivning - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Nätverksinstallation. (Inaktiverad: Kan inte hämta paketlistor, kontrollera nätverksanslutningen) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ Alla ändringar kommer att gå förlorade. NetInstallViewStep - + Package selection Paketval @@ -1227,242 +1232,242 @@ Alla ändringar kommer att gå förlorade. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ Alla ändringar kommer att gå förlorade. PartitionModel - - + + Free Space Ledigt utrymme - - + + New partition Ny partition - + Name Namn - + File System Filsystem - + Mount Point Monteringspunkt - + Size Storlek @@ -1657,8 +1662,8 @@ Alla ändringar kommer att gå förlorade. - &Create - Skapa + Cre&ate + @@ -1676,105 +1681,115 @@ Alla ändringar kommer att gå förlorade. Installera uppstartshanterare på: - + Are you sure you want to create a new partition table on %1? Är du säker på att du vill skapa en ny partitionstabell på %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Samlar systeminformation... - + Partitions Partitioner - + Install %1 <strong>alongside</strong> another operating system. Installera %1 <strong>bredvid</strong> ett annat operativsystem. - + <strong>Erase</strong> disk and install %1. <strong>Rensa</strong> disken och installera %1. - + <strong>Replace</strong> a partition with %1. <strong>Ersätt</strong> en partition med %1. - + <strong>Manual</strong> partitioning. <strong>Manuell</strong> partitionering. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Installera %1 <strong>bredvid</strong> ett annat operativsystem på disken <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Rensa</strong> disken <strong>%2</strong> (%3) och installera %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Ersätt</strong> en partition på disken <strong>%2</strong> (%3) med %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>Manuell</strong> partitionering på disken <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Nuvarande: - + After: Efter: - + No EFI system partition configured Ingen EFI system partition konfigurerad - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ Alla ändringar kommer att gå förlorade. - - Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Ogiltiga parametrar för processens uppgiftsanrop. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: Standard - + unknown okänd - + extended utökad - + unformatted oformaterad - + swap @@ -2007,52 +2040,52 @@ Output: Samlar systeminformation... - + has at least %1 GB available drive space har minst %1 GB tillgängligt utrymme på hårddisken - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory har minst %1 GB arbetsminne - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source är ansluten till en strömkälla - + The system is not plugged in to a power source. Systemet är inte anslutet till någon strömkälla. - + is connected to the Internet är ansluten till internet - + The system is not connected to the Internet. Systemet är inte anslutet till internet. - + The installer is not running with administrator rights. Installationsprogammet körs inte med administratörsrättigheter. - + The screen is too small to display the installer. Skärmen är för liten för att visa installationshanteraren. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 Ange värdnamn %1 - + Set hostname <strong>%1</strong>. Ange värdnamn <strong>%1</strong>. - + Setting hostname %1. Anger värdnamn %1. - - + + Internal Error Internt fel - - + + Cannot write hostname to target system Kan inte skriva värdnamn till målsystem @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users Användare @@ -2553,7 +2595,7 @@ Output: - + %1 support %1-support @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome Välkommen diff --git a/lang/calamares_th.ts b/lang/calamares_th.ts index 6cbdebfe0..848722d41 100644 --- a/lang/calamares_th.ts +++ b/lang/calamares_th.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install ติดตั้ง @@ -105,7 +113,7 @@ Calamares::JobThread - + Done เสร็จสิ้น @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 ทำคำสั่ง %1 %2 - + Running command %1 %2 กำลังเรียกใช้คำสั่ง %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. การปฏิบัติการ %1 กำลังทำงาน - + Bad working directory path เส้นทางไดเรคทอรีที่ใช้ทำงานไม่ถูกต้อง - + Working directory %1 for python job %2 is not readable. ไม่สามารถอ่านไดเรคทอรีที่ใช้ทำงาน %1 สำหรับ python %2 ได้ - + Bad main script file ไฟล์สคริปต์หลักไม่ถูกต้อง - + Main script file %1 for python job %2 is not readable. ไม่สามารถอ่านไฟล์สคริปต์หลัก %1 สำหรับ python %2 ได้ - + Boost.Python error in job "%1". Boost.Python ผิดพลาดที่งาน "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &B ย้อนกลับ - + + &Next &N ถัดไป - - + + &Cancel &C ยกเลิก - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? ยกเลิกการติดตั้ง? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. คุณต้องการยกเลิกกระบวนการติดตั้งที่กำลังดำเนินการอยู่หรือไม่? ตัวติดตั้งจะสิ้นสุดการทำงานและไม่บันทึกการเปลี่ยนแปลงที่ได้ดำเนินการก่อนหน้านี้ - + &Yes - + &No - + &Close - + Continue with setup? ดำเนินการติดตั้งต่อหรือไม่? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> ตัวติดตั้ง %1 กำลังพยายามที่จะทำการเปลี่ยนแปลงในดิสก์ของคุณเพื่อติดตั้ง %2<br/><strong>คุณจะไม่สามารถยกเลิกการเปลี่ยนแปลงเหล่านี้ได้</strong> - + &Install now &ติดตั้งตอนนี้ - + Go &back กลั&บไป - + &Done - + The installation is complete. Close the installer. - + Error ข้อผิดพลาด - + Installation Failed การติดตั้งล้มเหลว @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 ล้างจุดเชื่อมต่อสำหรับการแบ่งพาร์ทิชันบน %1 - + Clearing mounts for partitioning operations on %1. กำลังล้างจุดเชื่อมต่อสำหรับการดำเนินงานเกี่ยวกับพาร์ทิชันบน %1 - + Cleared all mounts for %1 ล้างจุดเชื่อมต่อทั้งหมดแล้วสำหรับ %1 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. &Z ขนาด: - + En&crypt - + Logical โลจิคอล - + Primary หลัก - + GPT GPT - + Mountpoint already in use. Please select another one. @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 สร้างผู้ใช้ %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. ไม่สามารถเขียนไดเรคทอรี Sudoers ได้ - + Cannot create sudoers file for writing. ไม่สามารถสร้างไฟล์ sudoers เพื่อเขียนได้ - + Cannot chmod sudoers file. ไม่สามารถ chmod ไฟล์ sudoers - + Cannot open groups file for reading. ไม่สามารถเปิดไฟล์ groups เพื่ออ่านได้ - - - Cannot create user %1. - ไม่สามารถสร้างผู้ใช้ %1 - - - - useradd terminated with error code %1. - useradd จบด้วยโค้ดข้อผิดพลาด %1 - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - usermod จบด้วยโค้ดข้อผิดพลาด %1 - - - - Cannot set home directory ownership for user %1. - ไม่สามารถตั้งค่าความเป็นเจ้าของไดเรคทอรี home สำหรับผู้ใช้ %1 - - - - chown terminated with error code %1. - chown จบด้วยโค้ดข้อผิดพลาด %1 - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. Flags: - + Mountpoint already in use. Please select another one. @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. &R เริ่มต้นใหม่ทันที - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>เสร็จสิ้น</h1><br/>%1 ติดตั้งบนคอมพิวเตอร์ของคุณเรียบร้อย<br/>คุณสามารถเริ่มทำงานเพื่อเข้าระบบใหม่ของคุณ หรือดำเนินการใช้ %2 Live environment ต่อไป - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> ตั้งค่าโมเดลแป้นพิมพ์เป็น %1<br/> - + Set keyboard layout to %1/%2. ตั้งค่าแบบแป้นพิมพ์เป็น %1/%2 @@ -1070,64 +1075,64 @@ The installer will quit and all changes will be lost. แบบฟอร์ม - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... กำลังโหลดข้อมูลตำแหน่ง... - + Location ตำแหน่ง @@ -1196,22 +1201,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name ชื่อ - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1219,7 +1224,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1227,242 +1232,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1601,34 +1606,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space พื้นที่ว่าง - - + + New partition พาร์ทิชันใหม่ - + Name ชื่อ - + File System ระบบไฟล์ - + Mount Point จุดเชื่อมต่อ - + Size ขนาด @@ -1657,8 +1662,8 @@ The installer will quit and all changes will be lost. - &Create - &C สร้าง + Cre&ate + @@ -1676,105 +1681,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? คุณแน่ใจว่าจะสร้างตารางพาร์ทิชันใหม่บน %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... กำลังรวบรวมข้อมูลของระบบ... - + Partitions พาร์ทิชัน - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: หลัง: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1806,81 +1821,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. พารามิเตอร์ไม่ถูกต้องสำหรับการเรียกการทำงาน - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1932,22 @@ Output: ค่าเริ่มต้น - + unknown - + extended - + unformatted - + swap @@ -2007,52 +2040,52 @@ Output: กำลังรวบรวมข้อมูลของระบบ... - + has at least %1 GB available drive space มีพื้นที่บนไดรฟ์เหลืออย่างน้อย %1 GB - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory มีพื้นที่หน่วยความจำอย่างน้อย %1 GB - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source เชื่อมต่อปลั๊กเข้ากับแหล่งจ่ายไฟ - + The system is not plugged in to a power source. - + is connected to the Internet เชื่อมต่อกับอินเตอร์เน็ต - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2096,29 +2129,29 @@ Output: SetHostNameJob - + Set hostname %1 ตั้งค่าชื่อโฮสต์ %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error ข้อผิดพลาดภายใน - - + + Cannot write hostname to target system ไม่สามารถเขียนชื่อโฮสต์ไปที่ระบบเป้าหมาย @@ -2325,6 +2358,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2537,7 @@ Output: UsersViewStep - + Users ผู้ใช้ @@ -2553,7 +2595,7 @@ Output: - + %1 support @@ -2561,7 +2603,7 @@ Output: WelcomeViewStep - + Welcome ยินดีต้อนรับ diff --git a/lang/calamares_tr_TR.ts b/lang/calamares_tr_TR.ts index 5c4afeb74..11476558b 100644 --- a/lang/calamares_tr_TR.ts +++ b/lang/calamares_tr_TR.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + Boş Sayfa + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Sistem Kuruluyor @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Sistem kurulumu tamamlandı, kurulum aracından çıkabilirsiniz. @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 %1 Komutu çalışıyor %2 - + Running command %1 %2 %1 Komutu çalışıyor %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. %1 işlemleri yapılıyor. - + Bad working directory path Dizin yolu kötü çalışıyor - + Working directory %1 for python job %2 is not readable. %2 python işleri için %1 dizinleme çalışırken okunamadı. - + Bad main script file Sorunlu betik dosyası - + Main script file %1 for python job %2 is not readable. %2 python işleri için %1 sorunlu betik okunamadı. - + Boost.Python error in job "%1". Boost.Python iş hatası "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Geri - + + &Next &Sonraki - - + + &Cancel &Vazgeç - - + + Cancel installation without changing the system. Sistemi değiştirmeden kurulumu iptal edin. - + + Calamares Initialization Failed + Calamares Başlatılamadı + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 yüklenemedi. Calamares yapılandırılmış modüllerin bazılarını yükleyemedi. Bu, Calamares'in kullandığınız dağıtıma uyarlamasından kaynaklanan bir sorundur. + + + + <br/>The following modules could not be loaded: + <br/>Aşağıdaki modüller yüklenemedi: + + + + &Install + &Yükle + + + Cancel installation? Yüklemeyi iptal et? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Yükleme işlemini gerçekten iptal etmek istiyor musunuz? Yükleyiciden çıkınca tüm değişiklikler kaybedilecek. - + &Yes &Evet - + &No &Hayır - + &Close &Kapat - + Continue with setup? Kuruluma devam et? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 sistem yükleyici %2 yüklemek için diskinizde değişiklik yapacak.<br/><strong>Bu değişiklikleri geri almak mümkün olmayacak.</strong> - + &Install now &Şimdi yükle - + Go &back Geri &git - + &Done &Tamam - + The installation is complete. Close the installer. Yükleme işi tamamlandı. Sistem yükleyiciyi kapatın. - + Error Hata - + Installation Failed Kurulum Başarısız @@ -433,17 +462,17 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. ClearMountsJob - + Clear mounts for partitioning operations on %1 %1 bölümleme işlemleri için sorunsuz bağla - + Clearing mounts for partitioning operations on %1. %1 bölümleme işlemleri için bağlama noktaları temizleniyor. - + Cleared all mounts for %1 %1 için tüm bağlı bölümler ayrıldı @@ -474,20 +503,26 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. CommandList - + + Could not run command. Komut çalıştırılamadı. - - No rootMountPoint is defined, so command cannot be run in the target environment. - RootMountPoint kök bağlama noktası tanımlanmadığından, hedef ortamda komut çalıştırılamaz. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + Komut, ana bilgisayar ortamında çalışır ve kök yolunu bilmesi gerekir, ancak kökMontajNoktası tanımlanmamıştır. + + + + The command needs to know the user's name, but no username is defined. + Komutun kullanıcının adını bilmesi gerekir, ancak kullanıcı adı tanımlanmamıştır. ContextualProcessJob - + Contextual Processes Job Bağlamsal Süreç İşleri @@ -545,27 +580,27 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Bo&yut: - + En&crypt Şif&rele - + Logical Mantıksal - + Primary Birincil - + GPT GPT - + Mountpoint already in use. Please select another one. Bağlama noktası zaten kullanımda. Lütfen diğerini seçiniz. @@ -647,70 +682,40 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. CreateUserJob - + Create user %1 %1 Kullanıcısı oluşturuluyor... - + Create user <strong>%1</strong>. <strong>%1</strong> kullanıcı oluştur. - + Creating user %1. %1 Kullanıcısı oluşturuluyor... - + Sudoers dir is not writable. Sudoers dosyası yazılabilir değil. - + Cannot create sudoers file for writing. sudoers dosyası oluşturulamadı ve yazılamadı. - + Cannot chmod sudoers file. Sudoers dosya izinleri ayarlanamadı. - + Cannot open groups file for reading. groups dosyası okunamadı. - - - Cannot create user %1. - %1 Kullanıcısı oluşturulamadı... - - - - useradd terminated with error code %1. - useradd komutu şu hata ile çöktü %1. - - - - Cannot add user %1 to groups: %2. - %1 Kullanıcısı şu gruba eklenemedi: %2. - - - - usermod terminated with error code %1. - usermod %1 hata koduyla çöktü. - - - - Cannot set home directory ownership for user %1. - %1 Kullanıcısı için ev dizini sahipliği ayarlanamadı. - - - - chown terminated with error code %1. - chown %1 hata koduyla sonlandırıldı. - DeletePartitionJob @@ -797,7 +802,7 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. DummyCppJob - + Dummy C++ Job Dummy C++ Job @@ -855,7 +860,7 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Bayraklar: - + Mountpoint already in use. Please select another one. Bağlama noktası zaten kullanımda. Lütfen diğerini seçiniz. @@ -944,12 +949,12 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.&Şimdi yeniden başlat - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Tüm işlem tamamlandı.</h1><br/>%1 bilgisayarınıza yüklendi<br/>Yeni kurduğunuz sistemi kullanmak için yeniden başlatabilir veya %2 Çalışan sistem ile devam edebilirsiniz. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Yükleme Başarısız</h1><br/>%1 bilgisayarınıza yüklenemedi.<br/>Hata mesajı çıktısı: %2. @@ -1024,12 +1029,12 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. KeyboardPage - + Set keyboard model to %1.<br/> %1 Klavye düzeni olarak seçildi.<br/> - + Set keyboard layout to %1/%2. Alt klavye türevi olarak %1/%2 seçildi. @@ -1073,64 +1078,64 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Form - + I accept the terms and conditions above. Yukarıdaki şartları ve koşulları kabul ediyorum. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Lisans Anlaşması</h1> Sistem yükleyici uygulaması belli lisans şartlarına bağlıdır ve şimdi sisteminizi kuracaktır. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Yukarıdaki son kullanıcı lisans sözleşmesini (EULA) gözden geçiriniz.<br/>Şartları kabul etmiyorsanız kurulum devam etmeyecektir. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Lisans Sözleşmesi</h1>Bu kurulum işlemi kullanıcı deneyimini ölçümlemek, ek özellikler sağlamak ve geliştirmek amacıyla lisansa tabi özel yazılım yükleyebilir. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Yukarıdaki Son Kullanıcı Lisans Sözleşmelerini (EULA) gözden geçirin.<br/>Eğer şartları kabul etmiyorsanız kapalı kaynak yazılımların yerine açık kaynak alternatifleri yüklenecektir. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 sürücü</strong><br/>by %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 grafik sürücü</strong><br/><font color="Grey">by %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 tarayıcı eklentisi</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 kodek</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 paketi</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> <a href="%1">lisans şartlarını incele</a> @@ -1186,12 +1191,12 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. LocaleViewStep - + Loading location data... Yerel verileri yükleniyor... - + Location Sistem Yereli @@ -1199,22 +1204,22 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. NetInstallPage - + Name İsim - + Description Açıklama - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Ağ Üzerinden Kurulum. (Devre Dışı: Paket listeleri alınamıyor, ağ bağlantısını kontrol ediniz) - + Network Installation. (Disabled: Received invalid groups data) Ağ Kurulum. (Devre dışı: Geçersiz grup verileri alındı) @@ -1222,7 +1227,7 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. NetInstallViewStep - + Package selection Paket seçimi @@ -1230,244 +1235,244 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. PWQ - + Password is too short Şifre çok kısa - + Password is too long Şifre çok uzun - + Password is too weak - + Şifre çok zayıf - + Memory allocation error when setting '%1' - + '%1' ayarlanırken bellek ayırma hatası - + Memory allocation error - + Bellek ayırma hatası - + The password is the same as the old one - + Şifre eski şifreyle aynı - + The password is a palindrome - + Parola eskilerden birinin ters okunuşu olabilir - + The password differs with case changes only - + Parola sadece vaka değişiklikleri ile farklılık gösterir - + The password is too similar to the old one - + Parola eski parolaya çok benzer - + The password contains the user name in some form - + Parola kullanıcı adını bir biçimde içeriyor - + The password contains words from the real name of the user in some form - + Şifre, kullanıcının gerçek adına ait kelimeleri bazı biçimde içerir - + The password contains forbidden words in some form - + Şifre, bazı biçimde yasak kelimeler içeriyor - + The password contains less than %1 digits - + Şifre %1 den az hane içeriyor - + The password contains too few digits - + Parola çok az basamak içeriyor - + The password contains less than %1 uppercase letters - + Parola %1 den az büyük harf içeriyor - + The password contains too few uppercase letters - + Parola çok az harf içermektedir - + The password contains less than %1 lowercase letters - + Parola %1 den daha küçük harf içermektedir - + The password contains too few lowercase letters - + Parola çok az küçük harf içeriyor - + The password contains less than %1 non-alphanumeric characters - + Şifre %1 den az alfasayısal olmayan karakter içeriyor - + The password contains too few non-alphanumeric characters - + Parola çok az sayıda alfasayısal olmayan karakter içeriyor - + The password is shorter than %1 characters - + Parola %1 karakterden kısa - + The password is too short - + Parola çok kısa - + The password is just rotated old one - + Şifre önceden kullanıldı - + The password contains less than %1 character classes - + Parola %1 den az karakter sınıfı içeriyor - + The password does not contain enough character classes - + Parola yeterli sayıda karakter sınıfı içermiyor - + The password contains more than %1 same characters consecutively - + Şifre, %1 den fazla aynı karakteri ardışık olarak içeriyor - + The password contains too many same characters consecutively - + Parola ardışık olarak aynı sayıda çok karakter içeriyor - + The password contains more than %1 characters of the same class consecutively - + Parola, aynı sınıftan %1 den fazla karakter ardışık olarak içeriyor - + The password contains too many characters of the same class consecutively - + Parola aynı sınıfta çok fazla karakter içeriyor - + The password contains monotonic sequence longer than %1 characters - + Şifre, %1 karakterden daha uzun monoton dizilim içeriyor - + The password contains too long of a monotonic character sequence - + Parola çok uzun monoton karakter dizisi içeriyor - + No password supplied - + Parola sağlanmadı - + Cannot obtain random numbers from the RNG device - + RNG cihazından rastgele sayılar elde edemiyor - + Password generation failed - required entropy too low for settings - + Şifre üretimi başarısız oldu - ayarlar için entropi çok düşük gerekli - + The password fails the dictionary check - %1 - + Parola, sözlüğü kontrolü başarısız - %1 - + The password fails the dictionary check - + Parola, sözlük onayı başarısız - + Unknown setting - %1 - + Bilinmeyen ayar - %1 - + Unknown setting - + Bilinmeyen ayar - + Bad integer value of setting - %1 - + Ayarın bozuk tam sayı değeri - %1 - + Bad integer value - + Yanlış tamsayı değeri - + Setting %1 is not of integer type - + %1 ayarı tamsayı tipi değil - + Setting is not of integer type - + Ayar tamsayı tipi değil - + Setting %1 is not of string type - + Ayar %1, dize tipi değil - + Setting is not of string type - + Ayar, dize tipi değil - + Opening the configuration file failed - + Yapılandırma dosyasını açma başarısız oldu - + The configuration file is malformed - + Yapılandırma dosyası hatalı biçimlendirildi - + Fatal failure - + Ölümcül arıza - + Unknown error - + Bilinmeyen hata @@ -1604,34 +1609,34 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. PartitionModel - - + + Free Space Boş Alan - - + + New partition Yeni bölüm - + Name İsim - + File System Dosya Sistemi - + Mount Point Bağlama Noktası - + Size Boyut @@ -1660,8 +1665,8 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir. - &Create - &Oluştur + Cre&ate + Oluş&tur @@ -1679,105 +1684,115 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Şuraya ön &yükleyici kur: - + Are you sure you want to create a new partition table on %1? %1 tablosunda yeni bölüm oluşturmaya devam etmek istiyor musunuz? + + + Can not create new partition + Yeni disk bölümü oluşturulamıyor + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + % 1 üzerindeki bölüm tablosu zaten% 2 birincil bölüme sahip ve artık eklenemiyor. Lütfen bir birincil bölümü kaldırın ve bunun yerine genişletilmiş bir bölüm ekleyin. + PartitionViewStep - + Gathering system information... Sistem bilgileri toplanıyor... - + Partitions Disk Bölümleme - + Install %1 <strong>alongside</strong> another operating system. Diğer işletim sisteminin <strong>yanına</strong> %1 yükle. - + <strong>Erase</strong> disk and install %1. Diski <strong>sil</strong> ve %1 yükle. - + <strong>Replace</strong> a partition with %1. %1 ile disk bölümünün üzerine <strong>yaz</strong>. - + <strong>Manual</strong> partitioning. <strong>Manuel</strong> bölümleme. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). <strong>%2</strong> (%3) diskindeki diğer işletim sisteminin <strong>yanına</strong> %1 yükle. - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>%2</strong> (%3) diski <strong>sil</strong> ve %1 yükle. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>%2</strong> (%3) disk bölümünün %1 ile <strong>üzerine yaz</strong>. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). <strong>%1</strong> (%2) disk bölümünü <strong>manuel</strong> bölümle. - + Disk <strong>%1</strong> (%2) Disk <strong>%1</strong> (%2) - + Current: Geçerli: - + After: Sonra: - + No EFI system partition configured EFI sistem bölümü yapılandırılmamış - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. %1 başlatmak için bir EFI sistem bölümü gereklidir.<br/><br/>EFI sistem bölümünü yapılandırmak için geri dönün ve seçim yapın veya FAT32 dosya sistemi ile <strong>esp</strong> etiketiyle <strong>%2</strong> noktasına bağlayın.<br/><br/>Bir EFI sistem bölümü kurmadan devam edebilirsiniz fakat işletim sistemi başlatılamayabilir. - + EFI system partition flag not set EFI sistem bölümü bayrağı ayarlanmadı - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. %1 başlatmak için bir EFI sistem bölümü gereklidir.<br/><br/>Bir bağlama noktası <strong>%2</strong> olarak yapılandırıldı fakat <strong>esp</strong>bayrağı ayarlanmadı.<br/>Bayrağı ayarlamak için, geri dönün ve bölümü düzenleyin.<br/><br/>Sen bayrağı ayarlamadan devam edebilirsin fakat işletim sistemi başlatılamayabilir. - + Boot partition not encrypted Önyükleme yani boot diski şifrelenmedi - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Ayrı bir önyükleme yani boot disk bölümü, şifrenmiş bir kök bölüm ile birlikte ayarlandı, fakat önyükleme bölümü şifrelenmedi.<br/><br/>Bu tip kurulumun güvenlik endişeleri vardır, çünkü önemli sistem dosyaları şifrelenmemiş bir bölümde saklanır.<br/>İsterseniz kuruluma devam edebilirsiniz, fakat dosya sistemi kilidi daha sonra sistem başlatılırken açılacak.<br/> Önyükleme bölümünü şifrelemek için geri dönün ve bölüm oluşturma penceresinde <strong>Şifreleme</strong>seçeneği ile yeniden oluşturun. @@ -1810,29 +1825,48 @@ Kuruluma devam edebilirsiniz fakat bazı özellikler devre dışı kalabilir.Yer tutucu - - 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. - Lütfen KDE Plazma Masaüstü için bir look-and-feel paketi seçin. Sistem kurulduktan sonra bu adımı atlayabilir ve look-and-feel paketi ile yapılandırabilirsiniz. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. + Lütfen KDE Plazma Masaüstü için bir görünüm seçin. Ayrıca, bu adımı atlayabilir ve sistem kurulduktan sonra görünümü yapılandırabilirsiniz. Bir görünüm ve tercihe tıkladığınızda size look-and-feel yani canlı bir önizleme sunulur. PlasmaLnfViewStep - + Look-and-Feel Look-and-Feel + + PreserveFiles + + + Saving files for later ... + Dosyalar daha sonrası için kaydediliyor ... + + + + No files configured to save for later. + Daha sonra kaydetmek için dosya yapılandırılmamış. + + + + Not all of the configured files could be preserved. + Yapılandırılmış dosyaların tümü korunamadı. + + ProcessResult - + There was no output from the command. - + +Komut çıktısı yok. - + Output: @@ -1841,52 +1875,52 @@ Output: - + External command crashed. Harici komut çöktü. - + Command <i>%1</i> crashed. Komut <i>%1</i> çöktü. - + External command failed to start. Harici komut başlatılamadı. - + Command <i>%1</i> failed to start. Komut <i>%1</i> başlatılamadı. - + Internal error when starting command. Komut başlatılırken dahili hata. - + Bad parameters for process job call. Çalışma adımları başarısız oldu. - + External command failed to finish. Harici komut başarısız oldu. - + Command <i>%1</i> failed to finish in %2 seconds. Komut <i>%1</i> %2 saniyede başarısız oldu. - + External command finished with errors. Harici komut hatalarla bitti. - + Command <i>%1</i> finished with exit code %2. Komut <i>%1</i> %2 çıkış kodu ile tamamlandı @@ -1905,22 +1939,22 @@ Output: Varsayılan - + unknown bilinmeyen - + extended uzatılmış - + unformatted biçimlenmemiş - + swap Swap-Takas @@ -2013,53 +2047,53 @@ Output: Sistem bilgileri toplanıyor... - + has at least %1 GB available drive space En az %1 GB disk alanı olduğundan... - + There is not enough drive space. At least %1 GB is required. Yeterli disk alanı mevcut değil. En az %1 GB disk alanı gereklidir. - + has at least %1 GB working memory En az %1 GB bellek bulunduğundan... - + The system does not have enough working memory. At least %1 GB is required. Yeterli ram bellek gereksinimi karşılanamıyor. En az %1 GB ram bellek gereklidir. - + is plugged in to a power source Bir güç kaynağına takılı olduğundan... - + The system is not plugged in to a power source. Sistem güç kaynağına bağlı değil. - + is connected to the Internet İnternete bağlı olduğundan... - + The system is not connected to the Internet. Sistem internete bağlı değil. - + The installer is not running with administrator rights. Sistem yükleyici yönetici haklarına sahip olmadan çalışmıyor. - + The screen is too small to display the installer. Ekran, sistem yükleyiciyi görüntülemek için çok küçük. @@ -2103,29 +2137,29 @@ Sistem güç kaynağına bağlı değil. SetHostNameJob - + Set hostname %1 %1 sunucu-adı ayarla - + Set hostname <strong>%1</strong>. <strong>%1</strong> sunucu-adı ayarla. - + Setting hostname %1. %1 sunucu-adı ayarlanıyor. - - + + Internal Error Dahili Hata - - + + Cannot write hostname to target system Hedef sisteme sunucu-adı yazılamadı @@ -2332,6 +2366,15 @@ Sistem güç kaynağına bağlı değil. Kabuk İşlemleri İşi + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2502,7 +2545,7 @@ Sistem güç kaynağına bağlı değil. UsersViewStep - + Users Kullanıcı Tercihleri @@ -2560,7 +2603,7 @@ Sistem güç kaynağına bağlı değil. <h1>%1</h1><br/><strong>%2<br/>için %3</strong><br/><br/>Telif Hakkı 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Telif Hakkı 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Teşekkürler: Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg ve <a href="https://www.transifex.com/calamares/calamares/">Calamares çeviri takımı için</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> gelişim sponsoru <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Özgür Yazılım. - + %1 support %1 destek @@ -2568,7 +2611,7 @@ Sistem güç kaynağına bağlı değil. WelcomeViewStep - + Welcome Hoşgeldiniz diff --git a/lang/calamares_uk.ts b/lang/calamares_uk.ts index fb70ea45c..2c4225f56 100644 --- a/lang/calamares_uk.ts +++ b/lang/calamares_uk.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install Встановити @@ -105,7 +113,7 @@ Calamares::JobThread - + Done Зроблено @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 Запустити команду %1 %2 - + Running command %1 %2 Запуск команди %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. Запуск операції %1. - + Bad working directory path Неправильний шлях робочого каталогу - + Working directory %1 for python job %2 is not readable. Неможливо прочитати робочу директорію %1 для завдання python %2. - + Bad main script file Неправильний файл головного сценарію - + Main script file %1 for python job %2 is not readable. Неможливо прочитати файл головного сценарію %1 для завдання python %2. - + Boost.Python error in job "%1". Помилка Boost.Python у завданні "%1". @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back &Назад - + + &Next &Вперед - - + + &Cancel &Скасувати - - + + Cancel installation without changing the system. Скасувати встановлення без змінення системи. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? Скасувати встановлення? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. Чи ви насправді бажаєте скасувати процес встановлення? Установник закриється і всі зміни буде втрачено. - + &Yes &Так - + &No &Ні - + &Close &Закрити - + Continue with setup? Продовжити встановлення? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> Установник %1 збирається зробити зміни на вашому диску, щоб встановити %2.<br/><strong>Ці зміни неможливо буде повернути.</strong> - + &Install now &Встановити зараз - + Go &back Перейти &назад - + &Done &Закінчити - + The installation is complete. Close the installer. Встановлення виконано. Закрити установник. - + Error Помилка - + Installation Failed Втановлення завершилося невдачею @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 Очистити точки підключення для операцій над розділами на %1 - + Clearing mounts for partitioning operations on %1. Очищення точок підключення для операцій над розділами на %1. - + Cleared all mounts for %1 Очищено всі точки підключення для %1 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. Ро&змір: - + En&crypt За&шифрувати - + Logical Логічний - + Primary Основний - + GPT GPT - + Mountpoint already in use. Please select another one. Точка підключення наразі використовується. Оберіть, будь ласка, іншу. @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 Створити користувача %1 - + Create user <strong>%1</strong>. Створити користувача <strong>%1</strong>. - + Creating user %1. Створення користувача %1. - + Sudoers dir is not writable. Неможливо запиcати у директорію sudoers. - + Cannot create sudoers file for writing. Неможливо створити файл sudoers для запису. - + Cannot chmod sudoers file. Неможливо встановити права на файл sudoers. - + Cannot open groups file for reading. Неможливо відкрити файл груп для читання. - - - Cannot create user %1. - Неможливо створити користувача %1. - - - - useradd terminated with error code %1. - useradd завершилася з кодом помилки %1. - - - - Cannot add user %1 to groups: %2. - Неможливо додати користувача %1 до груп: %2. - - - - usermod terminated with error code %1. - usermod завершилася з кодом помилки %1. - - - - Cannot set home directory ownership for user %1. - Неможливо встановити права власності на домашню теку для користувача %1. - - - - chown terminated with error code %1. - chown завершилася з кодом помилки %1. - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job Завдання-макет C++ @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. Прапорці: - + Mountpoint already in use. Please select another one. Точка підключення наразі використовується. Оберіть, будь ласка, іншу. @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. &Перезавантажити зараз - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>Все зроблено.</h1><br/>%1 встановлено на ваш комп'ютер.<br/>Ви можете перезавантажитися до вашої нової системи або продовжити використання Live-середовища %2. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>Встановлення зазнало невдачі</h1><br/>%1 не було встановлено на Ваш комп'ютер.<br/>Повідомлення про помилку: %2. @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> Встановити модель клавіатури як %1.<br/> - + Set keyboard layout to %1/%2. Встановити розкладку клавіатури як %1/%2. @@ -1070,64 +1075,64 @@ The installer will quit and all changes will be lost. Форма - + I accept the terms and conditions above. Я приймаю положення та умови, що наведені вище. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>Ліцензійна угода</h1>Процедура встановить пропрієтарне програмне забезпечення, яке підлягає умовам ліцензування. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. Будь-ласка, перегляньте Ліцензійні Угоди Кінцевого Користувача (EULAs), що наведені вище.<br/>Якщо ви не згодні з умовами, процедуру встановлення не можна продовжити. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>Ліцензійна угода</h1>Для надання додаткових можливостей та з метою покращення користувацького досвіду, процедура може встановити пропрієтарне програмне забезпечення, яке підлягає умовам ліцензування. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. Будь-ласка, перегляньте Ліцензійні Угоди Кінцевого Користувача (EULAs), що наведені вище.<br/>Якщо ви не згодні з умовами, пропрієтарне програмне забезпечення не буде встановлено, та замість нього буде використано альтернативи з відкритим сирцевим кодом. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>Драйвер %1</strong><br/>від %2 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>Графічний драйвер %1</strong><br/><font color="Grey">від %2</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>Плагін для переглядача тенет %1</strong><br/><font color="Grey">від %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>Кодек %1</strong><br/><font color="Grey">від %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>Пакет %1</strong><br/><font color="Grey">від %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">від %2</font> - + <a href="%1">view license agreement</a> <a href="%1">переглянути ліцензійну угоду</a> @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... Завантаження данних про місцезнаходження... - + Location Місцезнаходження @@ -1196,22 +1201,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name Ім'я - + Description Опис - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) Встановлення через мережу. (Вимкнено: Неможливо отримати список пакетів, перевірте ваше підключення до мережі) - + Network Installation. (Disabled: Received invalid groups data) Встановлення через мережу. (Вимкнено: Отримано неправильні дані про групи) @@ -1219,7 +1224,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection Вибір пакетів @@ -1227,244 +1232,245 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short Пароль занадто короткий - + Password is too long Пароль задовгий - + Password is too weak - + Пароль надто ненадійний - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + Цей пароль надто схожий на попередній - + The password contains the user name in some form - + Цей пароль якимось чином містить ім'я користувача + - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + Цей пароль занадто короткий - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error - + Невідома помилка @@ -1601,34 +1607,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space Вільний простір - - + + New partition Новий розділ - + Name Ім'я - + File System Файлова система - + Mount Point Точка підключення - + Size Розмір @@ -1657,8 +1663,8 @@ The installer will quit and all changes will be lost. - &Create - &Створити + Cre&ate + @@ -1676,105 +1682,115 @@ The installer will quit and all changes will be lost. Встановити за&вантажувач на: - + Are you sure you want to create a new partition table on %1? Ви впевнені, що бажаєте створити нову таблицю розділів на %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... Збір інформації про систему... - + Partitions Розділи - + Install %1 <strong>alongside</strong> another operating system. Встановити %1 <strong>поруч</strong> з іншою операційною системою. - + <strong>Erase</strong> disk and install %1. <strong>Очистити</strong> диск та встановити %1. - + <strong>Replace</strong> a partition with %1. <strong>Замінити</strong> розділ на %1. - + <strong>Manual</strong> partitioning. Розподілення диску <strong>власноруч</strong>. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). Встановити %1 <strong>поруч</strong> з іншою операційною системою на диск <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>Очистити</strong> диск <strong>%2</strong> (%3) та встановити %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. <strong>Замінити</strong> розділ на диску <strong>%2</strong> (%3) на %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). Розподілення диску <strong>%1</strong> (%2) <strong>власноруч</strong>. - + Disk <strong>%1</strong> (%2) Диск <strong>%1</strong> (%2) - + Current: Зараз: - + After: Після: - + No EFI system partition configured Не налаштовано жодного системного розділу EFI - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. Щоб запустити %1, потрібен системний розділ EFI.<br/><br/>Щоб налаштувати системний розділ EFI, поверніться та оберіть або створіть файлову систему FAT32 з увімкненною опцією <strong>esp</strong> та точкою підключення <strong>%2</strong>.<br/><br/>Ви можете продовжити не налаштовуючи системний розділ EFI, але ваша система може не запускатись. - + EFI system partition flag not set Опцію системного розділу EFI не встановлено - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. Для запуску %1 потрібен системний розділ EFI.<br/><br/>Розділ налаштовано з точкою підключення <strong>%2</strong>, але опція <strong>esp</strong> не встановлено.<br/>Щоб встановити опцію, поверніться та відредагуйте розділ.<br/><br/>Ви можете продовжити не налаштовуючи цю опцію, але ваша система може не запускатись. - + Boot partition not encrypted Завантажувальний розділ незашифрований - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. Було налаштовано окремий завантажувальний розділ поряд із зашифрованим кореневим розділом, але завантажувальний розділ незашифрований.<br/><br/>Існують проблеми з безпекою такого типу, оскільки важливі системні файли зберігаються на незашифрованому розділі.<br/>Ви можете продовжувати, якщо бажаєте, але розблокування файлової системи відбудеться пізніше під час запуску системи.<br/>Щоб зашифрувати завантажувальний розділ, поверніться і створіть його знов, обравши <strong>Зашифрувати</strong> у вікні створення розділів. @@ -1806,81 +1822,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. Неправильні параметри визову завдання обробки. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1899,22 +1933,22 @@ Output: За замовченням - + unknown невідома - + extended розширена - + unformatted неформатовано - + swap область підкачки @@ -2007,52 +2041,52 @@ Output: Збираємо інформацію про систему... - + has at least %1 GB available drive space має хоча б %1 Гб доступного простору - + There is not enough drive space. At least %1 GB is required. Недостатньо простору на диску. Потрібно хоча б %1 Гб. - + has at least %1 GB working memory має хоча б %1 Гб операційної пам'яті - + The system does not have enough working memory. At least %1 GB is required. Система не має достатньо операційної пам'яті. Потрібно хоча б %1 Гб. - + is plugged in to a power source підключена до джерела живлення - + The system is not plugged in to a power source. Система не підключена до джерела живлення. - + is connected to the Internet з'єднано з мережею Інтернет - + The system is not connected to the Internet. Система не з'єднана з мережею Інтернет. - + The installer is not running with administrator rights. Установник запущено без прав адміністратора. - + The screen is too small to display the installer. Екран замалий для відображення установника. @@ -2096,29 +2130,29 @@ Output: SetHostNameJob - + Set hostname %1 Встановити ім'я машини %1 - + Set hostname <strong>%1</strong>. Встановити ім'я машини <strong>%1</strong>. - + Setting hostname %1. Встановлення імені машини %1. - - + + Internal Error Внутрішня помилка - - + + Cannot write hostname to target system Не можу записати ім'я машини до системи @@ -2325,6 +2359,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2495,7 +2538,7 @@ Output: UsersViewStep - + Users Користувачі @@ -2553,7 +2596,7 @@ Output: - + %1 support Підтримка %1 @@ -2561,7 +2604,7 @@ Output: WelcomeViewStep - + Welcome Вітаємо diff --git a/lang/calamares_ur.ts b/lang/calamares_ur.ts index 5f20d7ce8..23a49d79d 100644 --- a/lang/calamares_ur.ts +++ b/lang/calamares_ur.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back - + + &Next - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error - + Installation Failed @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_uz.ts b/lang/calamares_uz.ts index 5c3f64c1a..12b4fb627 100644 --- a/lang/calamares_uz.ts +++ b/lang/calamares_uz.ts @@ -45,6 +45,14 @@ + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install @@ -105,7 +113,7 @@ Calamares::JobThread - + Done @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 - + Running command %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. - + Bad working directory path - + Working directory %1 for python job %2 is not readable. - + Bad main script file - + Main script file %1 for python job %2 is not readable. - + Boost.Python error in job "%1". @@ -159,90 +167,111 @@ Calamares::ViewManager - + &Back - + + &Next - - + + &Cancel - - + + Cancel installation without changing the system. - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + + + + Cancel installation? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. - + &Yes - + &No - + &Close - + Continue with setup? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> - + &Install now - + Go &back - + &Done - + The installation is complete. Close the installer. - + Error - + Installation Failed @@ -429,17 +458,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 - + Clearing mounts for partitioning operations on %1. - + Cleared all mounts for %1 @@ -470,20 +499,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. - - No rootMountPoint is defined, so command cannot be run in the target environment. + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. ContextualProcessJob - + Contextual Processes Job @@ -541,27 +576,27 @@ The installer will quit and all changes will be lost. - + En&crypt - + Logical - + Primary - + GPT - + Mountpoint already in use. Please select another one. @@ -643,70 +678,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 - + Create user <strong>%1</strong>. - + Creating user %1. - + Sudoers dir is not writable. - + Cannot create sudoers file for writing. - + Cannot chmod sudoers file. - + Cannot open groups file for reading. - - - Cannot create user %1. - - - - - useradd terminated with error code %1. - - - - - Cannot add user %1 to groups: %2. - - - - - usermod terminated with error code %1. - - - - - Cannot set home directory ownership for user %1. - - - - - chown terminated with error code %1. - - DeletePartitionJob @@ -793,7 +798,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job @@ -851,7 +856,7 @@ The installer will quit and all changes will be lost. - + Mountpoint already in use. Please select another one. @@ -940,12 +945,12 @@ The installer will quit and all changes will be lost. - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. @@ -1020,12 +1025,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> - + Set keyboard layout to %1/%2. @@ -1069,64 +1074,64 @@ The installer will quit and all changes will be lost. - + I accept the terms and conditions above. - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> - + <a href="%1">view license agreement</a> @@ -1182,12 +1187,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... - + Location @@ -1195,22 +1200,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name - + Description - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) - + Network Installation. (Disabled: Received invalid groups data) @@ -1218,7 +1223,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection @@ -1226,242 +1231,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short - + Password is too long - + Password is too weak - + Memory allocation error when setting '%1' - + Memory allocation error - + The password is the same as the old one - + The password is a palindrome - + The password differs with case changes only - + The password is too similar to the old one - + The password contains the user name in some form - + The password contains words from the real name of the user in some form - + The password contains forbidden words in some form - + The password contains less than %1 digits - + The password contains too few digits - + The password contains less than %1 uppercase letters - + The password contains too few uppercase letters - + The password contains less than %1 lowercase letters - + The password contains too few lowercase letters - + The password contains less than %1 non-alphanumeric characters - + The password contains too few non-alphanumeric characters - + The password is shorter than %1 characters - + The password is too short - + The password is just rotated old one - + The password contains less than %1 character classes - + The password does not contain enough character classes - + The password contains more than %1 same characters consecutively - + The password contains too many same characters consecutively - + The password contains more than %1 characters of the same class consecutively - + The password contains too many characters of the same class consecutively - + The password contains monotonic sequence longer than %1 characters - + The password contains too long of a monotonic character sequence - + No password supplied - + Cannot obtain random numbers from the RNG device - + Password generation failed - required entropy too low for settings - + The password fails the dictionary check - %1 - + The password fails the dictionary check - + Unknown setting - %1 - + Unknown setting - + Bad integer value of setting - %1 - + Bad integer value - + Setting %1 is not of integer type - + Setting is not of integer type - + Setting %1 is not of string type - + Setting is not of string type - + Opening the configuration file failed - + The configuration file is malformed - + Fatal failure - + Unknown error @@ -1600,34 +1605,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space - - + + New partition - + Name - + File System - + Mount Point - + Size @@ -1656,7 +1661,7 @@ The installer will quit and all changes will be lost. - &Create + Cre&ate @@ -1675,105 +1680,115 @@ The installer will quit and all changes will be lost. - + Are you sure you want to create a new partition table on %1? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... - + Partitions - + Install %1 <strong>alongside</strong> another operating system. - + <strong>Erase</strong> disk and install %1. - + <strong>Replace</strong> a partition with %1. - + <strong>Manual</strong> partitioning. - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). - + Disk <strong>%1</strong> (%2) - + Current: - + After: - + No EFI system partition configured - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. - + EFI system partition flag not set - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. - + Boot partition not encrypted - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. @@ -1805,81 +1820,99 @@ The installer will quit and all changes will be lost. - - 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. + + Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel. PlasmaLnfViewStep - + Look-and-Feel + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. - + Output: - + External command crashed. - + Command <i>%1</i> crashed. - + External command failed to start. - + Command <i>%1</i> failed to start. - + Internal error when starting command. - + Bad parameters for process job call. - + External command failed to finish. - + Command <i>%1</i> failed to finish in %2 seconds. - + External command finished with errors. - + Command <i>%1</i> finished with exit code %2. @@ -1898,22 +1931,22 @@ Output: - + unknown - + extended - + unformatted - + swap @@ -2006,52 +2039,52 @@ Output: - + has at least %1 GB available drive space - + There is not enough drive space. At least %1 GB is required. - + has at least %1 GB working memory - + The system does not have enough working memory. At least %1 GB is required. - + is plugged in to a power source - + The system is not plugged in to a power source. - + is connected to the Internet - + The system is not connected to the Internet. - + The installer is not running with administrator rights. - + The screen is too small to display the installer. @@ -2095,29 +2128,29 @@ Output: SetHostNameJob - + Set hostname %1 - + Set hostname <strong>%1</strong>. - + Setting hostname %1. - - + + Internal Error - - + + Cannot write hostname to target system @@ -2324,6 +2357,15 @@ Output: + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + + + SummaryPage @@ -2494,7 +2536,7 @@ Output: UsersViewStep - + Users @@ -2552,7 +2594,7 @@ Output: - + %1 support @@ -2560,7 +2602,7 @@ Output: WelcomeViewStep - + Welcome diff --git a/lang/calamares_zh_CN.ts b/lang/calamares_zh_CN.ts index 4876bd82e..4889eabf1 100644 --- a/lang/calamares_zh_CN.ts +++ b/lang/calamares_zh_CN.ts @@ -46,6 +46,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + + + Calamares::DebugWindow @@ -98,7 +106,7 @@ Calamares::ExecutionViewStep - + Install 安装 @@ -106,7 +114,7 @@ Calamares::JobThread - + Done 完成 @@ -114,12 +122,12 @@ Calamares::ProcessJob - + Run command %1 %2 运行命令 %1 %2 - + Running command %1 %2 正在运行命令 %1 %2 @@ -127,32 +135,32 @@ Calamares::PythonJob - + Running %1 operation. 正在运行 %1 个操作。 - + Bad working directory path 错误的工作目录路径 - + Working directory %1 for python job %2 is not readable. 用于 python 任务 %2 的工作目录 %1 不可读。 - + Bad main script file 错误的主脚本文件 - + Main script file %1 for python job %2 is not readable. 用于 python 任务 %2 的主脚本文件 %1 不可读。 - + Boost.Python error in job "%1". 任务“%1”出现 Boost.Python 错误。 @@ -160,91 +168,112 @@ Calamares::ViewManager - + &Back 后退(&B) - + + &Next 下一步(&N) - - + + &Cancel 取消(&C) - - + + Cancel installation without changing the system. 取消安装,并不做任何更改。 - + + Calamares Initialization Failed + + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + + + + + <br/>The following modules could not be loaded: + + + + + &Install + 安装(&I) + + + Cancel installation? 取消安装? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. 确定要取消当前的安装吗? 安装程序将退出,所有修改都会丢失。 - + &Yes &是 - + &No &否 - + &Close &关闭 - + Continue with setup? 要继续安装吗? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 安装程序将在您的磁盘上做出变更以安装 %2。<br/><strong>您将无法复原这些变更。</strong> - + &Install now 现在安装 (&I) - + Go &back 返回 (&B) - + &Done &完成 - + The installation is complete. Close the installer. 安装过程已完毕。请关闭安装器。 - + Error 错误 - + Installation Failed 安装失败 @@ -431,17 +460,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 清理挂载了的分区以在 %1 进行分区操作 - + Clearing mounts for partitioning operations on %1. 正在清理挂载了的分区以在 %1 进行分区操作。 - + Cleared all mounts for %1 已清除 %1 的所有挂载点 @@ -472,20 +501,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. 无法运行命令 - - No rootMountPoint is defined, so command cannot be run in the target environment. - 未定义任何 rootMountPoint,无法在目标环境中运行命令。 + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + + + + + The command needs to know the user's name, but no username is defined. + ContextualProcessJob - + Contextual Processes Job 后台任务 @@ -543,27 +578,27 @@ The installer will quit and all changes will be lost. 大小(&Z): - + En&crypt 加密(&C) - + Logical 逻辑分区 - + Primary 主分区 - + GPT GPT - + Mountpoint already in use. Please select another one. 挂载点已被占用。请选择另一个。 @@ -645,70 +680,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 创建用户 %1 - + Create user <strong>%1</strong>. 创建用户 <strong>%1</strong>。 - + Creating user %1. 正在创建用户 %1。 - + Sudoers dir is not writable. Sudoers 目录不可写。 - + Cannot create sudoers file for writing. 无法创建要写入的 sudoers 文件。 - + Cannot chmod sudoers file. 无法修改 sudoers 文件权限。 - + Cannot open groups file for reading. 无法打开要读取的 groups 文件。 - - - Cannot create user %1. - 无法创建用户 %1。 - - - - useradd terminated with error code %1. - useradd 以错误代码 %1 中止。 - - - - Cannot add user %1 to groups: %2. - 无法将用户 %1 加入到群组:%2. - - - - usermod terminated with error code %1. - usermod 终止,错误代码 %1. - - - - Cannot set home directory ownership for user %1. - 无法设置用户 %1 的主文件夹所有者。 - - - - chown terminated with error code %1. - chown 以错误代码 %1 中止。 - DeletePartitionJob @@ -796,7 +801,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job 虚设 C++ 任务 @@ -854,7 +859,7 @@ The installer will quit and all changes will be lost. 标记: - + Mountpoint already in use. Please select another one. 挂载点已被占用。请选择另一个。 @@ -943,12 +948,12 @@ The installer will quit and all changes will be lost. 现在重启(&R) - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>一切都结束了。</h1><br/>%1 已安装在您的电脑上了。<br/>您现在可能会想要重新启动到您的新系统中,或是继续使用 %2 Live 环境。 - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>安装失败</h1><br/>%1 未在你的电脑上安装。<br/>错误信息:%2。 @@ -1023,12 +1028,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> 设置键盘型号为 %1。<br/> - + Set keyboard layout to %1/%2. 设置键盘布局为 %1/%2。 @@ -1072,64 +1077,64 @@ The installer will quit and all changes will be lost. 表单 - + I accept the terms and conditions above. 我同意如上条款。 - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>许可协定</h1>此安装程序将会安装受授权条款所限制的专有软件。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. 请仔细上方的最终用户许可协定 (EULA)。<br/>若您不同意上述条款,安装程序将不会继续。 - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>许可协定</h1>此安装程序可以安装受授权条款限制的专有软件,以提供额外的功能并增强用户体验。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. 请仔细上方的最终用户许可协定 (EULA)。<br/>若您不同意上述条款,将不会安装专有软件,而会使用其开源替代品。 - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 驱动程序</strong><br/>由 %2 提供 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 显卡驱动程序</strong><br/><font color="Grey">由 %2 提供</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 浏览器插件</strong><br/><font color="Grey">由 %2 提供</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 编解码器</strong><br/><font color="Grey">由 %2 提供</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 软件包</strong><br/><font color="Grey">由 %2 提供</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">由 %2 提供</font> - + <a href="%1">view license agreement</a> <a href="%1">查看许可协定</a> @@ -1185,12 +1190,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... 加载位置数据... - + Location 位置 @@ -1198,22 +1203,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name 名称 - + Description 描述 - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) 网络安装。(已禁用:无法获取软件包列表,请检查网络连接) - + Network Installation. (Disabled: Received invalid groups data) 联网安装。(已禁用:收到无效组数据) @@ -1221,7 +1226,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection 软件包选择 @@ -1229,242 +1234,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short 密码太短 - + Password is too long 密码太长 - + Password is too weak 密码强度太弱 - + Memory allocation error when setting '%1' 设置“%1”时发生内存分配错误 - + Memory allocation error 内存分配错误 - + The password is the same as the old one 新密码和老密码一致 - + The password is a palindrome 新密码为回文 - + The password differs with case changes only 新密码和老密码只有大小写区别 - + The password is too similar to the old one 新密码和老密码过于相似 - + The password contains the user name in some form 新密码包含用户名 - + The password contains words from the real name of the user in some form 新密码包含用户真实姓名 - + The password contains forbidden words in some form 新密码包含不允许使用的词组 - + The password contains less than %1 digits 新密码包含少于 %1 个数字 - + The password contains too few digits 新密码包含太少数字 - + The password contains less than %1 uppercase letters 新密码包含少于 %1 个大写字母 - + The password contains too few uppercase letters 新密码包含太少大写字母 - + The password contains less than %1 lowercase letters 新密码包含少于 %1 个小写字母 - + The password contains too few lowercase letters 新密码包含太少小写字母 - + The password contains less than %1 non-alphanumeric characters 新密码包含少于 %1 个非字母/数字字符 - + The password contains too few non-alphanumeric characters 新密码包含太少非字母/数字字符 - + The password is shorter than %1 characters 新密码短于 %1 位 - + The password is too short 新密码过短 - + The password is just rotated old one 新密码仅对老密码作了字序调整 - + The password contains less than %1 character classes 新密码包含少于 %1 个字符类型 - + The password does not contain enough character classes 新密码包含太少字符类型 - + The password contains more than %1 same characters consecutively 新密码包含超过 %1 个连续的相同字符 - + The password contains too many same characters consecutively 新密码包含过多连续的相同字符 - + The password contains more than %1 characters of the same class consecutively 新密码包含超过 %1 个连续的同类型字符 - + The password contains too many characters of the same class consecutively 新密码包含过多连续的同类型字符 - + The password contains monotonic sequence longer than %1 characters 新密码包含超过 %1 个字符长度的单调序列 - + The password contains too long of a monotonic character sequence 新密码包含过长的单调序列 - + No password supplied 未输入密码 - + Cannot obtain random numbers from the RNG device 无法从随机数生成器 (RNG) 设备获取随机数 - + Password generation failed - required entropy too low for settings 无法生成密码 - 熵值过低 - + The password fails the dictionary check - %1 新密码无法通过字典检查 - %1 - + The password fails the dictionary check 新密码无法通过字典检查 - + Unknown setting - %1 未知设置 - %1 - + Unknown setting 未知设置 - + Bad integer value of setting - %1 设置的整数值非法 - %1 - + Bad integer value 设置的整数值非法 - + Setting %1 is not of integer type 设定值 %1 不是整数类型 - + Setting is not of integer type 设定值不是整数类型 - + Setting %1 is not of string type 设定值 %1 不是字符串类型 - + Setting is not of string type 设定值不是字符串类型 - + Opening the configuration file failed 无法打开配置文件 - + The configuration file is malformed 配置文件格式不正确 - + Fatal failure 致命错误 - + Unknown error 未知错误 @@ -1603,34 +1608,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space 空闲空间 - - + + New partition 新建分区 - + Name 名称 - + File System 文件系统 - + Mount Point 挂载点 - + Size 大小 @@ -1659,8 +1664,8 @@ The installer will quit and all changes will be lost. - &Create - 创建(&C) + Cre&ate + @@ -1678,105 +1683,115 @@ The installer will quit and all changes will be lost. 安装引导程序于(&L): - + Are you sure you want to create a new partition table on %1? 您是否确定要在 %1 上创建新分区表? + + + Can not create new partition + + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + + PartitionViewStep - + Gathering system information... 正在收集系统信息... - + Partitions 分区 - + Install %1 <strong>alongside</strong> another operating system. 将 %1 安装在其他操作系统<strong>旁边</strong>。 - + <strong>Erase</strong> disk and install %1. <strong>抹除</strong>磁盘并安装 %1。 - + <strong>Replace</strong> a partition with %1. 以 %1 <strong>替代</strong>一个分区。 - + <strong>Manual</strong> partitioning. <strong>手动</strong>分区 - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). 将 %1 安装在磁盘 <strong>%2</strong> (%3) 上的另一个操作系统<strong>旁边</strong>。 - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>抹除</strong> 磁盘 <strong>%2</strong> (%3) 并且安装 %1。 - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. 以 %1 <strong>替代</strong> 一个在磁盘 <strong>%2</strong> (%3) 上的分区。 - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). 在磁盘 <strong>%1</strong> (%2) 上<strong>手动</strong>分区。 - + Disk <strong>%1</strong> (%2) 磁盘 <strong>%1</strong> (%2) - + Current: 当前: - + After: 之后: - + No EFI system partition configured 未配置 EFI 系统分区 - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. 必须有 EFI 系统分区才能启动 %1 。<br/><br/>要配置 EFI 系统分区,后退一步,然后创建或选中一个 FAT32 分区并为之设置 <strong>esp</strong> 标记及挂载点 <strong>%2</strong>。<br/><br/>你可以不创建 EFI 系统分区并继续安装,但是你的系统可能无法启动。 - + EFI system partition flag not set 未设置 EFI 系统分区标记 - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. 必须有 EFI 系统分区才能启动 %1 。<br/><br/>已有挂载点为 <strong>%2</strong> 的分区,但是未设置 <strong>esp</strong> 标记。<br/>要设置此标记,后退并编辑分区。<br/><br/>你可以不创建 EFI 系统分区并继续安装,但是你的系统可能无法启动。 - + Boot partition not encrypted 引导分区未加密 - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. 您尝试用单独的引导分区配合已加密的根分区使用,但引导分区未加密。<br/><br/>这种配置方式可能存在安全隐患,因为重要的系统文件存储在了未加密的分区上。<br/>您可以继续保持此配置,但是系统解密将在系统启动时而不是引导时进行。<br/>要加密引导分区,请返回上一步并重新创建此分区,并在分区创建窗口选中 <strong>加密</strong> 选项。 @@ -1808,30 +1823,48 @@ The installer will quit and all changes will be lost. 占位符 - - 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. - 请为 KDE Plasma 桌面选择一个外观主题。您也可以暂时跳过此步骤并在系统安装完成后配置系统外观。 + + 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. + 请选择一个 KDE Plasma 桌面外观,可以忽略此步骤并在系统安装完成后配置外观。点击一个外观后可以实时预览效果。 PlasmaLnfViewStep - + Look-and-Feel 外观主题 + + PreserveFiles + + + Saving files for later ... + + + + + No files configured to save for later. + + + + + Not all of the configured files could be preserved. + + + ProcessResult - + There was no output from the command. 命令没有输出。 - + Output: @@ -1840,52 +1873,52 @@ Output: - + External command crashed. 外部命令已崩溃。 - + Command <i>%1</i> crashed. 命令 <i>%1</i> 已崩溃。 - + External command failed to start. 无法启动外部命令。 - + Command <i>%1</i> failed to start. 无法启动命令 <i>%1</i>。 - + Internal error when starting command. 启动命令时出现内部错误。 - + Bad parameters for process job call. 呼叫进程任务出现错误参数 - + External command failed to finish. 外部命令未成功完成。 - + Command <i>%1</i> failed to finish in %2 seconds. 命令 <i>%1</i> 未能在 %2 秒内完成。 - + External command finished with errors. 外部命令已完成,但出现了错误。 - + Command <i>%1</i> finished with exit code %2. 命令 <i>%1</i> 以退出代码 %2 完成。 @@ -1904,22 +1937,22 @@ Output: 默认 - + unknown 未知 - + extended 扩展分区 - + unformatted 未格式化 - + swap 临时存储空间 @@ -2012,52 +2045,52 @@ Output: 正在收集系统信息 ... - + has at least %1 GB available drive space 至少 %1 GB 可用磁盘空间 - + There is not enough drive space. At least %1 GB is required. 没有足够的磁盘空间。至少需要 %1 GB。 - + has at least %1 GB working memory 至少 %1 GB 可用内存 - + The system does not have enough working memory. At least %1 GB is required. 系统没有足够的内存。至少需要 %1 GB。 - + is plugged in to a power source 已连接到电源 - + The system is not plugged in to a power source. 系统未连接到电源。 - + is connected to the Internet 已连接到互联网 - + The system is not connected to the Internet. 系统未连接到互联网。 - + The installer is not running with administrator rights. 安装器未以管理员权限运行 - + The screen is too small to display the installer. 屏幕不能完整显示安装器。 @@ -2101,29 +2134,29 @@ Output: SetHostNameJob - + Set hostname %1 设置主机名 %1 - + Set hostname <strong>%1</strong>. 设置主机名 <strong>%1</strong>。 - + Setting hostname %1. 正在设置主机名 %1。 - - + + Internal Error 内部错误 - - + + Cannot write hostname to target system 无法向目标系统写入主机名 @@ -2330,6 +2363,15 @@ Output: Shell 进程任务 + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2500,7 +2542,7 @@ Output: UsersViewStep - + Users 用户 @@ -2558,7 +2600,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>特别感谢:Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg 及 <a href="https://www.transifex.com/calamares/calamares/">Calamares 翻译团队</a>。<br/><br/><a href="https://calamares.io/">Calamares</a> 的开发由 <br/><a href="http://www.blue-systems.com/">Blue Systems</a> 赞助。 - + %1 support %1 的支持信息 @@ -2566,7 +2608,7 @@ Output: WelcomeViewStep - + Welcome 欢迎 diff --git a/lang/calamares_zh_TW.ts b/lang/calamares_zh_TW.ts index 67ba8cf3d..9cba0e33b 100644 --- a/lang/calamares_zh_TW.ts +++ b/lang/calamares_zh_TW.ts @@ -45,6 +45,14 @@ %1 (%2) + + Calamares::BlankViewStep + + + Blank Page + 空白頁 + + Calamares::DebugWindow @@ -97,7 +105,7 @@ Calamares::ExecutionViewStep - + Install 安裝 @@ -105,7 +113,7 @@ Calamares::JobThread - + Done 完成 @@ -113,12 +121,12 @@ Calamares::ProcessJob - + Run command %1 %2 執行命令 %1 %2 - + Running command %1 %2 正在執行命令 %1 %2 @@ -126,32 +134,32 @@ Calamares::PythonJob - + Running %1 operation. 正在執行 %1 操作。 - + Bad working directory path 不良的工作目錄路徑 - + Working directory %1 for python job %2 is not readable. Python 行程 %2 作用中的目錄 %1 不具讀取權限。 - + Bad main script file 錯誤的主要腳本檔 - + Main script file %1 for python job %2 is not readable. Python 行程 %2 的主要腳本檔 %1 無法讀取。 - + Boost.Python error in job "%1". 行程 %1 中 Boost.Python 錯誤。 @@ -159,91 +167,112 @@ Calamares::ViewManager - + &Back 返回 (&B) - + + &Next 下一步 (&N) - - + + &Cancel 取消(&C) - - + + Cancel installation without changing the system. 不變更系統並取消安裝。 - + + Calamares Initialization Failed + Calamares 初始化失敗 + + + + %1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution. + %1 無法安裝。Calamares 無法載入所有已設定的模組。散佈版使用 Calamares 的方式有問題。 + + + + <br/>The following modules could not be loaded: + <br/>以下的模組無法載入: + + + + &Install + 安裝(&I) + + + Cancel installation? 取消安裝? - + Do you really want to cancel the current install process? The installer will quit and all changes will be lost. 您真的想要取消目前的安裝程序嗎? 安裝程式將會退出且所有變動將會遺失。 - + &Yes 是(&Y) - + &No 否(&N) - + &Close 關閉(&C) - + Continue with setup? 繼續安裝? - + The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong> %1 安裝程式將在您的磁碟上做出變更以安裝 %2。<br/><strong>您將無法復原這些變更。</strong> - + &Install now 現在安裝 (&I) - + Go &back 上一步 (&B) - + &Done 完成(&D) - + The installation is complete. Close the installer. 安裝完成。關閉安裝程式。 - + Error 錯誤 - + Installation Failed 安裝失敗 @@ -430,17 +459,17 @@ The installer will quit and all changes will be lost. ClearMountsJob - + Clear mounts for partitioning operations on %1 為了準備分割區操作而完全卸載 %1 - + Clearing mounts for partitioning operations on %1. 正在為了準備分割區操作而完全卸載 %1 - + Cleared all mounts for %1 已清除所有與 %1 相關的掛載 @@ -471,20 +500,26 @@ The installer will quit and all changes will be lost. CommandList - + + Could not run command. 無法執行指令。 - - No rootMountPoint is defined, so command cannot be run in the target environment. - 未定義 rootMountPoint,所以指令無法在目標環境中執行。 + + The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined. + 指令執行於主機環境中,且需要知道根路徑,但根掛載點未定義。 + + + + The command needs to know the user's name, but no username is defined. + 指令需要知道使用者名稱,但是使用者名稱未定義。 ContextualProcessJob - + Contextual Processes Job 情境處理程序工作 @@ -542,27 +577,27 @@ The installer will quit and all changes will be lost. 容量大小 (&z) : - + En&crypt 加密(&C) - + Logical 邏輯磁區 - + Primary 主要磁區 - + GPT GPT - + Mountpoint already in use. Please select another one. 掛載點使用中。請選擇其他的。 @@ -644,70 +679,40 @@ The installer will quit and all changes will be lost. CreateUserJob - + Create user %1 建立使用者 %1 - + Create user <strong>%1</strong>. 建立使用者 <strong>%1</strong>。 - + Creating user %1. 正在建立使用者 %1。 - + Sudoers dir is not writable. Sudoers 目錄不可寫入。 - + Cannot create sudoers file for writing. 無法建立要寫入的 sudoers 檔案。 - + Cannot chmod sudoers file. 無法修改 sudoers 檔案權限。 - + Cannot open groups file for reading. 無法開啟要讀取的 groups 檔案。 - - - Cannot create user %1. - 無法建立使用者 %1 。 - - - - useradd terminated with error code %1. - useradd 以錯誤代碼 %1 終止。 - - - - Cannot add user %1 to groups: %2. - 無法將使用者 %1 加入至群組:%2。 - - - - usermod terminated with error code %1. - usermod 以錯誤代碼 %1 終止。 - - - - Cannot set home directory ownership for user %1. - 無法將使用者 %1 設定為家目錄的擁有者。 - - - - chown terminated with error code %1. - chown 以錯誤代碼 %1 終止。 - DeletePartitionJob @@ -794,7 +799,7 @@ The installer will quit and all changes will be lost. DummyCppJob - + Dummy C++ Job 虛設 C++ 排程 @@ -852,7 +857,7 @@ The installer will quit and all changes will be lost. 旗標: - + Mountpoint already in use. Please select another one. 掛載點使用中。請選擇其他的。 @@ -941,12 +946,12 @@ The installer will quit and all changes will be lost. 現在重新啟動 (&R) - + <h1>All done.</h1><br/>%1 has been installed on your computer.<br/>You may now restart into your new system, or continue using the %2 Live environment. <h1>都完成了。</h1><br/>%1 已經安裝在您的電腦上了。<br/>您現在可能會想要重新啟動到您的新系統中,或是繼續使用 %2 Live 環境。 - + <h1>Installation Failed</h1><br/>%1 has not been installed on your computer.<br/>The error message was: %2. <h1>安裝失敗</h1><br/>%1 並未安裝到您的電腦上。<br/>錯誤訊息為:%2。 @@ -1021,12 +1026,12 @@ The installer will quit and all changes will be lost. KeyboardPage - + Set keyboard model to %1.<br/> 設定鍵盤型號為 %1 。<br/> - + Set keyboard layout to %1/%2. 設定鍵盤佈局為 %1/%2 。 @@ -1070,64 +1075,64 @@ The installer will quit and all changes will be lost. 表單 - + I accept the terms and conditions above. 我接受上述的條款與條件。 - + <h1>License Agreement</h1>This setup procedure will install proprietary software that is subject to licensing terms. <h1>授權協定</h1>此安裝程式將會安裝受授權條款所限制的專有軟體。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, the setup procedure cannot continue. 請仔細上方的最終用戶授權協定 (EULA)。<br/>若您不同意上述條款,安裝程式將不會繼續。 - + <h1>License Agreement</h1>This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience. <h1>授權協定</h1>此安裝程式可以安裝受授權條款限制的專有軟體,以提供額外的功農與增強使用者體驗。 - + Please review the End User License Agreements (EULAs) above.<br/>If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead. 請仔細上方的最終用戶授權協定 (EULA)。<br/>若您不同意上述條款,將不會安裝專有軟體,而會使用其開放原始螞碼版本作為替代。 - + <strong>%1 driver</strong><br/>by %2 %1 is an untranslatable product name, example: Creative Audigy driver <strong>%1 驅動程式</strong><br/>由 %2 所提供 - + <strong>%1 graphics driver</strong><br/><font color="Grey">by %2</font> %1 is usually a vendor name, example: Nvidia graphics driver <strong>%1 顯示卡驅動程式</strong><br/><font color="Grey">由 %2 所提供</font> - + <strong>%1 browser plugin</strong><br/><font color="Grey">by %2</font> <strong>%1 瀏覽器外掛程式</strong><br/><font color="Grey">由 %2 所提供</font> - + <strong>%1 codec</strong><br/><font color="Grey">by %2</font> <strong>%1 編解碼器</strong><br/><font color="Grey">由 %2 所提供</font> - + <strong>%1 package</strong><br/><font color="Grey">by %2</font> <strong>%1 軟體包</strong><br/><font color="Grey">由 %2 所提供</font> - + <strong>%1</strong><br/><font color="Grey">by %2</font> <strong>%1</strong><br/><font color="Grey">由 %2 所提供</font> - + <a href="%1">view license agreement</a> <a href="%1">檢視授權協定</a> @@ -1183,12 +1188,12 @@ The installer will quit and all changes will be lost. LocaleViewStep - + Loading location data... 讀取位置資料 ... - + Location 位置 @@ -1196,22 +1201,22 @@ The installer will quit and all changes will be lost. NetInstallPage - + Name 名稱 - + Description 描述 - + Network Installation. (Disabled: Unable to fetch package lists, check your network connection) 網路安裝。(已停用:無法擷取軟體包清單,請檢查您的網路連線) - + Network Installation. (Disabled: Received invalid groups data) 網路安裝。(已停用:收到無效的群組資料) @@ -1219,7 +1224,7 @@ The installer will quit and all changes will be lost. NetInstallViewStep - + Package selection 軟體包選擇 @@ -1227,242 +1232,242 @@ The installer will quit and all changes will be lost. PWQ - + Password is too short 密碼太短 - + Password is too long 密碼太長 - + Password is too weak 密碼太弱 - + Memory allocation error when setting '%1' 當設定「%1」時記憶體分配錯誤 - + Memory allocation error 記憶體分配錯誤 - + The password is the same as the old one 密碼與舊的相同 - + The password is a palindrome 此密碼為迴文 - + The password differs with case changes only 密碼僅大小寫不同 - + The password is too similar to the old one 密碼與舊的太過相似 - + The password contains the user name in some form 密碼包含某種形式的使用者名稱 - + The password contains words from the real name of the user in some form 密碼包含了某種形式的使用者真實姓名 - + The password contains forbidden words in some form 密碼包含了某種形式的無效文字 - + The password contains less than %1 digits 密碼中的數字少於 %1 個 - + The password contains too few digits 密碼包含的數字太少了 - + The password contains less than %1 uppercase letters 密碼包含少於 %1 個大寫字母 - + The password contains too few uppercase letters 密碼包含的大寫字母太少了 - + The password contains less than %1 lowercase letters 密碼包含少於 %1 個小寫字母 - + The password contains too few lowercase letters 密碼包含的小寫字母太少了 - + The password contains less than %1 non-alphanumeric characters 密碼包含了少於 %1 個非字母與數字的字元 - + The password contains too few non-alphanumeric characters 密碼包含的非字母與數字的字元太少了 - + The password is shorter than %1 characters 密碼短於 %1 個字元 - + The password is too short 密碼太短 - + The password is just rotated old one 密碼只是輪換過的舊密碼 - + The password contains less than %1 character classes 密碼包含了少於 %1 種字元類型 - + The password does not contain enough character classes 密碼未包含足夠的字元類型 - + The password contains more than %1 same characters consecutively 密碼包含了連續超過 %1 個相同字元 - + The password contains too many same characters consecutively 密碼包含連續太多個相同的字元 - + The password contains more than %1 characters of the same class consecutively 密碼包含了連續多於 %1 個相同的字元類型 - + The password contains too many characters of the same class consecutively 密碼包含了連續太多相同類型的字元 - + The password contains monotonic sequence longer than %1 characters 密碼包含了長度超過 %1 個字元的單調序列 - + The password contains too long of a monotonic character sequence 密碼包含了長度過長的單調字元序列 - + No password supplied 未提供密碼 - + Cannot obtain random numbers from the RNG device 無法從 RNG 裝置中取得隨機數 - + Password generation failed - required entropy too low for settings 密碼生成失敗,設定的必要熵太低 - + The password fails the dictionary check - %1 密碼在字典檢查時失敗 - %1 - + The password fails the dictionary check 密碼在字典檢查時失敗 - + Unknown setting - %1 未知的設定 - %1 - + Unknown setting 未知的設定 - + Bad integer value of setting - %1 整數值設定不正確 - %1 - + Bad integer value 整數值不正確 - + Setting %1 is not of integer type 設定 %1 不是整數類型 - + Setting is not of integer type 設定不是整數類型 - + Setting %1 is not of string type 設定 %1 不是字串類型 - + Setting is not of string type 設定不是字串類型 - + Opening the configuration file failed 開啟設定檔失敗 - + The configuration file is malformed 設定檔格式不正確 - + Fatal failure 無法挽回的失敗 - + Unknown error 未知的錯誤 @@ -1601,34 +1606,34 @@ The installer will quit and all changes will be lost. PartitionModel - - + + Free Space 剩餘空間 - - + + New partition 新分割區 - + Name 名稱 - + File System 檔案系統 - + Mount Point 掛載點 - + Size 大小 @@ -1657,8 +1662,8 @@ The installer will quit and all changes will be lost. - &Create - 新增 (&C) + Cre&ate + 建立(&A) @@ -1676,105 +1681,115 @@ The installer will quit and all changes will be lost. 安裝開機載入器在(&L): - + Are you sure you want to create a new partition table on %1? 您是否確定要在 %1 上建立一個新的分割區表格? + + + Can not create new partition + 無法建立新分割區 + + + + The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead. + 在 %1 上的分割表已有 %2 個主要分割區,無法再新增。請移除一個主要分割區並新增一個延伸分割區。 + PartitionViewStep - + Gathering system information... 蒐集系統資訊中... - + Partitions 分割區 - + Install %1 <strong>alongside</strong> another operating system. 將 %1 安裝在其他作業系統<strong>旁邊</strong>。 - + <strong>Erase</strong> disk and install %1. <strong>抹除</strong>磁碟並安裝 %1。 - + <strong>Replace</strong> a partition with %1. 以 %1 <strong>取代</strong>一個分割區。 - + <strong>Manual</strong> partitioning. <strong>手動</strong>分割 - + Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3). 將 %1 安裝在磁碟 <strong>%2</strong> (%3) 上的另一個作業系統<strong>旁邊</strong>。 - + <strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1. <strong>抹除</strong> 磁碟 <strong>%2</strong> (%3) 並且安裝 %1。 - + <strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1. 以 %1 <strong>取代</strong> 一個在磁碟 <strong>%2</strong> (%3) 上的分割區。 - + <strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2). 在磁碟 <strong>%1</strong> (%2) 上<strong>手動</strong>分割。 - + Disk <strong>%1</strong> (%2) 磁碟 <strong>%1</strong> (%2) - + Current: 目前: - + After: 之後: - + No EFI system partition configured 未設定 EFI 系統分割區 - + An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start. 需要一個 EFI 系統分割區以啟動 %1。<br/><br/>要設定 EFI 系統分割區,回到上一步並選取或建立一個包含啟用的 <strong>esp</strong> 旗標以及掛載點 <strong>%2</strong> 的 FAT32 檔案系統。<br/><br/>您也可以不設定 EFI 系統分割區並繼續,但是您的系統可能會啟動失敗。 - + EFI system partition flag not set EFI 系統分割區旗標未設定 - + An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start. 需要一個 EFI 系統分割區以啟動 %1。<br/><br/>有一個掛載點設定為 <strong>%2</strong> 但未設定 <strong>esp</strong> 旗標的分割區。<br/>要設定此旗標,回到上一步並編輯分割區。<br/><br/>您也可以不設定旗標而繼續,但您的系統可能會啟動失敗。 - + Boot partition not encrypted 開機分割區未加密 - + A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window. 單獨的開機分割區會與加密的根分割區一起設定,但是開機分割區並不會被加密。<br/><br/>這種設定可能會造成安全性問題,因為系統檔案放在未加密的分割區中。<br/>若您想要,您可以繼續,但是檔案系統的解鎖會在系統啟動後才發生。<br/>要加密開機分割區,回到上一頁並重新建立它,在分割區建立視窗中選取<strong>加密</strong>。 @@ -1806,30 +1821,48 @@ The installer will quit and all changes will be lost. 佔位符 - - 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. - 請為 KDE Plasma 桌面環境選擇一組外觀與感覺。您也可以略過此步驟並在系統安裝完成後再行設定。 + + 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. + 請為 KDE Plasma 桌面選擇外觀與感覺。您也可以跳過此步驟並在系統安裝好之後再設定。在外觀與感覺小節點按將會給您特定外觀與感覺的即時預覽。 PlasmaLnfViewStep - + Look-and-Feel 外觀與感覺 + + PreserveFiles + + + Saving files for later ... + 稍後儲存檔案…… + + + + No files configured to save for later. + 沒有檔案被設定為稍後儲存。 + + + + Not all of the configured files could be preserved. + 並非所有已設定的檔案都可以被保留。 + + ProcessResult - + There was no output from the command. 指令沒有輸出。 - + Output: @@ -1838,52 +1871,52 @@ Output: - + External command crashed. 外部指令當機。 - + Command <i>%1</i> crashed. 指令 <i>%1</i> 已當機。 - + External command failed to start. 外部指令啟動失敗。 - + Command <i>%1</i> failed to start. 指令 <i>%1</i> 啟動失敗。 - + Internal error when starting command. 當啟動指令時發生內部錯誤。 - + Bad parameters for process job call. 呼叫程序的參數無效。 - + External command failed to finish. 外部指令結束失敗。 - + Command <i>%1</i> failed to finish in %2 seconds. 指令 <i>%1</i> 在結束 %2 秒內失敗。 - + External command finished with errors. 外部指令結束時發生錯誤。 - + Command <i>%1</i> finished with exit code %2. 指令 <i>%1</i> 結束時有錯誤碼 %2。 @@ -1902,22 +1935,22 @@ Output: 預設值 - + unknown 未知 - + extended 延伸分割區 - + unformatted 未格式化 - + swap swap @@ -2010,52 +2043,52 @@ Output: 收集系統資訊中... - + has at least %1 GB available drive space 有至少 %1 GB 的可用磁碟空間 - + There is not enough drive space. At least %1 GB is required. 沒有足夠的磁碟空間。至少需要 %1 GB。 - + has at least %1 GB working memory 有至少 %1 GB 的可用記憶體 - + The system does not have enough working memory. At least %1 GB is required. 系統沒有足夠的記憶體。至少需要 %1 GB。 - + is plugged in to a power source 已插入外接電源 - + The system is not plugged in to a power source. 系統未插入外接電源。 - + is connected to the Internet 已連上網際網路 - + The system is not connected to the Internet. 系統未連上網際網路 - + The installer is not running with administrator rights. 安裝程式並未以管理員權限執行。 - + The screen is too small to display the installer. 螢幕太小了,沒辦法顯示安裝程式。 @@ -2099,29 +2132,29 @@ Output: SetHostNameJob - + Set hostname %1 設定主機名 %1 - + Set hostname <strong>%1</strong>. 設定主機名稱 <strong>%1</strong>。 - + Setting hostname %1. 正在設定主機名稱 %1。 - - + + Internal Error 內部錯誤 - - + + Cannot write hostname to target system 無法寫入主機名稱到目標系統 @@ -2328,6 +2361,15 @@ Output: 殼層處理程序工作 + + SlideCounter + + + %L1 / %L2 + slide counter, %1 of %2 (numeric) + %L1 / %L2 + + SummaryPage @@ -2498,7 +2540,7 @@ Output: UsersViewStep - + Users 使用者 @@ -2556,7 +2598,7 @@ Output: <h1>%1</h1><br/><strong>%2<br/>為 %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017 Adriaan de Groot &lt;groot@kde.org&gt;<br/>感謝:Anke Boersma, Aurélien Gâteau, Kevin Kofler, Lisa Vitolo, Philip Müller, Pier Luigi Fiorini, Rohan Garg 與 <a href="https://www.transifex.com/calamares/calamares/">Calamares 翻譯團隊</a>。<br/><br/><a href="https://calamares.io/">Calamares</a> 開發由 <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software 贊助。 - + %1 support %1 支援 @@ -2564,7 +2606,7 @@ Output: WelcomeViewStep - + Welcome 歡迎 diff --git a/lang/python.pot b/lang/python.pot index c9487697e..3d17cba70 100644 --- a/lang/python.pot +++ b/lang/python.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -18,6 +18,10 @@ msgstr "" "Language: \n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Unmount file systems." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Dummy python job." @@ -30,23 +34,23 @@ msgstr "Dummy python step {}" msgid "Generate machine-id." msgstr "Generate machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Processing packages (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Install packages." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Installing one package." msgstr[1] "Installing %(num)d packages." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/ar/LC_MESSAGES/python.mo b/lang/python/ar/LC_MESSAGES/python.mo index 0b54ffe92..ba5822bef 100644 Binary files a/lang/python/ar/LC_MESSAGES/python.mo and b/lang/python/ar/LC_MESSAGES/python.mo differ diff --git a/lang/python/ar/LC_MESSAGES/python.po b/lang/python/ar/LC_MESSAGES/python.po index 0e565716b..7c95b55e9 100644 --- a/lang/python/ar/LC_MESSAGES/python.po +++ b/lang/python/ar/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Arabic (https://www.transifex.com/calamares/teams/20061/ar/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ar\n" "Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,16 +33,16 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -49,7 +53,7 @@ msgstr[3] "" msgstr[4] "" msgstr[5] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/ast/LC_MESSAGES/python.mo b/lang/python/ast/LC_MESSAGES/python.mo index dbf7ea574..7f783adc0 100644 Binary files a/lang/python/ast/LC_MESSAGES/python.mo and b/lang/python/ast/LC_MESSAGES/python.mo differ diff --git a/lang/python/ast/LC_MESSAGES/python.po b/lang/python/ast/LC_MESSAGES/python.po index 5d4616db5..857bc5e79 100644 --- a/lang/python/ast/LC_MESSAGES/python.po +++ b/lang/python/ast/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: enolp , 2017\n" "Language-Team: Asturian (https://www.transifex.com/calamares/teams/20061/ast/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: ast\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Trabayu maniquín de python." @@ -30,23 +34,23 @@ msgstr "Pasu maniquín de python {}" msgid "Generate machine-id." msgstr "Xenerar machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/be/LC_MESSAGES/python.mo b/lang/python/be/LC_MESSAGES/python.mo new file mode 100644 index 000000000..83ad333be Binary files /dev/null and b/lang/python/be/LC_MESSAGES/python.mo differ diff --git a/lang/python/pl_PL/LC_MESSAGES/python.po b/lang/python/be/LC_MESSAGES/python.po similarity index 64% rename from lang/python/pl_PL/LC_MESSAGES/python.po rename to lang/python/be/LC_MESSAGES/python.po index ecd484fed..ef993836b 100644 --- a/lang/python/pl_PL/LC_MESSAGES/python.po +++ b/lang/python/be/LC_MESSAGES/python.po @@ -8,14 +8,18 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Language-Team: Polish (Poland) (https://www.transifex.com/calamares/teams/20061/pl_PL/)\n" +"Language-Team: Belarusian (https://www.transifex.com/calamares/teams/20061/be/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: pl_PL\n" -"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -29,16 +33,16 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -47,7 +51,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/bg/LC_MESSAGES/python.mo b/lang/python/bg/LC_MESSAGES/python.mo index 98846ddf8..f646fe6c3 100644 Binary files a/lang/python/bg/LC_MESSAGES/python.mo and b/lang/python/bg/LC_MESSAGES/python.mo differ diff --git a/lang/python/bg/LC_MESSAGES/python.po b/lang/python/bg/LC_MESSAGES/python.po index c64d4dc1c..310613b29 100644 --- a/lang/python/bg/LC_MESSAGES/python.po +++ b/lang/python/bg/LC_MESSAGES/python.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Georgi Georgiev , 2018\n" "Language-Team: Bulgarian (https://www.transifex.com/calamares/teams/20061/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,6 +18,10 @@ msgstr "" "Language: bg\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,25 +34,25 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "Инсталирай пакетите." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Инсталиране на един пакет." +msgstr[1] "Инсталиране на %(num)d пакети." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Премахване на един пакет." +msgstr[1] "Премахване на %(num)d пакети." diff --git a/lang/python/ca/LC_MESSAGES/python.mo b/lang/python/ca/LC_MESSAGES/python.mo index aab9d6093..1225154b6 100644 Binary files a/lang/python/ca/LC_MESSAGES/python.mo and b/lang/python/ca/LC_MESSAGES/python.mo differ diff --git a/lang/python/ca/LC_MESSAGES/python.po b/lang/python/ca/LC_MESSAGES/python.po index 0086b0a87..71b452349 100644 --- a/lang/python/ca/LC_MESSAGES/python.po +++ b/lang/python/ca/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Davidmp , 2017\n" "Language-Team: Catalan (https://www.transifex.com/calamares/teams/20061/ca/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: ca\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmunta els sistemes de fitxers." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Tasca de python fictícia." @@ -30,23 +34,23 @@ msgstr "Pas de python fitctici {}" msgid "Generate machine-id." msgstr "Generació de l'id. de la màquina." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Processant paquets (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instal·la els paquets." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Instal·lant un paquet." msgstr[1] "Instal·lant %(num)d paquets." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/cs_CZ/LC_MESSAGES/python.mo b/lang/python/cs_CZ/LC_MESSAGES/python.mo index 4fa179e89..a5b37d3e4 100644 Binary files a/lang/python/cs_CZ/LC_MESSAGES/python.mo and b/lang/python/cs_CZ/LC_MESSAGES/python.mo differ diff --git a/lang/python/cs_CZ/LC_MESSAGES/python.po b/lang/python/cs_CZ/LC_MESSAGES/python.po index 1d2b8d0df..0a63977f3 100644 --- a/lang/python/cs_CZ/LC_MESSAGES/python.po +++ b/lang/python/cs_CZ/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Pavel Borecki , 2017\n" "Language-Team: Czech (Czech Republic) (https://www.transifex.com/calamares/teams/20061/cs_CZ/)\n" @@ -16,7 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs_CZ\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odpojit souborové systémy." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -30,27 +34,29 @@ msgstr "Testovací krok {} python." msgid "Generate machine-id." msgstr "Vytvořit identifikátor stroje." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Zpracovávání balíčků (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instalovat balíčky." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Je instalován jeden balíček." msgstr[1] "Jsou instalovány %(num)d balíčky." msgstr[2] "Je instalováno %(num)d balíčků." +msgstr[3] "Je instalováno %(num)d balíčků." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "Odebírá se jeden balíček." msgstr[1] "Odebírají se %(num)d balíčky." msgstr[2] "Odebírá se %(num)d balíčků." +msgstr[3] "Odebírá se %(num)d balíčků." diff --git a/lang/python/da/LC_MESSAGES/python.mo b/lang/python/da/LC_MESSAGES/python.mo index 71e2969ce..1fb0f2983 100644 Binary files a/lang/python/da/LC_MESSAGES/python.mo and b/lang/python/da/LC_MESSAGES/python.mo differ diff --git a/lang/python/da/LC_MESSAGES/python.po b/lang/python/da/LC_MESSAGES/python.po index 130829e5b..b9a3a9a1f 100644 --- a/lang/python/da/LC_MESSAGES/python.po +++ b/lang/python/da/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Dan Johansen (Strit), 2017\n" "Language-Team: Danish (https://www.transifex.com/calamares/teams/20061/da/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Afmonter filsystemer." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Dummy python-job." @@ -28,27 +32,27 @@ msgstr "Dummy python-trin {}" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "Generere maskine-id." +msgstr "Generér maskin-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Forarbejder pakker (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Installér pakker." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Installerer én pakke." msgstr[1] "Installerer %(num)d pakker." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "Fjerner én pakke." -msgstr[1] "Fjerne %(num)d pakker." +msgstr[1] "Fjerner %(num)d pakker." diff --git a/lang/python/de/LC_MESSAGES/python.mo b/lang/python/de/LC_MESSAGES/python.mo index 54e535e4e..55a2e7b43 100644 Binary files a/lang/python/de/LC_MESSAGES/python.mo and b/lang/python/de/LC_MESSAGES/python.mo differ diff --git a/lang/python/de/LC_MESSAGES/python.po b/lang/python/de/LC_MESSAGES/python.po index 905724013..5d1e4b83a 100644 --- a/lang/python/de/LC_MESSAGES/python.po +++ b/lang/python/de/LC_MESSAGES/python.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Dirk Hein , 2017\n" +"Last-Translator: Dirk Hein , 2017\n" "Language-Team: German (https://www.transifex.com/calamares/teams/20061/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Dateisysteme aushängen." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Dummy Python-Job" @@ -30,23 +34,23 @@ msgstr "Dummy Python-Schritt {}" msgid "Generate machine-id." msgstr "Generiere Computer-ID" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Verarbeite Pakete (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Pakete installieren " -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Installiere ein Paket" -msgstr[1] "Installiere %(num)dPakete " +msgstr[1] "Installiere %(num)dPakete." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/el/LC_MESSAGES/python.mo b/lang/python/el/LC_MESSAGES/python.mo index cbd13a3a9..f7eac7543 100644 Binary files a/lang/python/el/LC_MESSAGES/python.mo and b/lang/python/el/LC_MESSAGES/python.mo differ diff --git a/lang/python/el/LC_MESSAGES/python.po b/lang/python/el/LC_MESSAGES/python.po index fd0d67317..2be51c37a 100644 --- a/lang/python/el/LC_MESSAGES/python.po +++ b/lang/python/el/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Efstathios Iosifidis , 2017\n" "Language-Team: Greek (https://www.transifex.com/calamares/teams/20061/el/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -30,23 +34,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "εγκατάσταση πακέτων." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/en_GB/LC_MESSAGES/python.mo b/lang/python/en_GB/LC_MESSAGES/python.mo index 855a80e5c..a76cbaca7 100644 Binary files a/lang/python/en_GB/LC_MESSAGES/python.mo and b/lang/python/en_GB/LC_MESSAGES/python.mo differ diff --git a/lang/python/en_GB/LC_MESSAGES/python.po b/lang/python/en_GB/LC_MESSAGES/python.po index fcc8d6f41..2b145615b 100644 --- a/lang/python/en_GB/LC_MESSAGES/python.po +++ b/lang/python/en_GB/LC_MESSAGES/python.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Jason Collins , 2018\n" "Language-Team: English (United Kingdom) (https://www.transifex.com/calamares/teams/20061/en_GB/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,37 +18,41 @@ msgstr "" "Language: en_GB\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Unmount file systems." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "Dummy python job." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "" +msgstr "Dummy python step {}" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "" +msgstr "Generate machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Processing packages (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "Install packages." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Installing one package." +msgstr[1] "Installing %(num)d packages." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Removing one package." +msgstr[1] "Removing %(num)d packages." diff --git a/lang/python/eo/LC_MESSAGES/python.mo b/lang/python/eo/LC_MESSAGES/python.mo new file mode 100644 index 000000000..6341c29b5 Binary files /dev/null and b/lang/python/eo/LC_MESSAGES/python.mo differ diff --git a/lang/python/es_ES/LC_MESSAGES/python.po b/lang/python/eo/LC_MESSAGES/python.po similarity index 54% rename from lang/python/es_ES/LC_MESSAGES/python.po rename to lang/python/eo/LC_MESSAGES/python.po index 3e4c50b16..58827fadd 100644 --- a/lang/python/es_ES/LC_MESSAGES/python.po +++ b/lang/python/eo/LC_MESSAGES/python.po @@ -8,46 +8,51 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Language-Team: Spanish (Spain) (https://www.transifex.com/calamares/teams/20061/es_ES/)\n" +"Last-Translator: Kurt Ankh Phoenix , 2018\n" +"Language-Team: Esperanto (https://www.transifex.com/calamares/teams/20061/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es_ES\n" +"Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Demeti dosieraj sistemoj." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "Formala python laboro." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "" +msgstr "Formala python paŝo {}" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "" +msgstr "Generi maŝino-legitimilo." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Prilaborante pakaĵoj (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "Instali pakaĵoj." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Instalante unu pakaĵo." +msgstr[1] "Instalante %(num)d pakaĵoj." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Forigante unu pakaĵo." +msgstr[1] "Forigante %(num)d pakaĵoj." diff --git a/lang/python/es/LC_MESSAGES/python.mo b/lang/python/es/LC_MESSAGES/python.mo index a6d7055d5..c41fdc835 100644 Binary files a/lang/python/es/LC_MESSAGES/python.mo and b/lang/python/es/LC_MESSAGES/python.mo differ diff --git a/lang/python/es/LC_MESSAGES/python.po b/lang/python/es/LC_MESSAGES/python.po index 3b54852cf..39b5e54cc 100644 --- a/lang/python/es/LC_MESSAGES/python.po +++ b/lang/python/es/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: strel, 2017\n" "Language-Team: Spanish (https://www.transifex.com/calamares/teams/20061/es/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Tarea de python ficticia." @@ -30,23 +34,23 @@ msgstr "Paso {} de python ficticio" msgid "Generate machine-id." msgstr "Generar identificación-de-máquina." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Procesando paquetes (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instalar paquetes." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Instalando un paquete." msgstr[1] "Instalando %(num)d paquetes." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/es_ES/LC_MESSAGES/python.mo b/lang/python/es_ES/LC_MESSAGES/python.mo deleted file mode 100644 index f7107d58d..000000000 Binary files a/lang/python/es_ES/LC_MESSAGES/python.mo and /dev/null differ diff --git a/lang/python/es_MX/LC_MESSAGES/python.mo b/lang/python/es_MX/LC_MESSAGES/python.mo index 297ed90f6..7e4a72501 100644 Binary files a/lang/python/es_MX/LC_MESSAGES/python.mo and b/lang/python/es_MX/LC_MESSAGES/python.mo differ diff --git a/lang/python/es_MX/LC_MESSAGES/python.po b/lang/python/es_MX/LC_MESSAGES/python.po index 529524622..4624dc26d 100644 --- a/lang/python/es_MX/LC_MESSAGES/python.po +++ b/lang/python/es_MX/LC_MESSAGES/python.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: guillermo pacheco , 2018\n" "Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,37 +18,41 @@ msgstr "" "Language: es_MX\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +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:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Procesando paquetes (%(count)d/%(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "Instalar paquetes." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, 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:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Removiendo un paquete." +msgstr[1] "Removiendo %(num)dpaquetes." diff --git a/lang/python/es_PR/LC_MESSAGES/python.mo b/lang/python/es_PR/LC_MESSAGES/python.mo index 77e4dd2a9..cb792fa25 100644 Binary files a/lang/python/es_PR/LC_MESSAGES/python.mo and b/lang/python/es_PR/LC_MESSAGES/python.mo differ diff --git a/lang/python/es_PR/LC_MESSAGES/python.po b/lang/python/es_PR/LC_MESSAGES/python.po index 13d87496b..da60c777c 100644 --- a/lang/python/es_PR/LC_MESSAGES/python.po +++ b/lang/python/es_PR/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Spanish (Puerto Rico) (https://www.transifex.com/calamares/teams/20061/es_PR/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: es_PR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/et/LC_MESSAGES/python.mo b/lang/python/et/LC_MESSAGES/python.mo index fda535ec6..5b329444e 100644 Binary files a/lang/python/et/LC_MESSAGES/python.mo and b/lang/python/et/LC_MESSAGES/python.mo differ diff --git a/lang/python/et/LC_MESSAGES/python.po b/lang/python/et/LC_MESSAGES/python.po index 570c96b2f..fa3b724d2 100644 --- a/lang/python/et/LC_MESSAGES/python.po +++ b/lang/python/et/LC_MESSAGES/python.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Madis, 2018\n" "Language-Team: Estonian (https://www.transifex.com/calamares/teams/20061/et/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,37 +18,41 @@ msgstr "" "Language: et\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Haagi failisüsteemid lahti." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "Testiv python'i töö." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "" +msgstr "Testiv python'i aste {}" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "" +msgstr "Genereeri masina-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Pakkide töötlemine (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "Paigalda paketid." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Paigaldan ühe paketi." +msgstr[1] "Paigaldan %(num)d paketti." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Eemaldan ühe paketi." +msgstr[1] "Eemaldan %(num)d paketti." diff --git a/lang/python/eu/LC_MESSAGES/python.mo b/lang/python/eu/LC_MESSAGES/python.mo index 107e8ebcf..48ebe8444 100644 Binary files a/lang/python/eu/LC_MESSAGES/python.mo and b/lang/python/eu/LC_MESSAGES/python.mo differ diff --git a/lang/python/eu/LC_MESSAGES/python.po b/lang/python/eu/LC_MESSAGES/python.po index 8148e110a..98299e5b8 100644 --- a/lang/python/eu/LC_MESSAGES/python.po +++ b/lang/python/eu/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Basque (https://www.transifex.com/calamares/teams/20061/eu/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/fa/LC_MESSAGES/python.mo b/lang/python/fa/LC_MESSAGES/python.mo index 567cd71b4..ab50cf725 100644 Binary files a/lang/python/fa/LC_MESSAGES/python.mo and b/lang/python/fa/LC_MESSAGES/python.mo differ diff --git a/lang/python/fa/LC_MESSAGES/python.po b/lang/python/fa/LC_MESSAGES/python.po index 4e82d7238..b74fd955f 100644 --- a/lang/python/fa/LC_MESSAGES/python.po +++ b/lang/python/fa/LC_MESSAGES/python.po @@ -8,14 +8,18 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Persian (https://www.transifex.com/calamares/teams/20061/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -29,23 +33,25 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" +msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "" +msgstr[1] "" diff --git a/lang/python/fi_FI/LC_MESSAGES/python.mo b/lang/python/fi_FI/LC_MESSAGES/python.mo index 1618d02a9..79bd9e6a6 100644 Binary files a/lang/python/fi_FI/LC_MESSAGES/python.mo and b/lang/python/fi_FI/LC_MESSAGES/python.mo differ diff --git a/lang/python/fi_FI/LC_MESSAGES/python.po b/lang/python/fi_FI/LC_MESSAGES/python.po index b538a93a7..d918e8fc9 100644 --- a/lang/python/fi_FI/LC_MESSAGES/python.po +++ b/lang/python/fi_FI/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Finnish (Finland) (https://www.transifex.com/calamares/teams/20061/fi_FI/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/fr/LC_MESSAGES/python.mo b/lang/python/fr/LC_MESSAGES/python.mo index 2aa26a22b..4f6de64a5 100644 Binary files a/lang/python/fr/LC_MESSAGES/python.mo and b/lang/python/fr/LC_MESSAGES/python.mo differ diff --git a/lang/python/fr/LC_MESSAGES/python.po b/lang/python/fr/LC_MESSAGES/python.po index 0922941c9..068924c97 100644 --- a/lang/python/fr/LC_MESSAGES/python.po +++ b/lang/python/fr/LC_MESSAGES/python.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Aestan , 2018\n" +"Last-Translator: Jeremy Gourmel , 2018\n" "Language-Team: French (https://www.transifex.com/calamares/teams/20061/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Démonter les systèmes de fichiers" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Tâche factice python" @@ -30,23 +34,23 @@ msgstr "Étape factice python {}" msgid "Generate machine-id." msgstr "Générer un identifiant machine." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Traitement des paquets (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Installer les paquets." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Installation d'un paquet." msgstr[1] "Installation de %(num)d paquets." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/fr_CH/LC_MESSAGES/python.mo b/lang/python/fr_CH/LC_MESSAGES/python.mo index dd579fb0f..257f03e88 100644 Binary files a/lang/python/fr_CH/LC_MESSAGES/python.mo and b/lang/python/fr_CH/LC_MESSAGES/python.mo differ diff --git a/lang/python/fr_CH/LC_MESSAGES/python.po b/lang/python/fr_CH/LC_MESSAGES/python.po index 1ac6404f7..35be0615f 100644 --- a/lang/python/fr_CH/LC_MESSAGES/python.po +++ b/lang/python/fr_CH/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: French (Switzerland) (https://www.transifex.com/calamares/teams/20061/fr_CH/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: fr_CH\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/gl/LC_MESSAGES/python.mo b/lang/python/gl/LC_MESSAGES/python.mo index 8774b3541..eb645abc7 100644 Binary files a/lang/python/gl/LC_MESSAGES/python.mo and b/lang/python/gl/LC_MESSAGES/python.mo differ diff --git a/lang/python/gl/LC_MESSAGES/python.po b/lang/python/gl/LC_MESSAGES/python.po index 1f68786f2..17c4c2ca6 100644 --- a/lang/python/gl/LC_MESSAGES/python.po +++ b/lang/python/gl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Galician (https://www.transifex.com/calamares/teams/20061/gl/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/gu/LC_MESSAGES/python.mo b/lang/python/gu/LC_MESSAGES/python.mo index 5a9c52611..04154366e 100644 Binary files a/lang/python/gu/LC_MESSAGES/python.mo and b/lang/python/gu/LC_MESSAGES/python.mo differ diff --git a/lang/python/gu/LC_MESSAGES/python.po b/lang/python/gu/LC_MESSAGES/python.po index 197aa2e4b..b91aca087 100644 --- a/lang/python/gu/LC_MESSAGES/python.po +++ b/lang/python/gu/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Gujarati (https://www.transifex.com/calamares/teams/20061/gu/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: gu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/he/LC_MESSAGES/python.mo b/lang/python/he/LC_MESSAGES/python.mo index f352c66eb..17ce90b75 100644 Binary files a/lang/python/he/LC_MESSAGES/python.mo and b/lang/python/he/LC_MESSAGES/python.mo differ diff --git a/lang/python/he/LC_MESSAGES/python.po b/lang/python/he/LC_MESSAGES/python.po index 6005805da..606507b49 100644 --- a/lang/python/he/LC_MESSAGES/python.po +++ b/lang/python/he/LC_MESSAGES/python.po @@ -8,15 +8,19 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Eli Shleifer , 2017\n" +"Last-Translator: Yaron Shahrabani , 2017\n" "Language-Team: Hebrew (https://www.transifex.com/calamares/teams/20061/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: he\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "ניתוק עיגון מערכות קבצים." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -28,27 +32,31 @@ msgstr "צעד דמה של Python {}" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "חולל מספר סידורי של המכונה." +msgstr "לייצר מספר סידורי של המכונה." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "מעבד חבילות (%(count)d/%(total)d)" +msgstr "החבילות מעובדות (%(count)d/%(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "התקן חבילות." +msgstr "התקנת חבילות." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "מתקין חבילה אחת." -msgstr[1] "מתקין %(num)d חבילות." +msgstr[0] "מותקנת חבילה אחת." +msgstr[1] "מותקנות %(num)d חבילות." +msgstr[2] "מותקנות %(num)d חבילות." +msgstr[3] "מותקנות %(num)d חבילות." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "מסיר חבילה אחת." -msgstr[1] "מסיר %(num)d חבילות." +msgstr[0] "מתבצעת הסרה של חבילה אחת." +msgstr[1] "מתבצעת הסרה של %(num)d חבילות." +msgstr[2] "מתבצעת הסרה של %(num)d חבילות." +msgstr[3] "מתבצעת הסרה של %(num)d חבילות." diff --git a/lang/python/hi/LC_MESSAGES/python.mo b/lang/python/hi/LC_MESSAGES/python.mo index 57a9d3d2c..7c6a34177 100644 Binary files a/lang/python/hi/LC_MESSAGES/python.mo and b/lang/python/hi/LC_MESSAGES/python.mo differ diff --git a/lang/python/hi/LC_MESSAGES/python.po b/lang/python/hi/LC_MESSAGES/python.po index 21403be21..ab977ea55 100644 --- a/lang/python/hi/LC_MESSAGES/python.po +++ b/lang/python/hi/LC_MESSAGES/python.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Panwar108 , 2018\n" "Language-Team: Hindi (https://www.transifex.com/calamares/teams/20061/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,37 +18,41 @@ msgstr "" "Language: hi\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "फ़ाइल सिस्टम माउंट से हटाएँ।" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "" +msgstr "डमी पाइथन प्रक्रिया ।" #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "" +msgstr "डमी पाइथन प्रक्रिया की चरण संख्या {}" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "" +msgstr "मशीन-आईडी उत्पन्न करें।" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "पैकेज (%(count)d / %(total)d) संसाधित किए जा रहे हैं" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "पैकेज इंस्टॉल करें।" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "एक पैकेज इंस्टॉल किया जा रहा है।" +msgstr[1] "%(num)d पैकेज इंस्टॉल किए जा रहे हैं।" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" -msgstr[1] "" +msgstr[0] "एक पैकेज हटाया जा रहा है।" +msgstr[1] "%(num)d पैकेज हटाए जा रहे हैं।" diff --git a/lang/python/hr/LC_MESSAGES/python.mo b/lang/python/hr/LC_MESSAGES/python.mo index 17adb13d7..d639f67f1 100644 Binary files a/lang/python/hr/LC_MESSAGES/python.mo and b/lang/python/hr/LC_MESSAGES/python.mo differ diff --git a/lang/python/hr/LC_MESSAGES/python.po b/lang/python/hr/LC_MESSAGES/python.po index e0b7f41a2..922f88cd0 100644 --- a/lang/python/hr/LC_MESSAGES/python.po +++ b/lang/python/hr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Lovro Kudelić , 2017\n" "Language-Team: Croatian (https://www.transifex.com/calamares/teams/20061/hr/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odmontiraj datotečne sustave." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Testni python posao." @@ -30,16 +34,16 @@ msgstr "Testni python korak {}" msgid "Generate machine-id." msgstr "Generiraj ID računala." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Obrađujem pakete (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instaliraj pakete." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -47,7 +51,7 @@ msgstr[0] "Instaliram paket." msgstr[1] "Instaliram %(num)d pakete." msgstr[2] "Instaliram %(num)d pakete." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/hu/LC_MESSAGES/python.mo b/lang/python/hu/LC_MESSAGES/python.mo index 3cad3f4c5..94e29ac49 100644 Binary files a/lang/python/hu/LC_MESSAGES/python.mo and b/lang/python/hu/LC_MESSAGES/python.mo differ diff --git a/lang/python/hu/LC_MESSAGES/python.po b/lang/python/hu/LC_MESSAGES/python.po index 2ac911867..286e27b3b 100644 --- a/lang/python/hu/LC_MESSAGES/python.po +++ b/lang/python/hu/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: miku84, 2017\n" "Language-Team: Hungarian (https://www.transifex.com/calamares/teams/20061/hu/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: hu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Hamis PythonQt Job." @@ -30,23 +34,23 @@ msgstr "Hamis PythonQt {} lépés" msgid "Generate machine-id." msgstr "Számítógép azonosító generálása." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Csomagok feldolgozása (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Csomagok telepítése." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/id/LC_MESSAGES/python.mo b/lang/python/id/LC_MESSAGES/python.mo index 66d329c77..c81f1472a 100644 Binary files a/lang/python/id/LC_MESSAGES/python.mo and b/lang/python/id/LC_MESSAGES/python.mo differ diff --git a/lang/python/id/LC_MESSAGES/python.po b/lang/python/id/LC_MESSAGES/python.po index 146c89d90..020f75344 100644 --- a/lang/python/id/LC_MESSAGES/python.po +++ b/lang/python/id/LC_MESSAGES/python.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Wantoyo , 2017\n" +"Last-Translator: Harry Suryapambagya , 2018\n" "Language-Team: Indonesian (https://www.transifex.com/calamares/teams/20061/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,35 +18,39 @@ msgstr "" "Language: id\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Lepaskan sistem berkas." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "Dummy python job." +msgstr "Tugas dumi python." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "Dummy python step {}" +msgstr "Langkah {} dumi python" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "Generate machine-id." +msgstr "Menghasilkan machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Paket pemrosesan (%(count)d/%(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." -msgstr "" +msgstr "pasang paket" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." -msgstr[0] "" +msgstr[0] "memasang paket %(num)d" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." -msgstr[0] "" +msgstr[0] "mencopot %(num)d paket" diff --git a/lang/python/is/LC_MESSAGES/python.mo b/lang/python/is/LC_MESSAGES/python.mo index 76412409d..ae0776f94 100644 Binary files a/lang/python/is/LC_MESSAGES/python.mo and b/lang/python/is/LC_MESSAGES/python.mo differ diff --git a/lang/python/is/LC_MESSAGES/python.po b/lang/python/is/LC_MESSAGES/python.po index 91e8eb121..bf607b024 100644 --- a/lang/python/is/LC_MESSAGES/python.po +++ b/lang/python/is/LC_MESSAGES/python.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Krissi, 2017\n" +"Last-Translator: Kristján Magnússon, 2017\n" "Language-Team: Icelandic (https://www.transifex.com/calamares/teams/20061/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,35 +18,39 @@ msgstr "" "Language: is\n" "Plural-Forms: nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Aftengja skráarkerfi." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "Dummy python job." +msgstr "" #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" -msgstr "Dummy python step {}" +msgstr "" #: src/modules/machineid/main.py:35 msgid "Generate machine-id." -msgstr "Generate machine-id." +msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Vinnslupakkar (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Setja upp pakka." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Setja upp einn pakka." msgstr[1] "Setur upp %(num)d pakka." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/it_IT/LC_MESSAGES/python.mo b/lang/python/it_IT/LC_MESSAGES/python.mo index 631d1b587..8e875d10f 100644 Binary files a/lang/python/it_IT/LC_MESSAGES/python.mo and b/lang/python/it_IT/LC_MESSAGES/python.mo differ diff --git a/lang/python/it_IT/LC_MESSAGES/python.po b/lang/python/it_IT/LC_MESSAGES/python.po index 73f6505a9..341c6d83c 100644 --- a/lang/python/it_IT/LC_MESSAGES/python.po +++ b/lang/python/it_IT/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Pietro Francesco Fontana, 2017\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" @@ -18,37 +18,41 @@ msgstr "" "Language: it_IT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +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." msgstr "Genera machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, 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:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Installa pacchetti." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format 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:68 +#: src/modules/packages/main.py:70 #, 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." diff --git a/lang/python/ja/LC_MESSAGES/python.mo b/lang/python/ja/LC_MESSAGES/python.mo index 6a0d11cf7..3b1cf033b 100644 Binary files a/lang/python/ja/LC_MESSAGES/python.mo and b/lang/python/ja/LC_MESSAGES/python.mo differ diff --git a/lang/python/ja/LC_MESSAGES/python.po b/lang/python/ja/LC_MESSAGES/python.po index 88130c909..c07b7d4c1 100644 --- a/lang/python/ja/LC_MESSAGES/python.po +++ b/lang/python/ja/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Takefumi Nagata, 2017\n" "Language-Team: Japanese (https://www.transifex.com/calamares/teams/20061/ja/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: ja\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 "Dummy python job." @@ -30,22 +34,22 @@ msgstr "Dummy python step {}" msgid "Generate machine-id." msgstr "machine-id の生成" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "パッケージの処理中 (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "パッケージのインストール" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] " %(num)d パッケージのインストール中。" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/kk/LC_MESSAGES/python.mo b/lang/python/kk/LC_MESSAGES/python.mo index e5901da95..a78e7b3f4 100644 Binary files a/lang/python/kk/LC_MESSAGES/python.mo and b/lang/python/kk/LC_MESSAGES/python.mo differ diff --git a/lang/python/kk/LC_MESSAGES/python.po b/lang/python/kk/LC_MESSAGES/python.po index d9f56e34b..bdd4564d5 100644 --- a/lang/python/kk/LC_MESSAGES/python.po +++ b/lang/python/kk/LC_MESSAGES/python.po @@ -8,14 +8,18 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Kazakh (https://www.transifex.com/calamares/teams/20061/kk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kk\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -29,23 +33,25 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" +msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "" +msgstr[1] "" diff --git a/lang/python/kn/LC_MESSAGES/python.mo b/lang/python/kn/LC_MESSAGES/python.mo index a2a97dbc4..bd59ecf40 100644 Binary files a/lang/python/kn/LC_MESSAGES/python.mo and b/lang/python/kn/LC_MESSAGES/python.mo differ diff --git a/lang/python/kn/LC_MESSAGES/python.po b/lang/python/kn/LC_MESSAGES/python.po index 35c7863dd..d8ac2ee03 100644 --- a/lang/python/kn/LC_MESSAGES/python.po +++ b/lang/python/kn/LC_MESSAGES/python.po @@ -8,14 +8,18 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Kannada (https://www.transifex.com/calamares/teams/20061/kn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kn\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -29,23 +33,25 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" +msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "" +msgstr[1] "" diff --git a/lang/python/ko/LC_MESSAGES/python.mo b/lang/python/ko/LC_MESSAGES/python.mo new file mode 100644 index 000000000..0d9ac2ec2 Binary files /dev/null and b/lang/python/ko/LC_MESSAGES/python.mo differ diff --git a/lang/python/ko/LC_MESSAGES/python.po b/lang/python/ko/LC_MESSAGES/python.po new file mode 100644 index 000000000..2a3870f43 --- /dev/null +++ b/lang/python/ko/LC_MESSAGES/python.po @@ -0,0 +1,56 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Ji-Hyeon Gim , 2018\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:62 +#, python-format +msgid "Processing packages (%(count)d / %(total)d)" +msgstr "패키지들을 처리하는 중입니다 (%(count)d / %(total)d)" + +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 +msgid "Install packages." +msgstr "패키지들을 설치합니다." + +#: src/modules/packages/main.py:67 +#, python-format +msgid "Installing one package." +msgid_plural "Installing %(num)d packages." +msgstr[0] "%(num)d개의 패키지들을 설치하는 중입니다." + +#: src/modules/packages/main.py:70 +#, python-format +msgid "Removing one package." +msgid_plural "Removing %(num)d packages." +msgstr[0] "%(num)d개의 패키지들을 제거하는 중입니다." diff --git a/lang/python/lo/LC_MESSAGES/python.mo b/lang/python/lo/LC_MESSAGES/python.mo index 5d51dd1ac..e75506de4 100644 Binary files a/lang/python/lo/LC_MESSAGES/python.mo and b/lang/python/lo/LC_MESSAGES/python.mo differ diff --git a/lang/python/lo/LC_MESSAGES/python.po b/lang/python/lo/LC_MESSAGES/python.po index 4255d1c8e..776a0ff5a 100644 --- a/lang/python/lo/LC_MESSAGES/python.po +++ b/lang/python/lo/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Lao (https://www.transifex.com/calamares/teams/20061/lo/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: lo\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 "" @@ -29,22 +33,22 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/lt/LC_MESSAGES/python.mo b/lang/python/lt/LC_MESSAGES/python.mo index 83bf0a0fa..b7bbd92af 100644 Binary files a/lang/python/lt/LC_MESSAGES/python.mo and b/lang/python/lt/LC_MESSAGES/python.mo differ diff --git a/lang/python/lt/LC_MESSAGES/python.po b/lang/python/lt/LC_MESSAGES/python.po index 8434a8164..d96c5cd1d 100644 --- a/lang/python/lt/LC_MESSAGES/python.po +++ b/lang/python/lt/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Moo, 2017\n" "Language-Team: Lithuanian (https://www.transifex.com/calamares/teams/20061/lt/)\n" @@ -16,7 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lt\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Atjungti failų sistemas." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -30,27 +34,29 @@ msgstr "Fiktyvus python žingsnis {}" msgid "Generate machine-id." msgstr "Generuoti machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Apdorojami paketai (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Įdiegti paketus." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Įdiegiamas %(num)d paketas." msgstr[1] "Įdiegiami %(num)d paketai." msgstr[2] "Įdiegiama %(num)d paketų." +msgstr[3] "Įdiegiama %(num)d paketų." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "Šalinamas %(num)d paketas." msgstr[1] "Šalinami %(num)d paketai." msgstr[2] "Šalinama %(num)d paketų." +msgstr[3] "Šalinama %(num)d paketų." diff --git a/lang/python/mr/LC_MESSAGES/python.mo b/lang/python/mr/LC_MESSAGES/python.mo index bfbcd4413..5bd87d4b5 100644 Binary files a/lang/python/mr/LC_MESSAGES/python.mo and b/lang/python/mr/LC_MESSAGES/python.mo differ diff --git a/lang/python/mr/LC_MESSAGES/python.po b/lang/python/mr/LC_MESSAGES/python.po index c83e0f98d..f40b36060 100644 --- a/lang/python/mr/LC_MESSAGES/python.po +++ b/lang/python/mr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Marathi (https://www.transifex.com/calamares/teams/20061/mr/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: mr\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/nb/LC_MESSAGES/python.mo b/lang/python/nb/LC_MESSAGES/python.mo index 5a896436b..2fbbd931a 100644 Binary files a/lang/python/nb/LC_MESSAGES/python.mo and b/lang/python/nb/LC_MESSAGES/python.mo differ diff --git a/lang/python/nb/LC_MESSAGES/python.po b/lang/python/nb/LC_MESSAGES/python.po index 9588617c6..16ab104dd 100644 --- a/lang/python/nb/LC_MESSAGES/python.po +++ b/lang/python/nb/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Tyler Moss , 2017\n" "Language-Team: Norwegian Bokmål (https://www.transifex.com/calamares/teams/20061/nb/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: nb\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -30,23 +34,23 @@ msgstr "" msgid "Generate machine-id." msgstr "Generer maskin-ID." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Installer pakker." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/nl/LC_MESSAGES/python.mo b/lang/python/nl/LC_MESSAGES/python.mo index 0477a658c..29b290dcb 100644 Binary files a/lang/python/nl/LC_MESSAGES/python.mo and b/lang/python/nl/LC_MESSAGES/python.mo differ diff --git a/lang/python/nl/LC_MESSAGES/python.po b/lang/python/nl/LC_MESSAGES/python.po index e253266e7..e06a0c8b2 100644 --- a/lang/python/nl/LC_MESSAGES/python.po +++ b/lang/python/nl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Adriaan de Groot , 2017\n" "Language-Team: Dutch (https://www.transifex.com/calamares/teams/20061/nl/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: nl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Voorbeeld Python-taak" @@ -30,23 +34,23 @@ msgstr "Voorbeeld Python-stap {}" msgid "Generate machine-id." msgstr "Genereer machine-id" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/pl/LC_MESSAGES/python.mo b/lang/python/pl/LC_MESSAGES/python.mo index d8a064d35..2c68e6ff9 100644 Binary files a/lang/python/pl/LC_MESSAGES/python.mo and b/lang/python/pl/LC_MESSAGES/python.mo differ diff --git a/lang/python/pl/LC_MESSAGES/python.po b/lang/python/pl/LC_MESSAGES/python.po index b7a5fadc3..be0346a43 100644 --- a/lang/python/pl/LC_MESSAGES/python.po +++ b/lang/python/pl/LC_MESSAGES/python.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Marcin Mikołajczak , 2017\n" +"Last-Translator: Marcin Mikołajczak , 2017\n" "Language-Team: Polish (https://www.transifex.com/calamares/teams/20061/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: pl\n" "Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odmontuj systemy plików." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Zadanie fikcyjne Python." @@ -30,16 +34,16 @@ msgstr "Krok fikcyjny Python {}" msgid "Generate machine-id." msgstr "Generuj machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Przetwarzanie pakietów (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Zainstaluj pakiety." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -48,7 +52,7 @@ msgstr[1] "Instalowanie %(num)d pakietów." msgstr[2] "Instalowanie %(num)d pakietów." msgstr[3] "Instalowanie%(num)d pakietów." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/pl_PL/LC_MESSAGES/python.mo b/lang/python/pl_PL/LC_MESSAGES/python.mo deleted file mode 100644 index 7a9c33e45..000000000 Binary files a/lang/python/pl_PL/LC_MESSAGES/python.mo and /dev/null differ diff --git a/lang/python/pt_BR/LC_MESSAGES/python.mo b/lang/python/pt_BR/LC_MESSAGES/python.mo index 7f9008a5b..d21cae28f 100644 Binary files a/lang/python/pt_BR/LC_MESSAGES/python.mo and b/lang/python/pt_BR/LC_MESSAGES/python.mo differ diff --git a/lang/python/pt_BR/LC_MESSAGES/python.po b/lang/python/pt_BR/LC_MESSAGES/python.po index e07379ce0..eeae54320 100644 --- a/lang/python/pt_BR/LC_MESSAGES/python.po +++ b/lang/python/pt_BR/LC_MESSAGES/python.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: André Marcelo Alvarenga , 2017\n" +"Last-Translator: Caio Jordão Carvalho , 2018\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/calamares/teams/20061/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontar os sistemas de arquivo." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Tarefa modelo python." @@ -30,23 +34,23 @@ msgstr "Etapa modelo python {}" msgid "Generate machine-id." msgstr "Gerar machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Processando pacotes (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instalar pacotes." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Instalando um pacote." msgstr[1] "Instalando %(num)d pacotes." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/pt_PT/LC_MESSAGES/python.mo b/lang/python/pt_PT/LC_MESSAGES/python.mo index 1e1afdf34..f4b0545d9 100644 Binary files a/lang/python/pt_PT/LC_MESSAGES/python.mo and b/lang/python/pt_PT/LC_MESSAGES/python.mo differ diff --git a/lang/python/pt_PT/LC_MESSAGES/python.po b/lang/python/pt_PT/LC_MESSAGES/python.po index 6c1d73ae0..4cdbe52c0 100644 --- a/lang/python/pt_PT/LC_MESSAGES/python.po +++ b/lang/python/pt_PT/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Ricardo Simões , 2017\n" "Language-Team: Portuguese (Portugal) (https://www.transifex.com/calamares/teams/20061/pt_PT/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Desmontar sistemas de ficheiro." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Tarefa Dummy python." @@ -30,23 +34,23 @@ msgstr "Passo Dummy python {}" msgid "Generate machine-id." msgstr "Gerar id-máquina" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "A processar pacotes (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instalar pacotes." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "A instalar um pacote." msgstr[1] "A instalar %(num)d pacotes." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/ro/LC_MESSAGES/python.mo b/lang/python/ro/LC_MESSAGES/python.mo index a72b5ca6f..8e906b6d0 100644 Binary files a/lang/python/ro/LC_MESSAGES/python.mo and b/lang/python/ro/LC_MESSAGES/python.mo differ diff --git a/lang/python/ro/LC_MESSAGES/python.po b/lang/python/ro/LC_MESSAGES/python.po index a3bd6bae2..e7ac9b50f 100644 --- a/lang/python/ro/LC_MESSAGES/python.po +++ b/lang/python/ro/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Baadur Jobava , 2018\n" "Language-Team: Romanian (https://www.transifex.com/calamares/teams/20061/ro/)\n" @@ -18,9 +18,13 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Demonteaza sistemul de fisiere" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." -msgstr "Dummy python job." +msgstr "Job python fictiv." #: src/modules/dummypython/main.py:97 msgid "Dummy python step {}" @@ -30,24 +34,24 @@ msgstr "Dummy python step {}" msgid "Generate machine-id." msgstr "Generează machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Se procesează pachetele (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instalează pachetele." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Instalează un pachet." msgstr[1] "Se instalează %(num)d pachete." -msgstr[2] "Se instalează %(num)d de pachete." +msgstr[2] "Se instalează %(num)d din pachete." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/ru/LC_MESSAGES/python.mo b/lang/python/ru/LC_MESSAGES/python.mo index ffbafcfcc..ada5179c9 100644 Binary files a/lang/python/ru/LC_MESSAGES/python.mo and b/lang/python/ru/LC_MESSAGES/python.mo differ diff --git a/lang/python/ru/LC_MESSAGES/python.po b/lang/python/ru/LC_MESSAGES/python.po index 4a0bbf4d8..27f0a7c1b 100644 --- a/lang/python/ru/LC_MESSAGES/python.po +++ b/lang/python/ru/LC_MESSAGES/python.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Aleksey Kabanov , 2018\n" "Language-Team: Russian (https://www.transifex.com/calamares/teams/20061/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,6 +18,10 @@ msgstr "" "Language: ru\n" "Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,16 +34,16 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" -msgstr "" +msgstr "Обработка пакетов (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -47,7 +52,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/sk/LC_MESSAGES/python.mo b/lang/python/sk/LC_MESSAGES/python.mo index d862931cb..364833aaf 100644 Binary files a/lang/python/sk/LC_MESSAGES/python.mo and b/lang/python/sk/LC_MESSAGES/python.mo differ diff --git a/lang/python/sk/LC_MESSAGES/python.po b/lang/python/sk/LC_MESSAGES/python.po index cad833bf4..bd347d05e 100644 --- a/lang/python/sk/LC_MESSAGES/python.po +++ b/lang/python/sk/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Dušan Kazik , 2017\n" "Language-Team: Slovak (https://www.transifex.com/calamares/teams/20061/sk/)\n" @@ -16,7 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Odpojenie súborových systémov." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -30,27 +34,29 @@ msgstr "Fiktívny krok {} jazyka python" msgid "Generate machine-id." msgstr "Generovanie identifikátora počítača." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Spracovávajú sa balíky (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Inštalácia balíkov." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Inštaluje sa jeden balík." msgstr[1] "Inštalujú sa %(num)d balíky." msgstr[2] "Inštaluje sa %(num)d balíkov." +msgstr[3] "Inštaluje sa %(num)d balíkov." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "Odstraňuje sa jeden balík." msgstr[1] "Odstraňujú sa %(num)d balíky." msgstr[2] "Odstraňuje sa %(num)d balíkov." +msgstr[3] "Odstraňuje sa %(num)d balíkov." diff --git a/lang/python/sl/LC_MESSAGES/python.mo b/lang/python/sl/LC_MESSAGES/python.mo index d1ec2dce9..40257353e 100644 Binary files a/lang/python/sl/LC_MESSAGES/python.mo and b/lang/python/sl/LC_MESSAGES/python.mo differ diff --git a/lang/python/sl/LC_MESSAGES/python.po b/lang/python/sl/LC_MESSAGES/python.po index 1bd79fdea..5cd1e4eb5 100644 --- a/lang/python/sl/LC_MESSAGES/python.po +++ b/lang/python/sl/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Slovenian (https://www.transifex.com/calamares/teams/20061/sl/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,16 +33,16 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -47,7 +51,7 @@ msgstr[1] "" msgstr[2] "" msgstr[3] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/sq/LC_MESSAGES/python.mo b/lang/python/sq/LC_MESSAGES/python.mo index 9c06dc871..67fb7b6e6 100644 Binary files a/lang/python/sq/LC_MESSAGES/python.mo and b/lang/python/sq/LC_MESSAGES/python.mo differ diff --git a/lang/python/sq/LC_MESSAGES/python.po b/lang/python/sq/LC_MESSAGES/python.po index 77381e7a6..1b9e8f573 100644 --- a/lang/python/sq/LC_MESSAGES/python.po +++ b/lang/python/sq/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Besnik , 2017\n" "Language-Team: Albanian (https://www.transifex.com/calamares/teams/20061/sq/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: sq\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Çmontoni sisteme kartelash." + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "Akt python dummy." @@ -30,23 +34,23 @@ msgstr "Hap python {} dummy" msgid "Generate machine-id." msgstr "Prodho machine-id." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Po përpunohen paketat (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Instalo paketa." -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "Po instalohet një paketë." msgstr[1] "Po instalohen %(num)d paketa." -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/sr/LC_MESSAGES/python.mo b/lang/python/sr/LC_MESSAGES/python.mo index df6bd22be..09ca36cb9 100644 Binary files a/lang/python/sr/LC_MESSAGES/python.mo and b/lang/python/sr/LC_MESSAGES/python.mo differ diff --git a/lang/python/sr/LC_MESSAGES/python.po b/lang/python/sr/LC_MESSAGES/python.po index 351810b6b..880461841 100644 --- a/lang/python/sr/LC_MESSAGES/python.po +++ b/lang/python/sr/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Serbian (https://www.transifex.com/calamares/teams/20061/sr/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sr\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,16 +33,16 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -46,7 +50,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/sr@latin/LC_MESSAGES/python.mo b/lang/python/sr@latin/LC_MESSAGES/python.mo index 18114e0c7..7ea3455ca 100644 Binary files a/lang/python/sr@latin/LC_MESSAGES/python.mo and b/lang/python/sr@latin/LC_MESSAGES/python.mo differ diff --git a/lang/python/sr@latin/LC_MESSAGES/python.po b/lang/python/sr@latin/LC_MESSAGES/python.po index 01d908093..53bc1bcef 100644 --- a/lang/python/sr@latin/LC_MESSAGES/python.po +++ b/lang/python/sr@latin/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Serbian (Latin) (https://www.transifex.com/calamares/teams/20061/sr%40latin/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sr@latin\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,16 +33,16 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." @@ -46,7 +50,7 @@ msgstr[0] "" msgstr[1] "" msgstr[2] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/sv/LC_MESSAGES/python.mo b/lang/python/sv/LC_MESSAGES/python.mo index 2e0d9f4ab..e7642b137 100644 Binary files a/lang/python/sv/LC_MESSAGES/python.mo and b/lang/python/sv/LC_MESSAGES/python.mo differ diff --git a/lang/python/sv/LC_MESSAGES/python.po b/lang/python/sv/LC_MESSAGES/python.po index 50c8b8b74..36c1603f1 100644 --- a/lang/python/sv/LC_MESSAGES/python.po +++ b/lang/python/sv/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Swedish (https://www.transifex.com/calamares/teams/20061/sv/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: sv\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/th/LC_MESSAGES/python.mo b/lang/python/th/LC_MESSAGES/python.mo index f02dc2710..16bd3788a 100644 Binary files a/lang/python/th/LC_MESSAGES/python.mo and b/lang/python/th/LC_MESSAGES/python.mo differ diff --git a/lang/python/th/LC_MESSAGES/python.po b/lang/python/th/LC_MESSAGES/python.po index fef7b0781..465581bea 100644 --- a/lang/python/th/LC_MESSAGES/python.po +++ b/lang/python/th/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Thai (https://www.transifex.com/calamares/teams/20061/th/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: th\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 "" @@ -29,22 +33,22 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/tr_TR/LC_MESSAGES/python.mo b/lang/python/tr_TR/LC_MESSAGES/python.mo index a95ca03ad..76f5d0bc7 100644 Binary files a/lang/python/tr_TR/LC_MESSAGES/python.mo and b/lang/python/tr_TR/LC_MESSAGES/python.mo differ diff --git a/lang/python/tr_TR/LC_MESSAGES/python.po b/lang/python/tr_TR/LC_MESSAGES/python.po index 9c7d98b8f..cfcb8b328 100644 --- a/lang/python/tr_TR/LC_MESSAGES/python.po +++ b/lang/python/tr_TR/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Demiray “tulliana” Muhterem , 2017\n" "Language-Team: Turkish (Turkey) (https://www.transifex.com/calamares/teams/20061/tr_TR/)\n" @@ -16,7 +16,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr_TR\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "Dosya sistemlerini ayırın." #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -30,23 +34,25 @@ msgstr "Dummy python step {}" msgid "Generate machine-id." msgstr "Makine kimliği oluştur." -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "Paketler işleniyor (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "Paketleri yükle" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "%(num)d paket yükleniyor" +msgstr[1] "%(num)d paket yükleniyor" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "%(num)d paket kaldırılıyor." +msgstr[1] "%(num)d paket kaldırılıyor." diff --git a/lang/python/uk/LC_MESSAGES/python.mo b/lang/python/uk/LC_MESSAGES/python.mo index d1d7a9747..46f027dac 100644 Binary files a/lang/python/uk/LC_MESSAGES/python.mo and b/lang/python/uk/LC_MESSAGES/python.mo differ diff --git a/lang/python/uk/LC_MESSAGES/python.po b/lang/python/uk/LC_MESSAGES/python.po index 01c2c7498..9de9a1166 100644 --- a/lang/python/uk/LC_MESSAGES/python.po +++ b/lang/python/uk/LC_MESSAGES/python.po @@ -8,14 +8,18 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Ukrainian (https://www.transifex.com/calamares/teams/20061/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uk\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" + +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" #: src/modules/dummypython/main.py:44 msgid "Dummy python job." @@ -29,27 +33,29 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." msgstr[0] "" msgstr[1] "" msgstr[2] "" +msgstr[3] "" diff --git a/lang/python/ur/LC_MESSAGES/python.mo b/lang/python/ur/LC_MESSAGES/python.mo index 032bf7e6b..aa49d1dbc 100644 Binary files a/lang/python/ur/LC_MESSAGES/python.mo and b/lang/python/ur/LC_MESSAGES/python.mo differ diff --git a/lang/python/ur/LC_MESSAGES/python.po b/lang/python/ur/LC_MESSAGES/python.po index 0a049b35a..995b75a78 100644 --- a/lang/python/ur/LC_MESSAGES/python.po +++ b/lang/python/ur/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Urdu (https://www.transifex.com/calamares/teams/20061/ur/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: ur\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: src/modules/umount/main.py:40 +msgid "Unmount file systems." +msgstr "" + #: src/modules/dummypython/main.py:44 msgid "Dummy python job." msgstr "" @@ -29,23 +33,23 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" msgstr[1] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/uz/LC_MESSAGES/python.mo b/lang/python/uz/LC_MESSAGES/python.mo index d25e583b9..ed271c471 100644 Binary files a/lang/python/uz/LC_MESSAGES/python.mo and b/lang/python/uz/LC_MESSAGES/python.mo differ diff --git a/lang/python/uz/LC_MESSAGES/python.po b/lang/python/uz/LC_MESSAGES/python.po index 870996ea2..df3a0dd75 100644 --- a/lang/python/uz/LC_MESSAGES/python.po +++ b/lang/python/uz/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Uzbek (https://www.transifex.com/calamares/teams/20061/uz/)\n" "MIME-Version: 1.0\n" @@ -17,6 +17,10 @@ msgstr "" "Language: uz\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 "" @@ -29,22 +33,22 @@ msgstr "" msgid "Generate machine-id." msgstr "" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/zh_CN/LC_MESSAGES/python.mo b/lang/python/zh_CN/LC_MESSAGES/python.mo index 21c7cb97d..f5d6781a0 100644 Binary files a/lang/python/zh_CN/LC_MESSAGES/python.mo and b/lang/python/zh_CN/LC_MESSAGES/python.mo differ diff --git a/lang/python/zh_CN/LC_MESSAGES/python.po b/lang/python/zh_CN/LC_MESSAGES/python.po index 9e0c3f217..80d0e4dd9 100644 --- a/lang/python/zh_CN/LC_MESSAGES/python.po +++ b/lang/python/zh_CN/LC_MESSAGES/python.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: plantman , 2017\n" +"Last-Translator: leonfeng , 2018\n" "Language-Team: Chinese (China) (https://www.transifex.com/calamares/teams/20061/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,10 @@ msgstr "" "Language: zh_CN\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 "占位 Python 任务。" @@ -30,22 +34,22 @@ msgstr "占位 Python 步骤 {}" msgid "Generate machine-id." msgstr "生成 machine-id。" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "软件包处理中(%(count)d/%(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "安装软件包。" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "安装%(num)d软件包。" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/python/zh_TW/LC_MESSAGES/python.mo b/lang/python/zh_TW/LC_MESSAGES/python.mo index 327aed015..668463d88 100644 Binary files a/lang/python/zh_TW/LC_MESSAGES/python.mo and b/lang/python/zh_TW/LC_MESSAGES/python.mo differ diff --git a/lang/python/zh_TW/LC_MESSAGES/python.po b/lang/python/zh_TW/LC_MESSAGES/python.po index c8a9fe4a7..457ea5dfe 100644 --- a/lang/python/zh_TW/LC_MESSAGES/python.po +++ b/lang/python/zh_TW/LC_MESSAGES/python.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Jeff Huang , 2017\n" "Language-Team: Chinese (Taiwan) (https://www.transifex.com/calamares/teams/20061/zh_TW/)\n" @@ -18,6 +18,10 @@ msgstr "" "Language: zh_TW\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 "假的 python 工作。" @@ -30,22 +34,22 @@ msgstr "假的 python step {}" msgid "Generate machine-id." msgstr "生成 machine-id。" -#: src/modules/packages/main.py:60 +#: src/modules/packages/main.py:62 #, python-format msgid "Processing packages (%(count)d / %(total)d)" msgstr "正在處理軟體包 (%(count)d / %(total)d)" -#: src/modules/packages/main.py:62 src/modules/packages/main.py:72 +#: src/modules/packages/main.py:64 src/modules/packages/main.py:74 msgid "Install packages." msgstr "安裝軟體包。" -#: src/modules/packages/main.py:65 +#: src/modules/packages/main.py:67 #, python-format msgid "Installing one package." msgid_plural "Installing %(num)d packages." msgstr[0] "正在安裝 %(num)d 軟體包。" -#: src/modules/packages/main.py:68 +#: src/modules/packages/main.py:70 #, python-format msgid "Removing one package." msgid_plural "Removing %(num)d packages." diff --git a/lang/txload.cpp b/lang/txload.cpp new file mode 100644 index 000000000..51b9dacb1 --- /dev/null +++ b/lang/txload.cpp @@ -0,0 +1,189 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include +#include +#include +#include + +#include + +bool load_file(const char* filename, QDomDocument& doc) +{ + QFile file(filename); + QString err; + int err_line, err_column; + if (!file.open(QIODevice::ReadOnly)) + { + qDebug() << "Could not open" << filename; + return false; + } + QByteArray ba( file.read(1024 * 1024) ); + qDebug() << "Read" << ba.length() << "bytes from" << filename; + + if (!doc.setContent(ba, &err, &err_line, &err_column)) { + qDebug() << "Could not read" << filename << ':' << err_line << ':' << err_column << ' ' << err; + file.close(); + return false; + } + file.close(); + + return true; +} + +QDomElement find_context(QDomDocument& doc, const QString& name) +{ + QDomElement top = doc.documentElement(); + QDomNode n = top.firstChild(); + while (!n.isNull()) { + if (n.isElement()) { + QDomElement e = n.toElement(); + if ( ( e.tagName() == "context" ) && ( e.firstChildElement( "name" ).text() == name ) ) + return e; + } + n = n.nextSibling(); + } + + return QDomElement(); +} + +QDomElement find_message(QDomElement& context, const QString& source) +{ + QDomNode n = context.firstChild(); + while (!n.isNull()) { + if (n.isElement()) { + QDomElement e = n.toElement(); + if ( e.tagName() == "message" ) + { + QString msource = e.firstChildElement( "source" ).text(); + if ( msource == source ) + return e; + } + } + n = n.nextSibling(); + } + return QDomElement(); +} + +bool merge_into(QDomElement& master, QDomElement& sub) +{ + QDomNode n = sub.firstChild(); + while (!n.isNull()) { + if (n.isElement()) { + QDomElement e = n.toElement(); + if ( e.tagName() == "message" ) + { + QString source = e.firstChildElement( "source" ).text(); + QString translation = e.firstChildElement( "translation" ).text(); + QDomElement masterTranslation = find_message( master, source ); + if ( masterTranslation.isNull() ) + { + qDebug() << "No master translation for" << source; + return false; + } + + QString msource = masterTranslation.firstChildElement( "source" ).text(); + QString mtranslation = masterTranslation.firstChildElement( "translation" ).text(); + + if ( source != msource ) + { + qDebug() << "Mismatch for messages\n" << source << '\n' << msource; + return false; + } + if ( !translation.isEmpty() && ( translation != mtranslation ) ) + { + qDebug() << "\n\n\nSource:" << source << "\nTL1:" << mtranslation << "\nTL2:" << translation; + } + } + } + n = n.nextSibling(); + } + + return true; +} + + + +bool merge_into(QDomDocument& master, QDomElement& context) +{ + QDomElement name = context.firstChildElement( "name" ); + if ( name.isNull() ) + return false; + + QString contextname = name.text(); + QDomElement masterContext = find_context( master, contextname ); + if ( masterContext.isNull() ) + { + qDebug() << "Master document has no context" << contextname; + return false; + } + + return merge_into( masterContext, context ); +} + +bool merge_into(QDomDocument& master, QDomDocument& sub) +{ + QDomElement top = sub.documentElement(); + QDomNode n = top.firstChild(); + while (!n.isNull()) { + if (n.isElement()) { + QDomElement e = n.toElement(); + if ( e.tagName() == "context" ) + if ( !merge_into( master, e ) ) + return false; + } + n = n.nextSibling(); + } + + return true; +} + +int main(int argc, char** argv) +{ + QCoreApplication a(argc, argv); + + if (argc < 2) + return 1; + + QDomDocument doc("master"); + if ( !load_file(argv[1], doc) ) + return 1; + + for (int i = 2; i < argc; ++i) + { + QDomDocument subdoc("sub"); + if ( !load_file(argv[i], subdoc) ) + return 1; + if ( !merge_into( doc, subdoc ) ) + return 1; + } + + QString outfilename( argv[1] ); + outfilename.append( ".new" ); + QFile outfile(outfilename); + if (!outfile.open(QIODevice::WriteOnly)) + { + qDebug() << "Could not open" << outfilename; + return 1; + } + + outfile.write( doc.toString(4).toUtf8() ); + outfile.close(); + + return 0; +} diff --git a/settings.conf b/settings.conf index 546b08d39..1c95721b7 100644 --- a/settings.conf +++ b/settings.conf @@ -102,7 +102,7 @@ sequence: - displaymanager - networkcfg - hwclock - - services + - services-systemd # - dracut - initramfs # - grubcfg diff --git a/src/branding/README.md b/src/branding/README.md index bfdcdebba..1d816911e 100644 --- a/src/branding/README.md +++ b/src/branding/README.md @@ -7,11 +7,35 @@ file, containing brand-specific strings in a key-value structure, plus brand-specific images or QML. Such a subdirectory, when placed here, is automatically picked up by CMake and made available to Calamares. +It is recommended to package branding separately, so as to avoid +forking Calamares just for adding some files. Calamares installs +CMake support macros to help create branding packages. See the +calamares-branding repository for examples of stand-alone branding. + +## Examples + +There is one example of a branding component included with Calamares, +so that it can be run directly from the build directory for testing purposes: + + - `default/` is a sample brand for the Generic Linux distribution. It uses + the default Calamares icons and a as start-page splash it provides a + tag-cloud view of languages. The slideshow is a basic one with a few + slides of text and a single image. No translations are provided. + +Since the slideshow can be **any** QML, it is limited only by your designers +imagination and your QML experience. For straightforward presentations, +see the documentation below. There are more examples in the [calamares-branding][1] +repository. + +[1] https://github.com/calamares/calamares-branding + +## Translations + QML files in a branding component can be translated. Translations should be placed in a subdirectory `lang/` of the branding component directory. Qt translation files are supported (`.ts` sources which get compiled into `.qm`). Inside the `lang` subdirectory all translation files must be named -according to the scheme `calamares-_.qm`. +according to the scheme `calamares-_.ts`. Text in your `show.qml` (or whatever *slideshow* is set to in the descriptor file) should be enclosed in this form for translations @@ -20,15 +44,104 @@ file) should be enclosed in this form for translations text: qsTr("This is an example text.") ``` -## Examples +If you use CMake for preparing branding for packaging, the macro +`calamares_add_branding_subdirectory()`` (see also *Project Layout*, +below) will convert the source `.ts` files to their compiled form). +If you are packaging the branding by hand, use +``` + lrelease file_en.ts [file_en_GB.ts ..] +``` +with all the language suffixes to *file*. -There are two examples of branding content: +## Presentation - - `default/` is a sample brand for the Generic Linux distribution. It uses - the default Calamares icons and a as start-page splash it provides a - tag-cloud view of languages. The slideshow is a basic one with a few - slides of text and a single image. No translations are provided. - - `samegame/` is a similarly simple branding setup for Generic Linux, - but instead of a slideshow, it lets the user play Same Game (clicking - colored balls) during the installation. The game is taken from the - QML examples provided by the Qt Company. +The default QML classes provided by Calamares can be used for a simple +and straightforward "slideshow" presentation with static text and +pictures. To use the default slideshow classes, start with a `show.qml` +file with the following content: + +``` +import QtQuick 2.5; +import calamares.slideshow 1.0; + +Presentation +{ + id: presentation +} +``` + +After the *id*, set properties of the presentation as a whole. These include: + - *loopSlides* (default true) When set, clicking past the last slide + returns to the very first slide. + - *mouseNavigation*, *arrowNavigation*, *keyShortcutsEnabled* (all default + true) enable different ways to navigate the slideshow. + - *titleColor*, *textColor* change the look of the presentation. + - *fontFamily*, *codeFontFamily* change the look of text in the presentation. + +After setting properties, you can add elements to the presentation. +Generally, you will add a few presentation-level elements first, +then slides. + - For visible navigation arrows, add elements of class *ForwardButton* and + *BackwardButton*. Set the *source* property of each to a suitable + image. See the `fancy/` example. It is recommended to turn off other + kinds of navigation when visible navigation is used. + - To indicate where the user is, add an element of class *SlideCounter*. + This indicates in "n / total" form where the user is in the slideshow. + - To automatically advance the presentation (for a fully passive slideshow), + add a timer that calls the `goToNextSlide()` function of the presentation. + See the `default/` example -- remember to start the timer when the + presentation is completely loaded. + +After setting the presentation elements, add one or more Slide elements. +The presentation framework will make a slideshow out of the Slide +elements, displaying only one at a time. Each slide is an element in itself, +so you can put whatever visual elements you like in the slide. They have +standard properties for a boring "static text" slideshow, though: + - *title* is text to show as slide title + - *centeredText* is displayed in a large-ish font + - *writeInText* is displayed by "writing it in" to the slide, + one letter at a time. + - *content* is a list of things which are displayed as a bulleted list. + +The presentation classes can be used to produce a fairly dry slideshow +for the installation process; it is recommended to experiment with the +visual effects and classes available in QtQuick. + +## Project Layout + +A branding component that is created and installed outside of Calamares +will have a top-level `CMakeLists.txt` that includes some boilerplate +to find Calamares, and then adds a subdirectory which contains the +actual branding component. + +The file layout in a typical branding component repository is: + +``` + / + - CMakeLists.txt + - componentname/ + - show.qml + - image1.png + ... + - lang/ + - calamares-componentname_en.ts + - calamares-componentname_de.ts + ... +``` + +Adding the subdirectory can be done as follows: + + - If the directory contains files only, and optionally has a single + subdirectory lang/ which contains the translation files for the + component, then `calamares_add_branding_subdirectory()` can be + used, which takes only the name of the subdirectory. + - If the branding component has many files which are organized into + subdirectories, use the SUBDIRECTORIES argument to the CMake function + to additionally install files from those subdirectories. For example, + if the component places all of its images in an `img/` subdirectory, + then call `calamares_add_branding_subdirectory( ... SUBDIRECTORIES img)`. + It is a bad idea to include `lang/` in the SUBDIRECTORIES list. + - The `.ts` files from the `lang/` subdirectory need be be compiled + to `.qm` files before being installed. The CMake macro's do this + automatically. For manual packaging, use `lrelease` to compile + the files. diff --git a/src/branding/default/show.qml b/src/branding/default/show.qml index 84f252d54..b724a4832 100644 --- a/src/branding/default/show.qml +++ b/src/branding/default/show.qml @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,12 +25,13 @@ Presentation id: presentation Timer { + id: advanceTimer interval: 5000 running: false repeat: true onTriggered: presentation.goToNextSlide() } - + Slide { Image { @@ -48,7 +50,7 @@ Presentation "To create a Calamares presentation in QML, import calamares.slideshow,
"+ "define a Presentation element with as many Slide elements as needed." wrapMode: Text.WordWrap - width: root.width + width: presentation.width horizontalAlignment: Text.Center } } @@ -60,4 +62,6 @@ Presentation Slide { centeredText: "This is a third Slide element." } + + Component.onCompleted: advanceTimer.running = true } diff --git a/src/branding/samegame/Block.qml b/src/branding/samegame/Block.qml deleted file mode 100644 index 81bdd67ea..000000000 --- a/src/branding/samegame/Block.qml +++ /dev/null @@ -1,73 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 - -Item { - id: block - - property int type: 0 - - Image { - id: img - - anchors.fill: parent - source: { - if (type == 0) - return "redStone.png"; - else if (type == 1) - return "blueStone.png"; - else - return "greenStone.png"; - } - } -} -//![0] diff --git a/src/branding/samegame/Button.qml b/src/branding/samegame/Button.qml deleted file mode 100644 index 77921772d..000000000 --- a/src/branding/samegame/Button.qml +++ /dev/null @@ -1,91 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 - -Rectangle { - id: container - - property string text: "Button" - - signal clicked - - width: buttonLabel.width + 20; height: buttonLabel.height + 5 - border { width: 1; color: Qt.darker(activePalette.button) } - antialiasing: true - radius: 8 - - // color the button with a gradient - gradient: Gradient { - GradientStop { - position: 0.0 - color: { - if (mouseArea.pressed) - return activePalette.dark - else - return activePalette.light - } - } - GradientStop { position: 1.0; color: activePalette.button } - } - - MouseArea { - id: mouseArea - anchors.fill: parent - onClicked: container.clicked(); - } - - Text { - id: buttonLabel - anchors.centerIn: container - color: activePalette.buttonText - text: container.text - } -} diff --git a/src/branding/samegame/Dialog.qml b/src/branding/samegame/Dialog.qml deleted file mode 100644 index 94e708f9c..000000000 --- a/src/branding/samegame/Dialog.qml +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 - -Rectangle { - id: container - - function show(text) { - dialogText.text = text; - container.opacity = 1; - } - - function hide() { - container.opacity = 0; - } - - width: dialogText.width + 20 - height: dialogText.height + 20 - opacity: 0 - - Text { - id: dialogText - anchors.centerIn: parent - text: "" - } - - MouseArea { - anchors.fill: parent - onClicked: hide(); - } -} -//![0] diff --git a/src/branding/samegame/background.jpg b/src/branding/samegame/background.jpg deleted file mode 100644 index 903d395c8..000000000 Binary files a/src/branding/samegame/background.jpg and /dev/null differ diff --git a/src/branding/samegame/blueStar.png b/src/branding/samegame/blueStar.png deleted file mode 100644 index 213bb4bf6..000000000 Binary files a/src/branding/samegame/blueStar.png and /dev/null differ diff --git a/src/branding/samegame/blueStone.png b/src/branding/samegame/blueStone.png deleted file mode 100644 index 20e43c75b..000000000 Binary files a/src/branding/samegame/blueStone.png and /dev/null differ diff --git a/src/branding/samegame/branding.desc b/src/branding/samegame/branding.desc deleted file mode 100644 index b280e3df3..000000000 --- a/src/branding/samegame/branding.desc +++ /dev/null @@ -1,76 +0,0 @@ ---- -componentName: samegame - -# This selects between different welcome texts. When false, uses -# the traditional "Welcome to the %1 installer.", and when true, -# uses "Welcome to the Calamares installer for %1." This allows -# to distinguish this installer from other installers for the -# same distribution. -welcomeStyleCalamares: false - -# These are strings shown to the user in the user interface. -# There is no provision for translating them -- since they -# are names, the string is included as-is. -# -# The four Url strings are the Urls used by the buttons in -# the welcome screen, and are not shown to the user. Clicking -# on the "Support" button, for instance, opens the link supportUrl. -# If a Url is empty, the corresponding button is not shown. -# -# bootloaderEntryName is how this installation / distro is named -# in the boot loader (e.g. in the GRUB menu). -strings: - productName: Generic GNU/Linux - shortProductName: Generic - version: 2018.1 LTS - shortVersion: 2018.1 - versionedName: Generic GNU/Linux 2018.1 LTS "Tasseled Tambourine" - shortVersionedName: Generic 2018.1 - bootloaderEntryName: Generic - productUrl: https://calamares.io/ - supportUrl: https://github.com/calamares/calamares/issues - knownIssuesUrl: https://calamares.io/about/ - releaseNotesUrl: https://calamares.io/about/ - -# Should the welcome image (productWelcome, below) be scaled -# up beyond its natural size? If false, the image does not grow -# with the window but remains the same size throughout (this -# may have surprising effects on HiDPI monitors). -welcomeExpandingLogo: true - -# These images are loaded from the branding module directory. -# -# productIcon is used as the window icon, and will (usually) be used -# by the window manager to represent the application. This image -# should be square, and may be displayed by the window manager -# as small as 16x16 (but possibly larger). -# productLogo is used as the logo at the top of the left-hand column -# which shows the steps to be taken. The image should be square, -# and is displayed at 80x80 pixels (also on HiDPI). -# productWelcome is shown on the welcome page of the application in -# the middle of the window, below the welcome text. It can be -# any size and proportion, and will be scaled to fit inside -# the window. Use `welcomeExpandingLogo` to make it non-scaled. -# Recommended size is 320x150. -images: - productLogo: "squidball.png" - productIcon: "squidball.png" - productWelcome: "languages.png" - -# The slideshow is displayed during execution steps (e.g. when the -# installer is actually writing to disk and doing other slow things). -slideshow: "samegame.qml" - -# Colors for text and background components. -# -# - sidebarBackground is the background of the sidebar -# - sidebarText is the (foreground) text color -# - sidebarTextHighlight sets the background of the selected (current) step. -# Optional, and defaults to the application palette. -# - sidebarSelect is the text color of the selected step. -# -style: - sidebarBackground: "#292F34" - sidebarText: "#FFFFFF" - sidebarTextSelect: "#292F34" - sidebarTextHighlight: "#D35400" diff --git a/src/branding/samegame/greenStar.png b/src/branding/samegame/greenStar.png deleted file mode 100644 index 38429749b..000000000 Binary files a/src/branding/samegame/greenStar.png and /dev/null differ diff --git a/src/branding/samegame/greenStone.png b/src/branding/samegame/greenStone.png deleted file mode 100644 index b568a1900..000000000 Binary files a/src/branding/samegame/greenStone.png and /dev/null differ diff --git a/src/branding/samegame/languages.png b/src/branding/samegame/languages.png deleted file mode 100644 index 53316526b..000000000 Binary files a/src/branding/samegame/languages.png and /dev/null differ diff --git a/src/branding/samegame/redStar.png b/src/branding/samegame/redStar.png deleted file mode 100644 index 5cdf45c4c..000000000 Binary files a/src/branding/samegame/redStar.png and /dev/null differ diff --git a/src/branding/samegame/redStone.png b/src/branding/samegame/redStone.png deleted file mode 100644 index 36b09a268..000000000 Binary files a/src/branding/samegame/redStone.png and /dev/null differ diff --git a/src/branding/samegame/samegame.js b/src/branding/samegame/samegame.js deleted file mode 100644 index 01edc5bd4..000000000 --- a/src/branding/samegame/samegame.js +++ /dev/null @@ -1,174 +0,0 @@ -/* This script file handles the game logic */ -var maxColumn = 10; -var maxRow = 15; -var maxIndex = maxColumn * maxRow; -var board = new Array(maxIndex); -var component; - -//Index function used instead of a 2D array -function index(column, row) { - return column + (row * maxColumn); -} - -function startNewGame() { - //Calculate board size - maxColumn = Math.floor(gameCanvas.width / gameCanvas.blockSize); - maxRow = Math.floor(gameCanvas.height / gameCanvas.blockSize); - maxIndex = maxRow * maxColumn; - - //Close dialogs - dialog.hide(); - - //Initialize Board - board = new Array(maxIndex); - gameCanvas.score = 0; - for (var column = 0; column < maxColumn; column++) { - for (var row = 0; row < maxRow; row++) { - board[index(column, row)] = null; - createBlock(column, row); - } - } -} - -function createBlock(column, row) { - if (component == null) - component = Qt.createComponent("Block.qml"); - - // Note that if Block.qml was not a local file, component.status would be - // Loading and we should wait for the component's statusChanged() signal to - // know when the file is downloaded and ready before calling createObject(). - if (component.status == Component.Ready) { - var dynamicObject = component.createObject(gameCanvas); - if (dynamicObject == null) { - console.log("error creating block"); - console.log(component.errorString()); - return false; - } - dynamicObject.type = Math.floor(Math.random() * 3); - dynamicObject.x = column * gameCanvas.blockSize; - dynamicObject.y = row * gameCanvas.blockSize; - dynamicObject.width = gameCanvas.blockSize; - dynamicObject.height = gameCanvas.blockSize; - board[index(column, row)] = dynamicObject; - } else { - console.log("error loading block component"); - console.log(component.errorString()); - return false; - } - return true; -} - -var fillFound; //Set after a floodFill call to the number of blocks found -var floodBoard; //Set to 1 if the floodFill reaches off that node - -//![1] -function handleClick(xPos, yPos) { - var column = Math.floor(xPos / gameCanvas.blockSize); - var row = Math.floor(yPos / gameCanvas.blockSize); - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return; - if (board[index(column, row)] == null) - return; - //If it's a valid block, remove it and all connected (does nothing if it's not connected) - floodFill(column, row, -1); - if (fillFound <= 0) - return; - gameCanvas.score += (fillFound - 1) * (fillFound - 1); - shuffleDown(); - victoryCheck(); -} -//![1] - -function floodFill(column, row, type) { - if (board[index(column, row)] == null) - return; - var first = false; - if (type == -1) { - first = true; - type = board[index(column, row)].type; - - //Flood fill initialization - fillFound = 0; - floodBoard = new Array(maxIndex); - } - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return; - if (floodBoard[index(column, row)] == 1 || (!first && type != board[index(column, row)].type)) - return; - floodBoard[index(column, row)] = 1; - floodFill(column + 1, row, type); - floodFill(column - 1, row, type); - floodFill(column, row + 1, type); - floodFill(column, row - 1, type); - if (first == true && fillFound == 0) - return; //Can't remove single blocks - board[index(column, row)].opacity = 0; - board[index(column, row)] = null; - fillFound += 1; -} - -function shuffleDown() { - //Fall down - for (var column = 0; column < maxColumn; column++) { - var fallDist = 0; - for (var row = maxRow - 1; row >= 0; row--) { - if (board[index(column, row)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - var obj = board[index(column, row)]; - obj.y += fallDist * gameCanvas.blockSize; - board[index(column, row + fallDist)] = obj; - board[index(column, row)] = null; - } - } - } - } - //Fall to the left - var fallDist = 0; - for (var column = 0; column < maxColumn; column++) { - if (board[index(column, maxRow - 1)] == null) { - fallDist += 1; - } else { - if (fallDist > 0) { - for (var row = 0; row < maxRow; row++) { - var obj = board[index(column, row)]; - if (obj == null) - continue; - obj.x -= fallDist * gameCanvas.blockSize; - board[index(column - fallDist, row)] = obj; - board[index(column, row)] = null; - } - } - } - } -} - -//![2] -function victoryCheck() { - //Award bonus points if no blocks left - var deservesBonus = true; - for (var column = maxColumn - 1; column >= 0; column--) - if (board[index(column, maxRow - 1)] != null) - deservesBonus = false; - if (deservesBonus) - gameCanvas.score += 500; - - //Check whether game has finished - if (deservesBonus || !(floodMoveCheck(0, maxRow - 1, -1))) - dialog.show("Game Over. Your score is " + gameCanvas.score); -} -//![2] - -//only floods up and right, to see if it can find adjacent same-typed blocks -function floodMoveCheck(column, row, type) { - if (column >= maxColumn || column < 0 || row >= maxRow || row < 0) - return false; - if (board[index(column, row)] == null) - return false; - var myType = board[index(column, row)].type; - if (type == myType) - return true; - return floodMoveCheck(column + 1, row, myType) || floodMoveCheck(column, row - 1, board[index(column, row)].type); -} - diff --git a/src/branding/samegame/samegame.qml b/src/branding/samegame/samegame.qml deleted file mode 100644 index 73ef74d1e..000000000 --- a/src/branding/samegame/samegame.qml +++ /dev/null @@ -1,113 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -//![0] -import QtQuick 2.0 -import "samegame.js" as SameGame - -Rectangle { - id: screen - - width: 490; height: 720 - - SystemPalette { id: activePalette } - - Item { - width: parent.width - anchors { top: parent.top; bottom: toolBar.top } - - Image { - id: background - anchors.fill: parent - source: "background.jpg" - fillMode: Image.PreserveAspectCrop - } - -//![1] - Item { - id: gameCanvas - - property int score: 0 - property int blockSize: 40 - - width: parent.width - (parent.width % blockSize) - height: parent.height - (parent.height % blockSize) - anchors.centerIn: parent - - MouseArea { - anchors.fill: parent - onClicked: SameGame.handleClick(mouse.x, mouse.y) - } - } -//![1] - } - -//![2] - Dialog { - id: dialog - anchors.centerIn: parent - z: 100 - } -//![2] - - Rectangle { - id: toolBar - width: parent.width; height: 30 - color: activePalette.window - anchors.bottom: screen.bottom - - Button { - anchors { left: parent.left; verticalCenter: parent.verticalCenter } - text: "New Game" - onClicked: SameGame.startNewGame() - } - } -} -//![0] diff --git a/src/branding/samegame/squidball.png b/src/branding/samegame/squidball.png deleted file mode 100644 index b7934e8ee..000000000 Binary files a/src/branding/samegame/squidball.png and /dev/null differ diff --git a/src/branding/samegame/star.png b/src/branding/samegame/star.png deleted file mode 100644 index defbde53c..000000000 Binary files a/src/branding/samegame/star.png and /dev/null differ diff --git a/src/branding/samegame/yellowStone.png b/src/branding/samegame/yellowStone.png deleted file mode 100644 index b1ce76212..000000000 Binary files a/src/branding/samegame/yellowStone.png and /dev/null differ diff --git a/src/calamares/CMakeLists.txt b/src/calamares/CMakeLists.txt index 270abbb88..e1f8e4236 100644 --- a/src/calamares/CMakeLists.txt +++ b/src/calamares/CMakeLists.txt @@ -68,3 +68,9 @@ install( FILES ${CMAKE_SOURCE_DIR}/data/images/squid.svg RENAME calamares.svg DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/scalable/apps ) + +if( BUILD_TESTING ) + add_executable( loadmodule testmain.cpp ) + target_link_libraries( loadmodule ${CALAMARES_LIBRARIES} Qt5::Core Qt5::Widgets calamaresui ) + # Don't install, it's just for enable_testing +endif() diff --git a/src/calamares/CalamaresApplication.cpp b/src/calamares/CalamaresApplication.cpp index 6523dd14b..0516606c4 100644 --- a/src/calamares/CalamaresApplication.cpp +++ b/src/calamares/CalamaresApplication.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,10 +45,15 @@ CalamaresApplication::CalamaresApplication( int& argc, char* argv[] ) , m_moduleManager( nullptr ) , m_debugMode( false ) { - setOrganizationName( QLatin1String( CALAMARES_ORGANIZATION_NAME ) ); - setOrganizationDomain( QLatin1String( CALAMARES_ORGANIZATION_DOMAIN ) ); - setApplicationName( QLatin1String( CALAMARES_APPLICATION_NAME ) ); - setApplicationVersion( QLatin1String( CALAMARES_VERSION ) ); + // Setting the organization name makes the default cache + // directory -- where Calamares stores logs, for instance -- + // //, so we end up with ~/.cache/Calamares/calamares/ + // which is excessively squidly. + // + // setOrganizationName( QStringLiteral( CALAMARES_ORGANIZATION_NAME ) ); + setOrganizationDomain( QStringLiteral( CALAMARES_ORGANIZATION_DOMAIN ) ); + setApplicationName( QStringLiteral( CALAMARES_APPLICATION_NAME ) ); + setApplicationVersion( QStringLiteral( CALAMARES_VERSION ) ); cDebug() << "Calamares version:" << CALAMARES_VERSION; @@ -65,9 +71,6 @@ CalamaresApplication::CalamaresApplication( int& argc, char* argv[] ) void CalamaresApplication::init() { - cDebug() << "CalamaresApplication thread:" << thread(); - - //TODO: Icon loader Logger::setupLogfile(); setQuitOnLastWindowClosed( false ); @@ -130,60 +133,93 @@ CalamaresApplication::mainWindow() } -void -CalamaresApplication::initQmlPath() +static QStringList +qmlDirCandidates( bool assumeBuilddir ) { - QDir importPath; + static const char QML[] = "qml"; - QString subpath( "qml" ); + QStringList qmlDirs; + if ( CalamaresUtils::isAppDataDirOverridden() ) + qmlDirs << CalamaresUtils::appDataDir().absoluteFilePath( QML ); + else + { + if ( assumeBuilddir ) + qmlDirs << QDir::current().absoluteFilePath( "src/qml" ); // In build-dir + qmlDirs << CalamaresUtils::appDataDir().absoluteFilePath( QML ); + } + + return qmlDirs; +} + +static QStringList +settingsFileCandidates( bool assumeBuilddir ) +{ + static const char settings[] = "settings.conf"; + + QStringList settingsPaths; if ( CalamaresUtils::isAppDataDirOverridden() ) + settingsPaths << CalamaresUtils::appDataDir().absoluteFilePath( settings ); + else { - importPath = QDir( CalamaresUtils::appDataDir() - .absoluteFilePath( subpath ) ); - if ( !importPath.exists() || !importPath.isReadable() ) - { - cError() << "FATAL: explicitly configured application data directory" - << CalamaresUtils::appDataDir().absolutePath() - << "does not contain a valid QML modules directory at" - << importPath.absolutePath() - << "\nCowardly refusing to continue startup without the QML directory."; - ::exit( EXIT_FAILURE ); - } + if ( assumeBuilddir ) + settingsPaths << QDir::current().absoluteFilePath( settings ); + settingsPaths << CMAKE_INSTALL_FULL_SYSCONFDIR "/calamares/settings.conf"; // String concat + settingsPaths << CalamaresUtils::appDataDir().absoluteFilePath( settings ); } + + return settingsPaths; +} + + +static QStringList +brandingFileCandidates( bool assumeBuilddir, const QString& brandingFilename ) +{ + QStringList brandingPaths; + if ( CalamaresUtils::isAppDataDirOverridden() ) + brandingPaths << CalamaresUtils::appDataDir().absoluteFilePath( brandingFilename ); else { - QStringList qmlDirCandidatesByPriority; - if ( isDebug() ) - { - qmlDirCandidatesByPriority.append( - QDir::current().absoluteFilePath( - QString( "src/%1" ) - .arg( subpath ) ) ); - } - qmlDirCandidatesByPriority.append( CalamaresUtils::appDataDir() - .absoluteFilePath( subpath ) ); + if ( assumeBuilddir ) + brandingPaths << ( QDir::currentPath() + QStringLiteral( "/src/" ) + brandingFilename ); + brandingPaths << QDir( CMAKE_INSTALL_FULL_SYSCONFDIR "/calamares/" ).absoluteFilePath( brandingFilename ); + brandingPaths << CalamaresUtils::appDataDir().absoluteFilePath( brandingFilename); + } - foreach ( const QString& path, qmlDirCandidatesByPriority ) - { - QDir dir( path ); - if ( dir.exists() && dir.isReadable() ) - { - importPath = dir; - break; - } - } + return brandingPaths; +} + + +void +CalamaresApplication::initQmlPath() +{ + QDir importPath; // Right now, current-dir + QStringList qmlDirCandidatesByPriority = qmlDirCandidates( isDebug() ); + bool found = false; - if ( !importPath.exists() || !importPath.isReadable() ) + foreach ( const QString& path, qmlDirCandidatesByPriority ) + { + QDir dir( path ); + if ( dir.exists() && dir.isReadable() ) { - cError() << "FATAL: none of the expected QML paths (" - << qmlDirCandidatesByPriority.join( ", " ) - << ") exist." - << "\nCowardly refusing to continue startup without the QML directory."; - ::exit( EXIT_FAILURE ); + importPath = dir; + found = true; + break; } } + if ( !found || !importPath.exists() || !importPath.isReadable() ) + { + cError() << "Cowardly refusing to continue startup without a QML directory." + << Logger::DebugList( qmlDirCandidatesByPriority ); + if ( CalamaresUtils::isAppDataDirOverridden() ) + cError() << "FATAL: explicitly configured application data directory is missing qml/"; + else + cError() << "FATAL: none of the expected QML paths exist."; + ::exit( EXIT_FAILURE ); + } + + cDebug() << "Using Calamares QML directory" << importPath.absolutePath(); CalamaresUtils::setQmlModulesDir( importPath ); } @@ -191,51 +227,31 @@ CalamaresApplication::initQmlPath() void CalamaresApplication::initSettings() { + QStringList settingsFileCandidatesByPriority = settingsFileCandidates( isDebug() ); + QFileInfo settingsFile; - if ( CalamaresUtils::isAppDataDirOverridden() ) + bool found = false; + + foreach ( const QString& path, settingsFileCandidatesByPriority ) { - settingsFile = QFileInfo( CalamaresUtils::appDataDir().absoluteFilePath( "settings.conf" ) ); - if ( !settingsFile.exists() || !settingsFile.isReadable() ) + QFileInfo pathFi( path ); + if ( pathFi.exists() && pathFi.isReadable() ) { - cError() << "FATAL: explicitly configured application data directory" - << CalamaresUtils::appDataDir().absolutePath() - << "does not contain a valid settings.conf file." - << "\nCowardly refusing to continue startup without settings."; - ::exit( EXIT_FAILURE ); + settingsFile = pathFi; + found = true; + break; } } - else - { - QStringList settingsFileCandidatesByPriority; - if ( isDebug() ) - { - settingsFileCandidatesByPriority.append( - QDir::currentPath() + - QDir::separator() + - "settings.conf" ); - } - settingsFileCandidatesByPriority.append( CMAKE_INSTALL_FULL_SYSCONFDIR "/calamares/settings.conf" ); - settingsFileCandidatesByPriority.append( CalamaresUtils::appDataDir() - .absoluteFilePath( "settings.conf" ) ); - - foreach ( const QString& path, settingsFileCandidatesByPriority ) - { - QFileInfo pathFi( path ); - if ( pathFi.exists() && pathFi.isReadable() ) - { - settingsFile = pathFi; - break; - } - } - if ( !settingsFile.exists() || !settingsFile.isReadable() ) - { - cError() << "FATAL: none of the expected configuration file paths (" - << settingsFileCandidatesByPriority.join( ", " ) - << ") contain a valid settings.conf file." - << "\nCowardly refusing to continue startup without settings."; - ::exit( EXIT_FAILURE ); - } + if ( !found || !settingsFile.exists() || !settingsFile.isReadable() ) + { + cError() << "Cowardly refusing to continue startup without settings." + << Logger::DebugList( settingsFileCandidatesByPriority ); + if ( CalamaresUtils::isAppDataDirOverridden() ) + cError() << "FATAL: explicitly configured application data directory is missing settings.conf"; + else + cError() << "FATAL: none of the expected configuration file paths exist."; + ::exit( EXIT_FAILURE ); } new Calamares::Settings( settingsFile.absoluteFilePath(), isDebug(), this ); @@ -252,59 +268,32 @@ CalamaresApplication::initBranding() ::exit( EXIT_FAILURE ); } - QString brandingDescriptorSubpath = QString( "branding/%1/branding.desc" ) - .arg( brandingComponentName ); + QString brandingDescriptorSubpath = QString( "branding/%1/branding.desc" ).arg( brandingComponentName ); + QStringList brandingFileCandidatesByPriority = brandingFileCandidates( isDebug(), brandingDescriptorSubpath); QFileInfo brandingFile; - if ( CalamaresUtils::isAppDataDirOverridden() ) + bool found = false; + + foreach ( const QString& path, brandingFileCandidatesByPriority ) { - brandingFile = QFileInfo( CalamaresUtils::appDataDir() - .absoluteFilePath( brandingDescriptorSubpath ) ); - if ( !brandingFile.exists() || !brandingFile.isReadable() ) + QFileInfo pathFi( path ); + if ( pathFi.exists() && pathFi.isReadable() ) { - cError() << "FATAL: explicitly configured application data directory" - << CalamaresUtils::appDataDir().absolutePath() - << "does not contain a valid branding component descriptor at" - << brandingFile.absoluteFilePath() - << "\nCowardly refusing to continue startup without branding."; - ::exit( EXIT_FAILURE ); + brandingFile = pathFi; + found = true; + break; } } - else - { - QStringList brandingFileCandidatesByPriority; - if ( isDebug() ) - { - brandingFileCandidatesByPriority.append( - QDir::currentPath() + - QDir::separator() + - "src" + - QDir::separator() + - brandingDescriptorSubpath ); - } - brandingFileCandidatesByPriority.append( QDir( CMAKE_INSTALL_FULL_SYSCONFDIR "/calamares/" ) - .absoluteFilePath( brandingDescriptorSubpath ) ); - brandingFileCandidatesByPriority.append( CalamaresUtils::appDataDir() - .absoluteFilePath( brandingDescriptorSubpath ) ); - - foreach ( const QString& path, brandingFileCandidatesByPriority ) - { - QFileInfo pathFi( path ); - if ( pathFi.exists() && pathFi.isReadable() ) - { - brandingFile = pathFi; - break; - } - } - if ( !brandingFile.exists() || !brandingFile.isReadable() ) - { - cError() << "FATAL: none of the expected branding descriptor file paths (" - << brandingFileCandidatesByPriority.join( ", " ) - << ") contain a valid branding.desc file." - << "\nCowardly refusing to continue startup without branding."; - ::exit( EXIT_FAILURE ); - } + if ( !found || !brandingFile.exists() || !brandingFile.isReadable() ) + { + cError() << "Cowardly refusing to continue startup without branding." + << Logger::DebugList( brandingFileCandidatesByPriority ); + if ( CalamaresUtils::isAppDataDirOverridden() ) + cError() << "FATAL: explicitly configured application data directory is missing" << brandingComponentName; + else + cError() << "FATAL: none of the expected branding descriptor file paths exist."; + ::exit( EXIT_FAILURE ); } new Calamares::Branding( brandingFile.absoluteFilePath(), this ); @@ -333,6 +322,8 @@ CalamaresApplication::initView() connect( m_moduleManager, &Calamares::ModuleManager::modulesLoaded, this, &CalamaresApplication::initViewSteps ); + connect( m_moduleManager, &Calamares::ModuleManager::modulesFailed, + this, &CalamaresApplication::initFailed ); m_moduleManager->loadModules(); @@ -355,6 +346,12 @@ CalamaresApplication::initViewSteps() cDebug() << "STARTUP: Window now visible and ProgressTreeView populated"; } +void +CalamaresApplication::initFailed(const QStringList& l) +{ + cError() << "STARTUP: failed modules are" << l; + m_mainwindow->show(); +} void CalamaresApplication::initJobQueue() diff --git a/src/calamares/CalamaresApplication.h b/src/calamares/CalamaresApplication.h index 3cfd4f79f..f9c919aa6 100644 --- a/src/calamares/CalamaresApplication.h +++ b/src/calamares/CalamaresApplication.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -70,6 +71,7 @@ public: private slots: void initView(); void initViewSteps(); + void initFailed( const QStringList& l ); private: void initQmlPath(); diff --git a/src/calamares/main.cpp b/src/calamares/main.cpp index 1c1ba2181..9893e6792 100644 --- a/src/calamares/main.cpp +++ b/src/calamares/main.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -108,7 +108,14 @@ main( int argc, char* argv[] ) returnCode = a.exec(); } else + { + auto instancelist = guard.instances(); qDebug() << "Calamares is already running, shutting down."; + if ( instancelist.count() > 0 ) + qDebug() << "Other running Calamares instances:"; + for ( const auto& i : instancelist ) + qDebug() << " " << i.isValid() << i.pid() << i.arguments(); + } return returnCode; } diff --git a/src/calamares/testmain.cpp b/src/calamares/testmain.cpp new file mode 100644 index 000000000..c22342f9a --- /dev/null +++ b/src/calamares/testmain.cpp @@ -0,0 +1,192 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +/* + * This executable loads and runs a Calamares Python module + * within a C++ application, in order to test the different + * bindings. + */ + +#include "utils/Logger.h" +#include "utils/YamlUtils.h" +#include "modulesystem/Module.h" + +#include "Settings.h" +#include "Job.h" +#include "JobQueue.h" + +#include +#include +#include +#include + +#include + +struct ModuleConfig : public QPair< QString, QString > +{ + ModuleConfig( const QString& a, const QString& b ) : QPair< QString, QString >(a, b) { } + ModuleConfig() : QPair< QString, QString >( QString(), QString() ) { } + + QString moduleName() const { return first; } + QString configFile() const { return second; } +} ; + +static ModuleConfig +handle_args( QCoreApplication& a ) +{ + QCommandLineOption debugLevelOption( QStringLiteral("D"), + "Verbose output for debugging purposes (0-8).", "level" ); + + QCommandLineParser parser; + parser.setApplicationDescription( "Calamares module tester" ); + parser.addHelpOption(); + parser.addVersionOption(); + + parser.addOption( debugLevelOption ); + parser.addPositionalArgument( "module", "Path or name of module to run." ); + + parser.process( a ); + + if ( parser.isSet( debugLevelOption ) ) + { + bool ok = true; + int l = parser.value( debugLevelOption ).toInt( &ok ); + unsigned int dlevel = 0; + if ( !ok || ( l < 0 ) ) + dlevel = Logger::LOGVERBOSE; + else + dlevel = l; + Logger::setupLogLevel( dlevel ); + } + + const QStringList args = parser.positionalArguments(); + if ( args.isEmpty() ) + { + cError() << "Missing path.\n"; + parser.showHelp(); + return ModuleConfig(); // NOTREACHED + } + if ( args.size() > 2 ) + { + cError() << "More than one path.\n"; + parser.showHelp(); + return ModuleConfig(); // NOTREACHED + } + + return ModuleConfig( args.first(), args.size() == 2 ? args.at(1) : QString() ); +} + + +static Calamares::Module* +load_module( const ModuleConfig& moduleConfig ) +{ + QString moduleName = moduleConfig.moduleName(); + QFileInfo fi; + + bool ok = false; + QVariantMap descriptor; + + for ( const QString& prefix : QStringList{ "./", "src/modules/", "modules/" } ) + { + // Could be a complete path, eg. src/modules/dummycpp/module.desc + fi = QFileInfo( prefix + moduleName ); + if ( fi.exists() && fi.isFile() ) + descriptor = CalamaresUtils::loadYaml( fi, &ok ); + if ( ok ) + break; + + // Could be a path without module.desc + fi = QFileInfo( prefix + moduleName ); + if ( fi.exists() && fi.isDir() ) + { + fi = QFileInfo( prefix + moduleName + "/module.desc" ); + if ( fi.exists() && fi.isFile() ) + descriptor = CalamaresUtils::loadYaml( fi, &ok ); + if ( ok ) break; + } + } + + if ( !ok ) + { + cWarning() << "No suitable module descriptor found."; + return nullptr; + } + + QString name = descriptor.value( "name" ).toString(); + if ( name.isEmpty() ) + { + cWarning() << "No name found in module descriptor" << fi.absoluteFilePath(); + return nullptr; + } + + QString moduleDirectory = fi.absolutePath(); + QString configFile( + moduleConfig.configFile().isEmpty() + ? moduleDirectory + '/' + name + ".conf" + : moduleConfig.configFile() ); + + Calamares::Module* module = Calamares::Module::fromDescriptor( + descriptor, name, configFile, moduleDirectory ); + + return module; +} + +int +main( int argc, char* argv[] ) +{ + QCoreApplication a( argc, argv ); + + ModuleConfig module = handle_args( a ); + if ( module.moduleName().isEmpty() ) + return 1; + + std::unique_ptr< Calamares::Settings > settings_p( new Calamares::Settings( QString(), true ) ); + std::unique_ptr< Calamares::JobQueue > jobqueue_p( new Calamares::JobQueue( nullptr ) ); + + cDebug() << "Calamares test module-loader" << module.moduleName(); + Calamares::Module* m = load_module( module ); + if ( !m ) + { + cError() << "Could not load module" << module.moduleName(); + return 1; + } + + if ( !m->isLoaded() ) + m->loadSelf(); + + if ( !m->isLoaded() ) + { + cError() << "Module" << module.moduleName() << "could not be loaded."; + return 1; + } + + cDebug() << "Module" << m->name() << m->typeString() << m->interfaceString(); + + Calamares::JobList jobList = m->jobs(); + unsigned int count = 1; + for ( const auto& p : jobList ) + { + cDebug() << count << p->prettyName(); + Calamares::JobResult r = p->exec(); + if ( !r ) + cDebug() << count << ".. failed" << r; + ++count; + } + + return 0; +} diff --git a/src/libcalamares/CMakeLists.txt b/src/libcalamares/CMakeLists.txt index 2a1cfeb20..598d3c313 100644 --- a/src/libcalamares/CMakeLists.txt +++ b/src/libcalamares/CMakeLists.txt @@ -18,6 +18,7 @@ set( libSources Job.cpp JobQueue.cpp ProcessJob.cpp + Settings.cpp ) set( utilsSources utils/CalamaresUtils.cpp @@ -26,6 +27,7 @@ set( utilsSources utils/Logger.cpp utils/PluginFactory.cpp utils/Retranslator.cpp + utils/YamlUtils.cpp ) set( kdsagSources kdsingleapplicationguard/kdsingleapplicationguard.cpp @@ -38,6 +40,7 @@ mark_thirdparty_code( ${kdsagSources} ) include_directories( ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} + ${YAMLCPP_INCLUDE_DIR} ) if( WITH_PYTHON ) @@ -88,8 +91,11 @@ set_target_properties( calamares ) target_link_libraries( calamares - LINK_PRIVATE ${OPTIONAL_PRIVATE_LIBRARIES} - LINK_PUBLIC Qt5::Core + LINK_PRIVATE + ${OPTIONAL_PRIVATE_LIBRARIES} + LINK_PUBLIC + ${YAMLCPP_LIBRARY} + Qt5::Core ) install( TARGETS calamares diff --git a/src/libcalamares/GlobalStorage.cpp b/src/libcalamares/GlobalStorage.cpp index fd72697cf..4f98ea2eb 100644 --- a/src/libcalamares/GlobalStorage.cpp +++ b/src/libcalamares/GlobalStorage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,9 @@ #include "utils/Logger.h" +#include +#include + #ifdef WITH_PYTHON #include "PythonHelper.h" @@ -94,6 +97,19 @@ GlobalStorage::debugDump() const } } +bool +GlobalStorage::save(const QString& filename) +{ + QFile f( filename ); + if ( !f.open( QFile::WriteOnly ) ) + return false; + + f.write( QJsonDocument::fromVariant( m ).toJson() ) ; + f.close(); + return true; +} + + } // namespace Calamares #ifdef WITH_PYTHON diff --git a/src/libcalamares/GlobalStorage.h b/src/libcalamares/GlobalStorage.h index dc79c55e8..72524ba4f 100644 --- a/src/libcalamares/GlobalStorage.h +++ b/src/libcalamares/GlobalStorage.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -58,7 +58,16 @@ public: int remove( const QString& key ); QVariant value( const QString& key ) const; + /// @brief dump keys and values to the debug log void debugDump() const; + /** @brief write as JSON to the given filename + * + * No tidying, sanitization, or censoring is done -- for instance, + * the user module sets a slightly-obscured password in global storage, + * and this JSON file will contain that password in-the-only-slightly- + * obscured form. + */ + bool save( const QString& filename ); signals: void changed(); diff --git a/src/libcalamares/Job.h b/src/libcalamares/Job.h index 6063633b8..040ead6ad 100644 --- a/src/libcalamares/Job.h +++ b/src/libcalamares/Job.h @@ -66,8 +66,15 @@ public: virtual QString prettyDescription() const; virtual QString prettyStatusMessage() const; virtual JobResult exec() = 0; + + bool isEmergency() const { return m_emergency; } + void setEmergency( bool e ) { m_emergency = e; } + signals: void progress( qreal percent ); + +private: + bool m_emergency = false; }; } // namespace Calamares diff --git a/src/libcalamares/JobQueue.cpp b/src/libcalamares/JobQueue.cpp index b5bdf0543..46d58d429 100644 --- a/src/libcalamares/JobQueue.cpp +++ b/src/libcalamares/JobQueue.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -50,22 +51,36 @@ public: void run() override { + bool anyFailed = false; + QString message; + QString details; + m_jobIndex = 0; for( auto job : m_jobs ) { + if ( anyFailed && !job->isEmergency() ) + { + cDebug() << "Skipping non-emergency job" << job->prettyName(); + continue; + } + emitProgress(); - cLog() << "Starting job" << job->prettyName(); + cDebug() << "Starting" << ( anyFailed ? "EMERGENCY JOB" : "job" ) << job->prettyName(); connect( job.data(), &Job::progress, this, &JobThread::emitProgress ); JobResult result = job->exec(); - if ( !result ) + if ( !anyFailed && !result ) { - emitFailed( result.message(), result.details() ); - emitFinished(); - return; + anyFailed = true; + message = result.message(); + details = result.details(); } - ++m_jobIndex; + if ( !anyFailed ) + ++m_jobIndex; } - emitProgress(); + if ( anyFailed ) + emitFailed( message, details ); + else + emitProgress(); emitFinished(); } diff --git a/src/libcalamares/ProcessJob.cpp b/src/libcalamares/ProcessJob.cpp index 55e25254c..3cf4eec49 100644 --- a/src/libcalamares/ProcessJob.cpp +++ b/src/libcalamares/ProcessJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamares/ProcessJob.h b/src/libcalamares/ProcessJob.h index 59a532023..d01dbb676 100644 --- a/src/libcalamares/ProcessJob.h +++ b/src/libcalamares/ProcessJob.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamares/PythonHelper.cpp b/src/libcalamares/PythonHelper.cpp index e5eb85084..d6001055e 100644 --- a/src/libcalamares/PythonHelper.cpp +++ b/src/libcalamares/PythonHelper.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamares/PythonHelper.h b/src/libcalamares/PythonHelper.h index d48e5eaab..693d80d8b 100644 --- a/src/libcalamares/PythonHelper.h +++ b/src/libcalamares/PythonHelper.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamares/PythonJob.cpp b/src/libcalamares/PythonJob.cpp index 92dbedef9..65a5c4506 100644 --- a/src/libcalamares/PythonJob.cpp +++ b/src/libcalamares/PythonJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamares/PythonJobApi.cpp b/src/libcalamares/PythonJobApi.cpp index a5bae6149..f540c2683 100644 --- a/src/libcalamares/PythonJobApi.cpp +++ b/src/libcalamares/PythonJobApi.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamares/PythonJobApi.h b/src/libcalamares/PythonJobApi.h index 0e68d7936..a19a0581b 100644 --- a/src/libcalamares/PythonJobApi.h +++ b/src/libcalamares/PythonJobApi.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/libcalamaresui/Settings.cpp b/src/libcalamares/Settings.cpp similarity index 83% rename from src/libcalamaresui/Settings.cpp rename to src/libcalamares/Settings.cpp index 06178c621..8fd4eeac3 100644 --- a/src/libcalamaresui/Settings.cpp +++ b/src/libcalamares/Settings.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -29,6 +29,39 @@ #include +static bool +hasValue( const YAML::Node& v ) +{ + return v.IsDefined() && !v.IsNull(); +} + +/** 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 ) +{ + auto v = config[ key ]; + if ( hasValue(v) ) + return QString::fromStdString( v.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 ) +{ + auto v = config[ key ]; + if ( hasValue(v) ) + return v.as< bool >(); + else + { + cWarning() << "Required settings.conf key" << key << "is missing."; + return d; + } +} namespace Calamares { @@ -41,7 +74,6 @@ Settings::instance() return s_instance; } - Settings::Settings( const QString& settingsFilePath, bool debugMode, QObject* parent ) @@ -148,20 +180,18 @@ 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", false ); } catch ( YAML::Exception& e ) { - cWarning() << "YAML parser error " << e.what() << "in" << file.fileName(); + CalamaresUtils::explainYamlException( e, ba, file.fileName() ); } } else { - cWarning() << "Cannot read " << file.fileName(); + cWarning() << "Cannot read settings file" << file.fileName(); } s_instance = this; @@ -175,14 +205,14 @@ Settings::modulesSearchPaths() const } -QList > +Settings::InstanceDescriptionList Settings::customModuleInstances() const { return m_customModuleInstances; } -QList< QPair< ModuleAction, QStringList > > +Settings::ModuleSequence Settings::modulesSequence() const { return m_modulesSequence; diff --git a/src/libcalamaresui/Settings.h b/src/libcalamares/Settings.h similarity index 78% rename from src/libcalamaresui/Settings.h rename to src/libcalamares/Settings.h index 42720b986..4da65f710 100644 --- a/src/libcalamaresui/Settings.h +++ b/src/libcalamares/Settings.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,9 +43,12 @@ 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; + using ModuleSequence = QList< QPair< ModuleAction, QStringList > >; + ModuleSequence modulesSequence() const; QString brandingComponentName() const; @@ -60,8 +63,8 @@ private: QStringList m_modulesSearchPaths; - QList< QMap< QString, QString > > m_customModuleInstances; - QList< QPair< ModuleAction, QStringList > > m_modulesSequence; + InstanceDescriptionList m_customModuleInstances; + ModuleSequence m_modulesSequence; QString m_brandingComponentName; diff --git a/src/libcalamares/utils/CalamaresUtils.cpp b/src/libcalamares/utils/CalamaresUtils.cpp index fe07c62a0..6a892511a 100644 --- a/src/libcalamares/utils/CalamaresUtils.cpp +++ b/src/libcalamares/utils/CalamaresUtils.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2013-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Originally from Tomahawk, portions: * Copyright 2010-2011, Christian Muehlhaeuser @@ -33,11 +34,9 @@ #include #include - -// stdc++ #include -using namespace std; +using std::cerr; namespace CalamaresUtils { @@ -147,6 +146,14 @@ installTranslator( const QLocale& locale, if ( localeName == "C" ) localeName = "en"; + // Special case of sr@latin + // + // See top-level CMakeLists.txt about special cases for translation loading. + if ( locale.language() == QLocale::Language::Serbian && locale.script() == QLocale::Script::LatinScript ) + localeName = QStringLiteral( "sr@latin" ); + + cDebug() << "Looking for translations for" << localeName; + QTranslator* translator = nullptr; // Branding translations @@ -167,11 +174,11 @@ installTranslator( const QLocale& locale, "_", brandingTranslationsDir.absolutePath() ) ) { - cDebug() << "Translation: Branding using locale:" << localeName; + cDebug() << " .. Branding using locale:" << localeName; } else { - cDebug() << "Translation: Branding using default, system locale not found:" << localeName; + cDebug() << " .. Branding using default, system locale not found:" << localeName; translator->load( brandingTranslationsPrefix + "en" ); } @@ -190,11 +197,11 @@ installTranslator( const QLocale& locale, translator = new QTranslator( parent ); if ( translator->load( QString( ":/lang/calamares_" ) + localeName ) ) { - cDebug() << "Translation: Calamares using locale:" << localeName; + cDebug() << " .. Calamares using locale:" << localeName; } else { - cDebug() << "Translation: Calamares using default, system locale not found:" << localeName; + cDebug() << " .. Calamares using default, system locale not found:" << localeName; translator->load( QString( ":/lang/calamares_en" ) ); } diff --git a/src/libcalamares/utils/CalamaresUtils.h b/src/libcalamares/utils/CalamaresUtils.h index 13caf1cad..e64fe4eec 100644 --- a/src/libcalamares/utils/CalamaresUtils.h +++ b/src/libcalamares/utils/CalamaresUtils.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2013-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Originally from Tomahawk, portions: * Copyright 2010-2011, Christian Muehlhaeuser diff --git a/src/libcalamares/utils/CalamaresUtilsSystem.cpp b/src/libcalamares/utils/CalamaresUtilsSystem.cpp index 54243553a..cb4bbd66a 100644 --- a/src/libcalamares/utils/CalamaresUtilsSystem.cpp +++ b/src/libcalamares/utils/CalamaresUtilsSystem.cpp @@ -20,8 +20,9 @@ #include "CalamaresUtilsSystem.h" #include "utils/Logger.h" -#include "JobQueue.h" #include "GlobalStorage.h" +#include "JobQueue.h" +#include "Settings.h" #include #include @@ -173,7 +174,7 @@ System::runCommand( if ( !process.waitForFinished( timeoutSec ? ( timeoutSec * 1000 ) : -1 ) ) { - cWarning() << "Timed out. output so far:\n" << + cWarning().noquote().nospace() << "Timed out. Output so far:\n" << process.readAllStandardOutput(); return -4; } @@ -182,16 +183,16 @@ System::runCommand( if ( process.exitStatus() == QProcess::CrashExit ) { - cWarning() << "Process crashed"; + cWarning().noquote().nospace() << "Process crashed. Output so far:\n" << output; return -1; } auto r = process.exitCode(); cDebug() << "Finished. Exit code:" << r; - if ( r != 0 ) + if ( ( r != 0 ) || Calamares::Settings::instance()->debugMode() ) { cDebug() << "Target cmd:" << args; - cDebug().noquote() << "Target output:\n" << output; + cDebug().noquote().nospace() << "Target output:\n" << output; } return ProcessResult(r, output); } diff --git a/src/libcalamares/utils/CommandList.cpp b/src/libcalamares/utils/CommandList.cpp index 298fc7b6c..8e332a066 100644 --- a/src/libcalamares/utils/CommandList.cpp +++ b/src/libcalamares/utils/CommandList.cpp @@ -98,28 +98,52 @@ CommandList::~CommandList() { } +static inline bool +findInCommands( const CommandList& l, const QString& needle ) +{ + for ( CommandList::const_iterator i = l.cbegin(); i != l.cend(); ++i ) + if ( i->command().contains( needle ) ) + return true; + return false; +} + Calamares::JobResult CommandList::run() { + QLatin1Literal rootMagic( "@@ROOT@@" ); + QLatin1Literal userMagic( "@@USER@@" ); + System::RunLocation location = m_doChroot ? System::RunLocation::RunInTarget : System::RunLocation::RunInHost; /* Figure out the replacement for @@ROOT@@ */ QString root = QStringLiteral( "/" ); Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); - if ( location == System::RunLocation::RunInTarget ) + + bool needsRootSubstitution = findInCommands( *this, rootMagic ); + if ( needsRootSubstitution && ( location == System::RunLocation::RunInHost ) ) { if ( !gs || !gs->contains( "rootMountPoint" ) ) { cError() << "No rootMountPoint defined."; return Calamares::JobResult::error( QCoreApplication::translate( "CommandList", "Could not run command." ), - QCoreApplication::translate( "CommandList", "No rootMountPoint is defined, so command cannot be run in the target environment." ) ); + QCoreApplication::translate( "CommandList", "The command runs in the host environment and needs to know the root path, but no rootMountPoint is defined." ) ); } root = gs->value( "rootMountPoint" ).toString(); } + bool needsUserSubstitution = findInCommands( *this, userMagic ); + if ( needsUserSubstitution && ( !gs || !gs->contains( "username" ) ) ) + { + cError() << "No username defined."; + return Calamares::JobResult::error( + QCoreApplication::translate( "CommandList", "Could not run command." ), + QCoreApplication::translate( "CommandList", "The command needs to know the user's name, but no username is defined." ) ); + } + QString user = gs->value( "username" ).toString(); // may be blank if unset + for ( CommandList::const_iterator i = cbegin(); i != cend(); ++i ) { QString processed_cmd = i->command(); - processed_cmd.replace( "@@ROOT@@", root ); + processed_cmd.replace( rootMagic, root ).replace( userMagic, user ); bool suppress_result = false; if ( processed_cmd.startsWith( '-' ) ) { diff --git a/src/libcalamares/utils/CommandList.h b/src/libcalamares/utils/CommandList.h index b766259c0..9faf705f2 100644 --- a/src/libcalamares/utils/CommandList.h +++ b/src/libcalamares/utils/CommandList.h @@ -74,6 +74,9 @@ using CommandList_t = QList< CommandLine >; * A list of commands; the list may have its own default timeout * for commands (which is then applied to each individual command * that doesn't have one of its own). + * + * Documentation for the format of commands can be found in + * `shellprocess.conf`. */ class CommandList : protected CommandList_t { diff --git a/src/libcalamares/utils/Logger.cpp b/src/libcalamares/utils/Logger.cpp index fe95ad36b..735414b85 100644 --- a/src/libcalamares/utils/Logger.cpp +++ b/src/libcalamares/utils/Logger.cpp @@ -31,6 +31,7 @@ #include #include "utils/CalamaresUtils.h" +#include "CalamaresVersion.h" #define LOGFILE_SIZE 1024 * 256 @@ -85,7 +86,7 @@ log( const char* msg, unsigned int debugLevel, bool toDisk = true ) } -void +static void CalamaresLogHandler( QtMsgType type, const QMessageLogContext& context, const QString& msg ) { static QMutex s_mutex; @@ -118,7 +119,7 @@ CalamaresLogHandler( QtMsgType type, const QMessageLogContext& context, const QS QString logFile() { - return CalamaresUtils::appLogDir().filePath( "Calamares.log" ); + return CalamaresUtils::appLogDir().filePath( "session.log" ); } @@ -145,9 +146,18 @@ setupLogfile() } } + // Since the log isn't open yet, this probably only goes to stdout cDebug() << "Using log file:" << logFile(); + // Lock while (re-)opening the logfile + { + QMutexLocker lock( &s_mutex ); logfile.open( logFile().toLocal8Bit(), std::ios::app ); + if ( logfile.tellp() ) + logfile << "\n\n" << std::endl; + logfile << "=== START CALAMARES " << CALAMARES_VERSION << std::endl; + } + qInstallMessageHandler( CalamaresLogHandler ); } @@ -167,4 +177,22 @@ CDebug::~CDebug() { } +const char* continuation = "\n "; + +QString toString( const QVariant& v ) +{ + auto t = v.type(); + + if ( t == QVariant::List ) + { + QStringList s; + auto l = v.toList(); + for ( auto lit = l.constBegin(); lit != l.constEnd(); ++lit ) + s << lit->toString(); + return s.join(", "); + } + else + return v.toString(); +} + } // namespace diff --git a/src/libcalamares/utils/Logger.h b/src/libcalamares/utils/Logger.h index b6211c4fe..dba386eae 100644 --- a/src/libcalamares/utils/Logger.h +++ b/src/libcalamares/utils/Logger.h @@ -2,7 +2,7 @@ * * Copyright 2010-2011, Christian Muehlhaeuser * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,6 +27,8 @@ namespace Logger { + extern const char* continuation; + enum { LOG_DISABLE = 0, @@ -41,7 +43,7 @@ namespace Logger class DLLEXPORT CLog : public QDebug { public: - CLog( unsigned int debugLevel = 0 ); + explicit CLog( unsigned int debugLevel ); virtual ~CLog(); private: @@ -54,14 +56,28 @@ namespace Logger public: CDebug( unsigned int debugLevel = LOGDEBUG ) : CLog( debugLevel ) { + if ( debugLevel <= LOGERROR ) + *this << "ERROR:"; + else if ( debugLevel <= LOGWARNING ) + *this << "WARNING:"; } virtual ~CDebug(); }; - DLLEXPORT void CalamaresLogHandler( QtMsgType type, const QMessageLogContext& context, const QString& msg ); - DLLEXPORT void setupLogfile(); + /** + * @brief The full path of the log file. + */ DLLEXPORT QString logFile(); + /** + * @brief Start logging to the log file. + * + * Call this (once) to start logging to the log file (usually + * ~/.cache/calamares/session.log ). An existing log file is + * rolled over if it is too large. + */ + DLLEXPORT void setupLogfile(); + /** * @brief Set a log level for future logging. * @@ -72,11 +88,101 @@ namespace Logger * Practical values are 0, 1, 2, and 6. */ DLLEXPORT void setupLogLevel( unsigned int level ); + + /** + * @brief Row-oriented formatted logging. + * + * Use DebugRow to produce multiple rows of 2-column output + * in a debugging statement. For instance, + * cDebug() << DebugRow(1,12) + * << DebugRow(2,24) + * will produce a single timestamped debug line with continuations. + * Each DebugRow produces one line of output, with the two values. + */ + template + struct DebugRow + { + public: + explicit DebugRow(const T& t, const U& u) + : first(t) + , second(u) + {} + + const T& first; + const U& second; + } ; + + /** + * @brief List-oriented formatted logging. + * + * Use DebugList to produce multiple rows of output in a debugging + * statement. For instance, + * cDebug() << DebugList( QStringList() << "foo" << "bar" ) + * will produce a single timestamped debug line with continuations. + * Each element of the list of strings will be logged on a separate line. + */ + struct DebugList + { + explicit DebugList( const QStringList& l ) + : list(l) + {} + + const QStringList& list; + } ; + + /** + * @brief Map-oriented formatted logging. + * + * Use DebugMap to produce multiple rows of output in a debugging + * statement from a map. The output is intentionally a bit-yaml-ish. + * cDebug() << DebugMap( map ) + * will produce a single timestamped debug line with continuations. + * The continued lines will have a key (from the map) and a value + * on each line. + */ + struct DebugMap + { + public: + explicit DebugMap(const QVariantMap& m) + : map( m ) + {} + + const QVariantMap& map; + } ; + + /** @brief output operator for DebugRow */ + template + inline QDebug& + operator <<( QDebug& s, const DebugRow& t ) + { + s << continuation << t.first << ':' << ' ' << t.second; + return s; + } + + /** @brief output operator for DebugList */ + inline QDebug& + operator <<( QDebug& s, const DebugList& c ) + { + for( const auto& i : c.list ) + s << continuation << i; + return s; + } + + /** @brief supporting method for outputting a DebugMap */ + QString toString( const QVariant& v ); + + /** @brief output operator for DebugMap */ + inline QDebug& + operator <<( QDebug& s, const DebugMap& t ) + { + for ( auto it = t.map.constBegin(); it != t.map.constEnd(); ++it ) + s << continuation << it.key().toUtf8().constData() << ':' << ' ' << toString( it.value() ).toUtf8().constData(); + return s; + } } -#define cLog Logger::CLog #define cDebug Logger::CDebug -#define cWarning() Logger::CDebug(Logger::LOGWARNING) << "WARNING:" -#define cError() Logger::CDebug(Logger::LOGERROR) << "ERROR:" +#define cWarning() Logger::CDebug(Logger::LOGWARNING) +#define cError() Logger::CDebug(Logger::LOGERROR) #endif // CALAMARES_LOGGER_H diff --git a/src/libcalamares/utils/PluginFactory.cpp b/src/libcalamares/utils/PluginFactory.cpp index d53b6474f..124af16f4 100644 --- a/src/libcalamares/utils/PluginFactory.cpp +++ b/src/libcalamares/utils/PluginFactory.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Based on KPluginFactory from KCoreAddons, KDE project * Copyright 2007, Matthias Kretz diff --git a/src/libcalamares/utils/PluginFactory.h b/src/libcalamares/utils/PluginFactory.h index 0ca7917c4..22966b829 100644 --- a/src/libcalamares/utils/PluginFactory.h +++ b/src/libcalamares/utils/PluginFactory.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Based on KPluginFactory from KCoreAddons, KDE project * Copyright 2007, Matthias Kretz @@ -111,7 +111,7 @@ namespace Calamares * T(QObject *parent, const QVariantList &args) * \endcode * - * You should typically use CALAMARES_PLUGIN_FACTORY_DEFINITION() in your plugin code to + * You should typically use CALAMARES_PLUGIN_FACTORY_DEFINITION() in your plugin code to * create the factory. The pattern is * * \code diff --git a/src/libcalamaresui/utils/YamlUtils.cpp b/src/libcalamares/utils/YamlUtils.cpp similarity index 75% rename from src/libcalamaresui/utils/YamlUtils.cpp rename to src/libcalamares/utils/YamlUtils.cpp index 962cbd1da..474ced2a1 100644 --- a/src/libcalamaresui/utils/YamlUtils.cpp +++ b/src/libcalamares/utils/YamlUtils.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,6 +23,8 @@ #include #include +#include +#include #include void @@ -112,6 +114,19 @@ void explainYamlException( const YAML::Exception& e, const QByteArray& yamlData, const char *label ) { cWarning() << "YAML error " << e.what() << "in" << label << '.'; + explainYamlException( e, yamlData ); +} + +void +explainYamlException( const YAML::Exception& e, const QByteArray& yamlData, const QString& label ) +{ + cWarning() << "YAML error " << e.what() << "in" << label << '.'; + explainYamlException( e, yamlData ); +} + +void +explainYamlException( const YAML::Exception& e, const QByteArray& yamlData ) +{ if ( ( e.mark.line >= 0 ) && ( e.mark.column >= 0 ) ) { // Try to show the line where it happened. @@ -146,4 +161,46 @@ explainYamlException( const YAML::Exception& e, const QByteArray& yamlData, cons } } +QVariantMap +loadYaml(const QFileInfo& fi, bool* ok) +{ + return loadYaml( fi.absoluteFilePath(), ok ); +} + +QVariantMap +loadYaml(const QString& filename, bool* ok) +{ + if ( ok ) + *ok = false; + + QFile descriptorFile( filename ); + QVariant moduleDescriptor; + if ( descriptorFile.exists() && descriptorFile.open( QFile::ReadOnly | QFile::Text ) ) + { + QByteArray ba = descriptorFile.readAll(); + try + { + YAML::Node doc = YAML::Load( ba.constData() ); + moduleDescriptor = CalamaresUtils::yamlToVariant( doc ); + } + catch ( YAML::Exception& e ) + { + explainYamlException( e, ba, filename ); + return QVariantMap(); + } + } + + + if ( moduleDescriptor.isValid() && + !moduleDescriptor.isNull() && + moduleDescriptor.type() == QVariant::Map ) + { + if ( ok ) + *ok = true; + return moduleDescriptor.toMap(); + } + + return QVariantMap(); +} + } // namespace diff --git a/src/libcalamaresui/utils/YamlUtils.h b/src/libcalamares/utils/YamlUtils.h similarity index 71% rename from src/libcalamaresui/utils/YamlUtils.h rename to src/libcalamares/utils/YamlUtils.h index 33ee8dca0..268c0bdc7 100644 --- a/src/libcalamaresui/utils/YamlUtils.h +++ b/src/libcalamares/utils/YamlUtils.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -24,6 +24,7 @@ #include class QByteArray; +class QFileInfo; namespace YAML { @@ -35,6 +36,15 @@ void operator>>( const YAML::Node& node, QStringList& v ); namespace CalamaresUtils { +/** + * Loads a given @p filename and returns the YAML data + * as a QVariantMap. If filename doesn't exist, or is + * malformed in some way, returns an empty map and sets + * @p *ok to false. Otherwise sets @p *ok to true. + */ +QVariantMap loadYaml( const QString& filename, bool* ok = nullptr ); +/** Convenience overload. */ +QVariantMap loadYaml( const QFileInfo&, bool* ok = nullptr ); QVariant yamlToVariant( const YAML::Node& node ); QVariant yamlScalarToVariant( const YAML::Node& scalarNode ); @@ -47,6 +57,8 @@ QVariant yamlMapToVariant( const YAML::Node& mapNode ); * Uses @p label when labeling the data source (e.g. "netinstall data") */ void explainYamlException( const YAML::Exception& e, const QByteArray& data, const char *label ); +void explainYamlException( const YAML::Exception& e, const QByteArray& data, const QString& label ); +void explainYamlException( const YAML::Exception& e, const QByteArray& data ); } //ns diff --git a/src/libcalamaresui/Branding.cpp b/src/libcalamaresui/Branding.cpp index 5677f212e..086e20b7d 100644 --- a/src/libcalamaresui/Branding.cpp +++ b/src/libcalamaresui/Branding.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -179,12 +179,12 @@ Branding::Branding( const QString& brandingFilePath, } catch ( YAML::Exception& e ) { - cWarning() << "YAML parser error " << e.what() << "in" << file.fileName(); + CalamaresUtils::explainYamlException( e, ba, file.fileName() ); } QDir translationsDir( componentDir.filePath( "lang" ) ); if ( !translationsDir.exists() ) - cWarning() << "the selected branding component does not ship translations."; + cWarning() << "the branding component" << componentDir.absolutePath() << "does not ship translations."; m_translationsPathPrefix = translationsDir.absolutePath(); m_translationsPathPrefix.append( QString( "%1calamares-%2" ) .arg( QDir::separator() ) @@ -192,7 +192,7 @@ Branding::Branding( const QString& brandingFilePath, } else { - cWarning() << "Cannot read " << file.fileName(); + cWarning() << "Cannot read branding file" << file.fileName(); } s_instance = this; diff --git a/src/libcalamaresui/CMakeLists.txt b/src/libcalamaresui/CMakeLists.txt index 335dc712a..be8c476e8 100644 --- a/src/libcalamaresui/CMakeLists.txt +++ b/src/libcalamaresui/CMakeLists.txt @@ -11,12 +11,12 @@ set( calamaresui_SOURCES utils/CalamaresUtilsGui.cpp utils/DebugWindow.cpp utils/ImageRegistry.cpp - utils/YamlUtils.cpp utils/qjsonmodel.cpp utils/qjsonitem.cpp viewpages/AbstractPage.cpp + viewpages/BlankViewStep.cpp viewpages/ViewStep.cpp widgets/ClickableLabel.cpp @@ -26,7 +26,6 @@ set( calamaresui_SOURCES ExecutionViewStep.cpp Branding.cpp - Settings.cpp ViewManager.cpp ) @@ -72,7 +71,6 @@ calamares_add_library( calamaresui UI ${calamaresui_UI} EXPORT_MACRO UIDLLEXPORT_PRO LINK_PRIVATE_LIBRARIES - ${YAMLCPP_LIBRARY} ${OPTIONAL_PRIVATE_LIBRARIES} LINK_LIBRARIES Qt5::Svg diff --git a/src/libcalamaresui/ExecutionViewStep.cpp b/src/libcalamaresui/ExecutionViewStep.cpp index 0a9850fd7..b505102a4 100644 --- a/src/libcalamaresui/ExecutionViewStep.cpp +++ b/src/libcalamaresui/ExecutionViewStep.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -20,6 +21,7 @@ #include #include "Branding.h" +#include "Job.h" #include "JobQueue.h" #include "modulesystem/Module.h" #include "modulesystem/ModuleManager.h" @@ -64,7 +66,7 @@ ExecutionViewStep::ExecutionViewStep( QObject* parent ) innerLayout->addWidget( m_progressBar ); innerLayout->addWidget( m_label ); - cDebug() << "QML import paths:" << m_slideShow->engine()->importPathList(); + cDebug() << "QML import paths:" << Logger::DebugList( m_slideShow->engine()->importPathList() ); connect( JobQueue::instance(), &JobQueue::progress, this, &ExecutionViewStep::updateFromJobQueue ); @@ -141,7 +143,15 @@ ExecutionViewStep::onActivate() Calamares::Module* module = Calamares::ModuleManager::instance() ->moduleInstance( instanceKey ); if ( module ) - queue->enqueue( module->jobs() ); + { + auto jl = module->jobs(); + if ( module->isEmergency() ) + { + for( auto& j : jl ) + j->setEmergency( true ); + } + queue->enqueue( jl ); + } } queue->start(); diff --git a/src/libcalamaresui/ViewManager.cpp b/src/libcalamaresui/ViewManager.cpp index 2be3e3832..2b9f87db8 100644 --- a/src/libcalamaresui/ViewManager.cpp +++ b/src/libcalamaresui/ViewManager.cpp @@ -20,6 +20,7 @@ #include "ViewManager.h" #include "utils/Logger.h" +#include "viewpages/BlankViewStep.h" #include "viewpages/ViewStep.h" #include "ExecutionViewStep.h" #include "JobQueue.h" @@ -150,9 +151,9 @@ ViewManager::insertViewStep( int before, ViewStep* step ) void ViewManager::onInstallationFailed( const QString& message, const QString& details ) { - cLog() << "Installation failed:"; - cLog() << "- message:" << message; - cLog() << "- details:" << details; + cError() << "Installation failed:"; + cDebug() << "- message:" << message; + cDebug() << "- details:" << details; QMessageBox* msgBox = new QMessageBox(); msgBox->setIcon( QMessageBox::Critical ); @@ -167,11 +168,32 @@ ViewManager::onInstallationFailed( const QString& message, const QString& detail msgBox->setInformativeText( text ); connect( msgBox, &QMessageBox::buttonClicked, qApp, &QApplication::quit ); - cLog() << "Calamares will quit when the dialog closes."; + cDebug() << "Calamares will quit when the dialog closes."; msgBox->show(); } +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( "
The following modules could not be loaded:" ) ); + QStringList details; + details << QLatin1Literal("
    "); + for( const auto& m : modules ) + details << QLatin1Literal("
  • ") << m << QLatin1Literal("
  • "); + details << QLatin1Literal("
"); + detailString = details.join( QString() ); + } + + insertViewStep( 0, new BlankViewStep( title, description.arg( *Calamares::Branding::ShortProductName ), detailString ) ); +} + ViewStepList ViewManager::viewSteps() const { diff --git a/src/libcalamaresui/ViewManager.h b/src/libcalamaresui/ViewManager.h index e4f215f8f..ee199f725 100644 --- a/src/libcalamaresui/ViewManager.h +++ b/src/libcalamaresui/ViewManager.h @@ -117,6 +117,12 @@ public slots: */ void onInstallationFailed( const QString& message, const QString& details ); + /** @brief Replaces the stack with a view step stating that initialization failed. + * + * @param modules a list of failed modules. + */ + void onInitFailed( const QStringList& modules ); + signals: void currentStepChanged(); void enlarge( QSize enlarge ) const; // See ViewStep::enlarge() diff --git a/src/libcalamaresui/modulesystem/CppJobModule.cpp b/src/libcalamaresui/modulesystem/CppJobModule.cpp index 9799066e7..3a48e29f2 100644 --- a/src/libcalamaresui/modulesystem/CppJobModule.cpp +++ b/src/libcalamaresui/modulesystem/CppJobModule.cpp @@ -26,7 +26,8 @@ #include #include -namespace Calamares { +namespace Calamares +{ Module::Type @@ -55,7 +56,7 @@ CppJobModule::loadSelf() return; } - CppJob *cppJob = pf->create< Calamares::CppJob >(); + CppJob* cppJob = pf->create< Calamares::CppJob >(); if ( !cppJob ) { cDebug() << Q_FUNC_INFO << m_loader->errorString(); @@ -68,7 +69,7 @@ CppJobModule::loadSelf() cppJob->setModuleInstanceKey( instanceKey() ); cppJob->setConfigurationMap( m_configurationMap ); - m_job = Calamares::job_ptr( static_cast< Calamares::Job * >( cppJob ) ); + m_job = Calamares::job_ptr( static_cast< Calamares::Job* >( cppJob ) ); m_loaded = true; cDebug() << "CppJobModule" << instanceKey() << "loading complete."; } diff --git a/src/libcalamaresui/modulesystem/Module.cpp b/src/libcalamaresui/modulesystem/Module.cpp index 5d3ce1fbb..217761937 100644 --- a/src/libcalamaresui/modulesystem/Module.cpp +++ b/src/libcalamaresui/modulesystem/Module.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -44,13 +44,7 @@ #include -// Example module.desc -/* ---- -type: "view" #job or view -name: "foo" #the module name. must be unique and same as the parent directory -interface: "qtplugin" #can be: qtplugin, python, process, ... -*/ +static const char EMERGENCY[] = "emergency"; namespace Calamares { @@ -64,64 +58,56 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, const QString& configFileName, const QString& moduleDirectory ) { - Module* m = nullptr; + std::unique_ptr m; QString typeString = moduleDescriptor.value( "type" ).toString(); QString intfString = moduleDescriptor.value( "interface" ).toString(); - if ( typeString.isEmpty() || - intfString.isEmpty() ) + if ( typeString.isEmpty() || intfString.isEmpty() ) { - cLog() << Q_FUNC_INFO << "bad module descriptor format" - << instanceId; + cError() << "Bad module descriptor format" << instanceId; return nullptr; } if ( ( typeString == "view" ) || ( typeString == "viewmodule" ) ) { if ( intfString == "qtplugin" ) - { - m = new ViewModule(); - } + m.reset( new ViewModule() ); else if ( intfString == "pythonqt" ) { #ifdef WITH_PYTHONQT - m = new PythonQtViewModule(); + m.reset( new PythonQtViewModule() ); #else - cLog() << "PythonQt modules are not supported in this version of Calamares."; + cError() << "PythonQt view modules are not supported in this version of Calamares."; #endif } else - cLog() << "Bad interface" << intfString << "for module type" << typeString; + cError() << "Bad interface" << intfString << "for module type" << typeString; } else if ( typeString == "job" ) { if ( intfString == "qtplugin" ) - { - m = new CppJobModule(); - } + m.reset( new CppJobModule() ); else if ( intfString == "process" ) - { - m = new ProcessJobModule(); - } + m.reset( new ProcessJobModule() ); else if ( intfString == "python" ) { #ifdef WITH_PYTHON - m = new PythonJobModule(); + m.reset( new PythonJobModule() ); #else - cLog() << "Python modules are not supported in this version of Calamares."; + cError() << "Python modules are not supported in this version of Calamares."; #endif } else - cLog() << "Bad interface" << intfString << "for module type" << typeString; + cError() << "Bad interface" << intfString << "for module type" << typeString; } else - cLog() << "Bad module type" << typeString; + cError() << "Bad module type" << typeString; if ( !m ) { - cLog() << "Bad module type (" << typeString - << ") or interface string (" << intfString - << ") for module " << instanceId; + cError() << "Bad module type (" << typeString + << ") or interface string (" << intfString + << ") for module " << instanceId; return nullptr; } @@ -130,9 +116,7 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, m->m_directory = moduleDir.absolutePath(); else { - cLog() << Q_FUNC_INFO << "bad module directory" - << instanceId; - delete m; + cError() << "Bad module directory" << moduleDirectory << "for" << instanceId; return nullptr; } @@ -145,43 +129,36 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor, } catch ( YAML::Exception& e ) { - cWarning() << "YAML parser error " << e.what(); - delete m; + cError() << "YAML parser error " << e.what(); return nullptr; } - return m; + return m.release(); } -void -Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Exception +static QStringList +moduleConfigurationCandidates( bool assumeBuildDir, const QString& moduleName, const QString& configFileName ) { - QStringList configFilesByPriority; + QStringList paths; if ( CalamaresUtils::isAppDataDirOverridden() ) - { - configFilesByPriority.append( - CalamaresUtils::appDataDir().absoluteFilePath( - QString( "modules/%1" ).arg( configFileName ) ) ); - } + paths << CalamaresUtils::appDataDir().absoluteFilePath( QString( "modules/%1" ).arg( configFileName ) ); else { - if ( Settings::instance()->debugMode() ) - { - configFilesByPriority.append( - QDir( QDir::currentPath() ).absoluteFilePath( - QString( "src/modules/%1/%2" ).arg( m_name ) - .arg( configFileName ) ) ); - } + if ( assumeBuildDir ) + paths << QDir().absoluteFilePath(QString( "src/modules/%1/%2" ).arg( moduleName ).arg( configFileName ) ); - configFilesByPriority.append( - QString( "/etc/calamares/modules/%1" ).arg( configFileName ) ); - configFilesByPriority.append( - CalamaresUtils::appDataDir().absoluteFilePath( - QString( "modules/%2" ).arg( configFileName ) ) ); + paths << QString( "/etc/calamares/modules/%1" ).arg( configFileName ); + paths << CalamaresUtils::appDataDir().absoluteFilePath( QString( "modules/%1" ).arg( configFileName ) ); } - foreach ( const QString& path, configFilesByPriority ) + return paths; +} + +void +Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Exception +{ + foreach ( const QString& path, moduleConfigurationCandidates( Settings::instance()->debugMode(), m_name, configFileName ) ) { QFile configFile( path ); if ( configFile.exists() && configFile.open( QFile::ReadOnly | QFile::Text ) ) @@ -202,6 +179,9 @@ Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Ex } m_configurationMap = CalamaresUtils::yamlMapToVariant( doc ).toMap(); + m_emergency = m_maybe_emergency + && m_configurationMap.contains( EMERGENCY ) + && m_configurationMap[ EMERGENCY ].toBool(); return; } else @@ -227,8 +207,7 @@ Module::instanceId() const QString Module::instanceKey() const { - return QString( "%1@%2" ).arg( m_name ) - .arg( m_instanceId ); + return QString( "%1@%2" ).arg( m_name ).arg( m_instanceId ); } @@ -271,13 +250,6 @@ Module::interfaceString() const } -bool -Module::isLoaded() const -{ - return m_loaded; -} - - QVariantMap Module::configurationMap() { @@ -294,6 +266,8 @@ void Module::initFrom( const QVariantMap& moduleDescriptor ) { m_name = moduleDescriptor.value( "name" ).toString(); + if ( moduleDescriptor.contains( EMERGENCY ) ) + m_maybe_emergency = moduleDescriptor[ EMERGENCY ].toBool(); } RequirementsList diff --git a/src/libcalamaresui/modulesystem/Module.h b/src/libcalamaresui/modulesystem/Module.h index f9ab2341e..218270825 100644 --- a/src/libcalamaresui/modulesystem/Module.h +++ b/src/libcalamaresui/modulesystem/Module.h @@ -142,7 +142,10 @@ public: * @brief isLoaded reports on the loaded status of a module. * @return true if the module's loading phase has finished, otherwise false. */ - virtual bool isLoaded() const; + bool isLoaded() const + { + return m_loaded; + } /** * @brief loadSelf initialized the module. @@ -150,6 +153,20 @@ public: */ virtual void loadSelf() = 0; + /** + * @brief Is this an emergency module? + * + * An emergency module is run even if an error occurs + * which would terminate Calamares earlier in the same + * *exec* block. Emergency modules in later exec blocks + * are not run (in the common case where there is only + * one exec block, this doesn't really matter). + */ + bool isEmergency() const + { + return m_emergency; + } + /** * @brief jobs returns any jobs exposed by this module. * @return a list of jobs (can be empty). @@ -171,9 +188,12 @@ public: protected: explicit Module(); virtual void initFrom( const QVariantMap& moduleDescriptor ); - bool m_loaded; QVariantMap m_configurationMap; + bool m_loaded = false; + bool m_emergency = false; // Based on module and local config + bool m_maybe_emergency = false; // Based on the module.desc + private: void loadConfigurationFile( const QString& configFileName ); //throws YAML::Exception diff --git a/src/libcalamaresui/modulesystem/ModuleManager.cpp b/src/libcalamaresui/modulesystem/ModuleManager.cpp index fc06296b2..722aa7296 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.cpp +++ b/src/libcalamaresui/modulesystem/ModuleManager.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -59,10 +60,8 @@ ModuleManager::ModuleManager( const QStringList& paths, QObject* parent ) ModuleManager::~ModuleManager() { // The map is populated with Module::fromDescriptor(), which allocates on the heap. - for( auto moduleptr : m_loadedModulesByInstanceKey ) - { + for ( auto moduleptr : m_loadedModulesByInstanceKey ) delete moduleptr; - } } @@ -103,53 +102,30 @@ ModuleManager::doInit() continue; } - QFile descriptorFile( descriptorFileInfo.absoluteFilePath() ); - QVariant moduleDescriptor; - if ( descriptorFile.exists() && descriptorFile.open( QFile::ReadOnly | QFile::Text ) ) - { - QByteArray ba = descriptorFile.readAll(); - try - { - YAML::Node doc = YAML::Load( ba.constData() ); - - moduleDescriptor = CalamaresUtils::yamlToVariant( doc ); - } - catch ( YAML::Exception& e ) - { - cWarning() << "YAML parser error " << e.what(); - continue; - } - } - + bool ok = false; + QVariantMap moduleDescriptorMap = CalamaresUtils::loadYaml( descriptorFileInfo, &ok ); + QString moduleName = ok ? moduleDescriptorMap.value( "name" ).toString() : QString(); - if ( moduleDescriptor.isValid() && - !moduleDescriptor.isNull() && - moduleDescriptor.type() == QVariant::Map ) + if ( ok && ( moduleName == currentDir.dirName() ) && + !m_availableDescriptorsByModuleName.contains( moduleName ) ) { - QVariantMap moduleDescriptorMap = moduleDescriptor.toMap(); - - if ( moduleDescriptorMap.value( "name" ) == currentDir.dirName() && - !m_availableDescriptorsByModuleName.contains( moduleDescriptorMap.value( "name" ).toString() ) ) - { - m_availableDescriptorsByModuleName.insert( moduleDescriptorMap.value( "name" ).toString(), - moduleDescriptorMap ); - m_moduleDirectoriesByModuleName.insert( moduleDescriptorMap.value( "name" ).toString(), - descriptorFileInfo.absoluteDir().absolutePath() ); - } + m_availableDescriptorsByModuleName.insert( moduleName, moduleDescriptorMap ); + m_moduleDirectoriesByModuleName.insert( moduleName, + descriptorFileInfo.absoluteDir().absolutePath() ); } } else { cWarning() << "Cannot cd into module directory " - << path << "/" << subdir; + << path << "/" << subdir; } } } else - { cDebug() << "ModuleManager bad search path" << path; - } } + // At this point m_availableModules is filled with whatever was found in the + // search paths. emit initDone(); } @@ -174,16 +150,37 @@ 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 = - Settings::instance()->customModuleInstances(); + QStringList failedModules = checkDependencies(); + Settings::InstanceDescriptionList customInstances = + Settings::instance()->customModuleInstances(); - const auto modulesSequence = Settings::instance()->modulesSequence(); - for ( const auto &modulePhase : modulesSequence ) + const auto modulesSequence = failedModules.isEmpty() ? Settings::instance()->modulesSequence() : Settings::ModuleSequence(); + for ( const auto& modulePhase : modulesSequence ) { ModuleAction currentAction = modulePhase.first; @@ -195,52 +192,36 @@ ModuleManager::loadModules() QString instanceId; QString configFileName; if ( moduleEntrySplit.length() < 1 || - moduleEntrySplit.length() > 2 ) + moduleEntrySplit.length() > 2 ) { - cError() << "Wrong module entry format for module" << moduleEntry << "." - << "\nCalamares 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(); configFileName = QString( "%1.conf" ).arg( moduleName ); if ( !m_availableDescriptorsByModuleName.contains( moduleName ) || - m_availableDescriptorsByModuleName.value( moduleName ).isEmpty() ) + m_availableDescriptorsByModuleName.value( moduleName ).isEmpty() ) { cError() << "Module" << moduleName << "not found in module search paths." - << "\nCalamares will now quit."; - qApp->exit( 1 ); - return; + << Logger::DebugList( m_paths ); + 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 ) - { - configFileName = customInstances[ findCustomInstance( moduleName, instanceId ) ].value( "config" ); - } + int found = findCustomInstance( customInstances, moduleName, instanceId ); + + if ( found > -1 ) + 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." - << "\nCalamares will now quit."; - qApp->exit( 1 ); - return; + cError() << "Custom instance" << moduleEntry << "not found in custom instances section."; + failedModules.append( moduleEntry ); + continue; } } @@ -260,16 +241,13 @@ 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() ) - { cDebug() << "Module" << instanceKey << "already loaded."; - } else { thisModule = @@ -279,17 +257,25 @@ 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 ( !checkDependencies( *thisModule ) ) + { + // Error message is already printed + failedModules.append( instanceKey ); continue; } + // If it's a ViewModule, it also appends the ViewStep to the ViewManager. thisModule->loadSelf(); m_loadedModulesByInstanceKey.insert( instanceKey, thisModule ); - Q_ASSERT( thisModule->isLoaded() ); if ( !thisModule->isLoaded() ) { - cWarning() << "Module" << moduleName << "loading FAILED"; + cError() << "Module" << instanceKey << "loading FAILED."; + failedModules.append( instanceKey ); continue; } } @@ -311,7 +297,13 @@ ModuleManager::loadModules() } } } - emit modulesLoaded(); + if ( !failedModules.isEmpty() ) + { + ViewManager::instance()->onInitFailed( failedModules ); + emit modulesFailed( failedModules ); + } + else + emit modulesLoaded(); } ); } @@ -342,4 +334,63 @@ ModuleManager::checkRequirements() } ); } +QStringList +ModuleManager::checkDependencies() +{ + QStringList failed; + + // This goes through the map of available modules, and deletes those whose + // dependencies are not met, if any. + forever + { + bool somethingWasRemovedBecauseOfUnmetDependencies = false; + for ( auto it = m_availableDescriptorsByModuleName.begin(); + it != m_availableDescriptorsByModuleName.end(); ++it ) + { + foreach ( const QString& depName, + it->value( "requiredModules" ).toStringList() ) + { + if ( !m_availableDescriptorsByModuleName.contains( depName ) ) + { + QString moduleName = it->value( "name" ).toString(); + somethingWasRemovedBecauseOfUnmetDependencies = true; + m_availableDescriptorsByModuleName.erase( it ); + failed << moduleName; + cWarning() << "Module" << moduleName << "has unknown requirement" << depName; + break; + } + } + } + if ( !somethingWasRemovedBecauseOfUnmetDependencies ) + break; + } + + return failed; +} + +bool +ModuleManager::checkDependencies( const Module& m ) +{ + bool allRequirementsFound = true; + QStringList requiredModules = m_availableDescriptorsByModuleName[ m.name() ].value( "requiredModules" ).toStringList(); + + for ( const QString& required : requiredModules ) + { + bool requirementFound = false; + for( const Module* v : m_loadedModulesByInstanceKey ) + if ( required == v->name() ) + { + requirementFound = true; + break; + } + if ( !requirementFound ) + { + cError() << "Module" << m.name() << "requires" << required << "before it in sequence."; + allRequirementsFound = false; + } + } + + return allRequirementsFound; +} + } // namespace diff --git a/src/libcalamaresui/modulesystem/ModuleManager.h b/src/libcalamaresui/modulesystem/ModuleManager.h index 24e24130a..20ebffd7e 100644 --- a/src/libcalamaresui/modulesystem/ModuleManager.h +++ b/src/libcalamaresui/modulesystem/ModuleManager.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -90,7 +91,8 @@ public: signals: void initDone(); - void modulesLoaded(); + void modulesLoaded(); /// All of the modules were loaded successfully + void modulesFailed( QStringList ); /// .. or not void requirementsComplete( bool ); void requirementsResult( RequirementsList& ); @@ -98,6 +100,26 @@ private slots: void doInit(); private: + /** + * Check in a general sense whether the dependencies between + * modules are valid. Returns a list of module names that + * do **not** have their requirements met. + * + * Returns an empty list on success. + * + * Also modifies m_availableDescriptorsByModuleName to remove + * all the entries that fail. + */ + QStringList checkDependencies(); + + /** + * Check for this specific module if its required modules have + * already been loaded (i.e. are in sequence before it). + * + * Returns true if the requirements are met. + */ + bool checkDependencies( const Module& ); + QMap< QString, QVariantMap > m_availableDescriptorsByModuleName; QMap< QString, QString > m_moduleDirectoriesByModuleName; QMap< QString, Module* > m_loadedModulesByInstanceKey; diff --git a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp index d8e171977..9037d85a6 100644 --- a/src/libcalamaresui/modulesystem/ProcessJobModule.cpp +++ b/src/libcalamaresui/modulesystem/ProcessJobModule.cpp @@ -22,7 +22,8 @@ #include -namespace Calamares { +namespace Calamares +{ Module::Type @@ -68,23 +69,17 @@ ProcessJobModule::initFrom( const QVariantMap& moduleDescriptor ) m_workingPath = directory.absolutePath(); if ( !moduleDescriptor.value( "command" ).toString().isEmpty() ) - { m_command = moduleDescriptor.value( "command" ).toString(); - } m_secondsTimeout = 30; if ( moduleDescriptor.contains( "timeout" ) && - !moduleDescriptor.value( "timeout" ).isNull() ) - { + !moduleDescriptor.value( "timeout" ).isNull() ) m_secondsTimeout = moduleDescriptor.value( "timeout" ).toInt(); - } m_runInChroot = false; if ( moduleDescriptor.contains( "chroot" )&& - !moduleDescriptor.value( "chroot" ).isNull() ) - { + !moduleDescriptor.value( "chroot" ).isNull() ) m_runInChroot = moduleDescriptor.value( "chroot" ).toBool(); - } } diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.cpp b/src/libcalamaresui/modulesystem/PythonJobModule.cpp index 586eb6e27..7099a3f72 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonJobModule.cpp @@ -23,7 +23,8 @@ #include -namespace Calamares { +namespace Calamares +{ Module::Type @@ -46,9 +47,7 @@ PythonJobModule::loadSelf() if ( m_loaded ) return; - m_job = Calamares::job_ptr( new PythonJob( m_scriptFileName, - m_workingPath, - m_configurationMap ) ); + m_job = Calamares::job_ptr( new PythonJob( m_scriptFileName, m_workingPath, m_configurationMap ) ); m_loaded = true; } @@ -68,9 +67,7 @@ PythonJobModule::initFrom( const QVariantMap& moduleDescriptor ) m_workingPath = directory.absolutePath(); if ( !moduleDescriptor.value( "script" ).toString().isEmpty() ) - { m_scriptFileName = moduleDescriptor.value( "script" ).toString(); - } } diff --git a/src/libcalamaresui/modulesystem/PythonJobModule.h b/src/libcalamaresui/modulesystem/PythonJobModule.h index 78678bcf8..38b10be83 100644 --- a/src/libcalamaresui/modulesystem/PythonJobModule.h +++ b/src/libcalamaresui/modulesystem/PythonJobModule.h @@ -23,7 +23,8 @@ #include "UiDllMacro.h" -namespace Calamares { +namespace Calamares +{ class UIDLLEXPORT PythonJobModule : public Module { diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp index e2b497f2e..9d0aa95e2 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.cpp @@ -1,6 +1,8 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * Copyright 2018, Raul Rodrigo Segura * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -38,7 +40,8 @@ static QPointer< GlobalStorage > s_gs = nullptr; static QPointer< Utils > s_utils = nullptr; -namespace Calamares { +namespace Calamares +{ Module::Type PythonQtViewModule::type() const @@ -95,18 +98,22 @@ 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 ) - { - cDebug() << "PythonQt OUT>" << message; - } ); + []( const QString& message ) + { + cDebug() << "PythonQt OUT>" << message; + } + ); QObject::connect( PythonQt::self(), &PythonQt::pythonStdErr, - []( const QString& message ) - { - cDebug() << "PythonQt ERR>" << message; - } ); - + []( const QString& message ) + { + cDebug() << "PythonQt ERR>" << message; + } + ); } QDir workingDir( m_workingPath ); @@ -132,8 +139,8 @@ PythonQtViewModule::loadSelf() // Construct empty Python module with the given name PythonQtObjectPtr cxt = - PythonQt::self()-> - createModuleFromScript( name() ); + PythonQt::self()-> + createModuleFromScript( name() ); if ( cxt.isNull() ) { cDebug() << "Cannot load PythonQt context from file" @@ -143,12 +150,12 @@ PythonQtViewModule::loadSelf() return; } - QString calamares_module_annotation = - "_calamares_module_typename = ''\n" - "def calamares_module(viewmodule_type):\n" - " global _calamares_module_typename\n" - " _calamares_module_typename = viewmodule_type.__name__\n" - " return viewmodule_type\n"; + static const QLatin1Literal calamares_module_annotation( + "_calamares_module_typename = ''\n" + "def calamares_module(viewmodule_type):\n" + " global _calamares_module_typename\n" + " _calamares_module_typename = viewmodule_type.__name__\n" + " return viewmodule_type\n" ); // Load in the decorator PythonQt::self()->evalScript( cxt, calamares_module_annotation ); @@ -186,9 +193,7 @@ PythonQtViewModule::initFrom( const QVariantMap& moduleDescriptor ) m_workingPath = directory.absolutePath(); if ( !moduleDescriptor.value( "script" ).toString().isEmpty() ) - { m_scriptFileName = moduleDescriptor.value( "script" ).toString(); - } } PythonQtViewModule::PythonQtViewModule() diff --git a/src/libcalamaresui/modulesystem/PythonQtViewModule.h b/src/libcalamaresui/modulesystem/PythonQtViewModule.h index 327e24269..cc6899599 100644 --- a/src/libcalamaresui/modulesystem/PythonQtViewModule.h +++ b/src/libcalamaresui/modulesystem/PythonQtViewModule.h @@ -22,7 +22,8 @@ #include "UiDllMacro.h" #include "Module.h" -namespace Calamares { +namespace Calamares +{ class ViewStep; diff --git a/src/libcalamaresui/modulesystem/ViewModule.cpp b/src/libcalamaresui/modulesystem/ViewModule.cpp index 21e804199..e24014621 100644 --- a/src/libcalamaresui/modulesystem/ViewModule.cpp +++ b/src/libcalamaresui/modulesystem/ViewModule.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,7 +27,8 @@ #include #include -namespace Calamares { +namespace Calamares +{ Module::Type @@ -52,27 +53,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"; } diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp index b05d4ea4f..425ee1811 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.cpp +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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() } diff --git a/src/libcalamaresui/utils/CalamaresUtilsGui.h b/src/libcalamaresui/utils/CalamaresUtilsGui.h index c0905d4d0..4b041466d 100644 --- a/src/libcalamaresui/utils/CalamaresUtilsGui.h +++ b/src/libcalamaresui/utils/CalamaresUtilsGui.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -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(); /** diff --git a/src/libcalamaresui/viewpages/BlankViewStep.cpp b/src/libcalamaresui/viewpages/BlankViewStep.cpp new file mode 100644 index 000000000..243305c1f --- /dev/null +++ b/src/libcalamaresui/viewpages/BlankViewStep.cpp @@ -0,0 +1,118 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ +#include "BlankViewStep.h" + +#include "utils/CalamaresUtilsGui.h" + +#include +#include +#include + +namespace Calamares +{ + +BlankViewStep::BlankViewStep( const QString& title, const QString& description, const QString& details, QObject* parent) + : Calamares::ViewStep( parent ) + , m_widget( new QWidget() ) +{ + QBoxLayout* layout = new QVBoxLayout(); + + 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 diff --git a/src/libcalamaresui/viewpages/BlankViewStep.h b/src/libcalamaresui/viewpages/BlankViewStep.h new file mode 100644 index 000000000..a3f46d1d5 --- /dev/null +++ b/src/libcalamaresui/viewpages/BlankViewStep.h @@ -0,0 +1,65 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef BLANKVIEWSTEP_H +#define BLANKVIEWSTEP_H + +#include + +#include +#include + +class QWidget; + +namespace Calamares +{ + +/** @brief A "blank" view step, used for error and status reporting + * + * 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 diff --git a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h index 4776f17ba..8a8b775fc 100644 --- a/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h +++ b/src/libcalamaresui/viewpages/PythonQtGlobalStorageWrapper.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,8 +20,9 @@ #ifndef PYTHONQTGLOBALSTORAGEWRAPPER_H #define PYTHONQTGLOBALSTORAGEWRAPPER_H - #include +#include +#include namespace Calamares { diff --git a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp index 72e434780..2d128d1af 100644 --- a/src/libcalamaresui/viewpages/PythonQtViewStep.cpp +++ b/src/libcalamaresui/viewpages/PythonQtViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -158,6 +159,24 @@ PythonQtViewStep::isAtEnd() const "is_at_end" } ).toBool(); } +void +PythonQtViewStep::onActivate() +{ + CalamaresUtils::lookupAndCall( m_obj, + { "onActivate", + "onactivate", + "on_activate" }); +} + +void +PythonQtViewStep::onLeave() +{ + CalamaresUtils::lookupAndCall( m_obj, + { "onLeave", + "onleave", + "on_leave" }); +} + JobList PythonQtViewStep::jobs() const diff --git a/src/libcalamaresui/viewpages/PythonQtViewStep.h b/src/libcalamaresui/viewpages/PythonQtViewStep.h index 79862204a..b6b7c193b 100644 --- a/src/libcalamaresui/viewpages/PythonQtViewStep.h +++ b/src/libcalamaresui/viewpages/PythonQtViewStep.h @@ -39,6 +39,8 @@ public: void next() override; void back() override; + void onLeave() override; + void onActivate() override; bool isNextEnabled() const override; bool isBackEnabled() const override; diff --git a/src/modules/CMakeLists.txt b/src/modules/CMakeLists.txt index 7f93c555a..0a8d1db70 100644 --- a/src/modules/CMakeLists.txt +++ b/src/modules/CMakeLists.txt @@ -6,7 +6,7 @@ set( LIST_SKIPPED_MODULES "" ) if( BUILD_TESTING ) add_executable( test_conf test_conf.cpp ) - target_link_libraries( test_conf ${YAMLCPP_LIBRARY} ) + target_link_libraries( test_conf ${YAMLCPP_LIBRARY} Qt5::Core ) target_include_directories( test_conf PUBLIC ${YAMLCPP_INCLUDE_DIR} ) endif() @@ -15,13 +15,34 @@ string( REPLACE " " ";" SKIP_LIST "${SKIP_MODULES}" ) file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" ) list( SORT SUBDIRECTORIES ) +set( _use_categories "" ) +set( _found_categories "" ) + foreach( SUBDIRECTORY ${SUBDIRECTORIES} ) list( FIND SKIP_LIST ${SUBDIRECTORY} DO_SKIP ) + set( _skip_reason "user request" ) + # Handle the USE_ variables by looking for subdirectories + # with a - kind of name. + if( SUBDIRECTORY MATCHES "^[a-zA-Z0-9_]+-" ) + string( REGEX REPLACE "^[^-]+-" "" _implementation ${SUBDIRECTORY} ) + string( REGEX REPLACE "-.*" "" _category ${SUBDIRECTORY} ) + if( USE_${_category} ) + list( APPEND _use_categories ${_category} ) + if( "${_implementation}" STREQUAL "${USE_${_category}}" ) + list( APPEND _found_categories ${_category} ) + else() + list( APPEND SKIP_LIST ${SUBDIRECTORY} ) + set( _skip_reason "USE_${_category}=${USE_${_category}}" ) + set( DO_SKIP 1 ) + endif() + endif() + endif() + if( NOT DO_SKIP EQUAL -1 ) message( "${ColorReset}-- Skipping module ${BoldRed}${SUBDIRECTORY}${ColorReset}." ) message( "" ) - list( APPEND LIST_SKIPPED_MODULES "${SUBDIRECTORY} (user request)" ) + list( APPEND LIST_SKIPPED_MODULES "${SUBDIRECTORY} (${_skip_reason})" ) elseif( ( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}" ) AND ( DO_SKIP EQUAL -1 ) ) set( SKIPPED_MODULES ) @@ -36,5 +57,12 @@ endforeach() # both before and after the feature summary. calamares_explain_skipped_modules( ${LIST_SKIPPED_MODULES} ) +foreach( _category ${_use_categories} ) + list( FIND _found_categories ${_category} _found ) + if ( _found EQUAL -1 ) + message( FATAL_ERROR "USE_${_category} is set to ${USE_${_category}} and no module matches." ) + endif() +endforeach() + include( CalamaresAddTranslations ) add_calamares_python_translations( ${CALAMARES_TRANSLATION_LANGUAGES} ) diff --git a/src/modules/README.md b/src/modules/README.md index a2ec06144..bd6cd4e37 100644 --- a/src/modules/README.md +++ b/src/modules/README.md @@ -43,15 +43,21 @@ module's name, type, interface and possibly other properties. The name of the module as defined in `module.desc` must be the same as the name of the module's directory. -Module descriptors must have the following keys: +Module descriptors **must** have the following keys: - *name* (an identifier; must be the same as the directory name) - *type* ("job" or "view") - *interface* (see below for the different interfaces; generally we refer to the kinds of modules by their interface) +Module descriptors **may** have the following keys: +- *required* **unimplemented** (a list of modules which are required for this module + to operate properly) +- *emergency* (a boolean value, set to true to mark the module + as an emergency module) + ## Module-specific configuration -A Calamares module *may* read a module configuration file, +A Calamares module **may** read a module configuration file, named `.conf`. If such a file is present in the module's directory, it is shipped as a *default* configuration file. The module configuration file, if it exists, is a YAML 1.2 document @@ -125,3 +131,23 @@ while the module type must be "job" or "jobmodule". The key *command* should have a string as value, which is passed to the shell -- remember to quote it properly. +## Emergency Modules + +Only C++ modules and job modules may be emergency modules. If, during an +*exec* step in the sequence, a module fails, installation as a whole fails +and the install is aborted. If there are emergency modules in the **same** +exec block, those will be executed before the installation is aborted. +Non-emergency modules are not executed. + +If an emergency-module fails while processing emergency-modules for +another failed module, that failure is ignored and emergency-module +processing continues. + +Use the EMERGENCY keyword in the CMake description of a C++ module +to generate a suitable `module.desc`. + +A module that is marked as an emergency module in its module.desc +must **also** set the *emergency* key to *true* in its configuration file. +If it does not, the module is not considered to be an emergency module +after all (this is so that you can have modules that have several +instances, only some of which are actually needed for emergencies. diff --git a/src/modules/bootloader/bootloader.conf b/src/modules/bootloader/bootloader.conf index 62c240feb..808a5e6d0 100644 --- a/src/modules/bootloader/bootloader.conf +++ b/src/modules/bootloader/bootloader.conf @@ -1,6 +1,9 @@ +# Bootloader configuration. The bootloader is installed to allow +# the system to start (and pick one of the installed operating +# systems to run). --- # Define which bootloader you want to use for EFI installations -# Possible options are 'grub' and 'systemd-boot'. +# Possible options are 'grub', 'sb-shim' and 'systemd-boot'. efiBootLoader: "grub" # systemd-boot configuration files settings, set kernel and initramfs file names @@ -9,17 +12,25 @@ kernel: "/vmlinuz-linux" img: "/initramfs-linux.img" fallback: "/initramfs-linux-fallback.img" timeout: "10" + # Optionally set the menu entry name and kernel name to use in systemd-boot. # If not specified here, these settings will be taken from branding.desc. +# # bootloaderEntryName: "Generic GNU/Linux" # kernelLine: ", with Stable-Kernel" # fallbackKernelLine: ", with Stable-Kernel (fallback initramfs)" # GRUB 2 binary names and boot directory # Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names. +# These names are also used when using sb-shim, since that needs some +# GRUB functionality (notably grub-probe) to work. As needed, you may use +# complete paths like `/usr/bin/efibootmgr` for the executables. +# grubInstall: "grub-install" grubMkconfig: "grub-mkconfig" grubCfg: "/boot/grub/grub.cfg" +grubProbe: "grub-probe" +efiBootMgr: "efibootmgr" # Optionally set the bootloader ID to use for EFI. This is passed to # grub-install --bootloader-id. @@ -29,8 +40,8 @@ grubCfg: "/boot/grub/grub.cfg" # # The ID is also used as a directory name within the EFI environment, # and the bootloader is copied from /boot/efi/EFI// . When -# setting the option here, take care to use only valid directory -# names since no sanitizing is done. +# setting the option here, keep in mind that the name is sanitized +# (problematic characters, see above, are replaced). # # efiBootloaderId: "dirname" diff --git a/src/modules/bootloader/main.py b/src/modules/bootloader/main.py index db062da52..dec0bda4b 100644 --- a/src/modules/bootloader/main.py +++ b/src/modules/bootloader/main.py @@ -8,7 +8,7 @@ # Copyright 2014, Daniel Hillenbrand # Copyright 2014, Benjamin Vaudour # Copyright 2014, Kevin Kofler -# Copyright 2015-2017, Philip Mueller +# Copyright 2015-2018, Philip Mueller # Copyright 2016-2017, Teo Mrnjavac # Copyright 2017, Alf Gaida # Copyright 2017-2018, Adriaan de Groot @@ -167,6 +167,30 @@ def create_loader(loader_path): loader_file.write(line) +def efi_label(): + if "efiBootloaderId" in libcalamares.job.configuration: + efi_bootloader_id = libcalamares.job.configuration[ + "efiBootloaderId"] + else: + branding = libcalamares.globalstorage.value("branding") + efi_bootloader_id = branding["bootloaderEntryName"] + + file_name_sanitizer = str.maketrans(" /", "_-") + return efi_bootloader_id.translate(file_name_sanitizer) + + +def efi_word_size(): + # get bitness of the underlying UEFI + try: + sysfile = open("/sys/firmware/efi/fw_platform_size", "r") + efi_bitness = sysfile.read(2) + except Exception: + # if the kernel is older than 4.0, the UEFI bitness likely isn't + # exposed to the userspace so we assume a 64 bit UEFI here + efi_bitness = "64" + return efi_bitness + + def install_systemd_boot(efi_directory): """ Installs systemd-boot as bootloader for EFI setups. @@ -218,22 +242,8 @@ def install_grub(efi_directory, fw_type): if not os.path.isdir(install_efi_directory): os.makedirs(install_efi_directory) - if "efiBootloaderId" in libcalamares.job.configuration: - efi_bootloader_id = libcalamares.job.configuration[ - "efiBootloaderId"] - else: - branding = libcalamares.globalstorage.value("branding") - distribution = branding["bootloaderEntryName"] - file_name_sanitizer = str.maketrans(" /", "_-") - efi_bootloader_id = distribution.translate(file_name_sanitizer) - # get bitness of the underlying UEFI - try: - sysfile = open("/sys/firmware/efi/fw_platform_size", "r") - efi_bitness = sysfile.read(2) - except Exception: - # if the kernel is older than 4.0, the UEFI bitness likely isn't - # exposed to the userspace so we assume a 64 bit UEFI here - efi_bitness = "64" + efi_bootloader_id = efi_label() + efi_bitness = efi_word_size() if efi_bitness == "32": efi_target = "i386-efi" @@ -299,6 +309,57 @@ def install_grub(efi_directory, fw_type): "-o", libcalamares.job.configuration["grubCfg"]]) +def install_secureboot(efi_directory): + """ + Installs the secureboot shim in the system by calling efibootmgr. + """ + efi_bootloader_id = efi_label() + + install_path = libcalamares.globalstorage.value("rootMountPoint") + install_efi_directory = install_path + efi_directory + + if efi_word_size() == "64": + install_efi_bin = "shim64.efi" + else: + install_efi_bin = "shim.efi" + + # Copied, roughly, from openSUSE's install script, + # and pythonified. *disk* is something like /dev/sda, + # while *drive* may return "(disk/dev/sda,gpt1)" .. + # we're interested in the numbers in the second part + # of that tuple. + efi_drive = subprocess.check_output([ + libcalamares.job.configuration["grubProbe"], + "-t", "drive", "--device-map=", install_efi_directory]) + efi_disk = subprocess.check_output([ + libcalamares.job.configuration["grubProbe"], + "-t", "disk", "--device-map=", install_efi_directory]) + + efi_drive_partition = efi_drive.replace("(","").replace(")","").split(",")[1] + # Get the first run of digits from the partition + efi_partititon_number = None + c = 0 + start = None + while c < len(efi_drive_partition): + if efi_drive_partition[c].isdigit() and start is None: + start = c + if not efi_drive_partition[c].isdigit() and start is not None: + efi_drive_number = efi_drive_partition[start:c] + break + c += 1 + if efi_partititon_number is None: + raise ValueError("No partition number found for %s" % install_efi_directory) + + subprocess.call([ + libcalamares.job.configuration["efiBootMgr"], + "-c", + "-w", + "-L", efi_bootloader_id, + "-d", efi_disk, + "-p", efi_partititon_number, + "-l", install_efi_directory + "/" + install_efi_bin]) + + def vfat_correct_case(parent, name): for candidate in os.listdir(parent): if name.lower() == candidate.lower(): @@ -320,8 +381,14 @@ def prepare_bootloader(fw_type): if efi_boot_loader == "systemd-boot" and fw_type == "efi": install_systemd_boot(efi_directory) - else: + elif efi_boot_loader == "sb-shim" and fw_type == "efi": + install_secureboot(efi_directory) + elif efi_boot_loader == "grub" or fw_type != "efi": install_grub(efi_directory, fw_type) + else: + libcalamares.utils.debug( "WARNING: the combination of " + "boot-loader '{!s}' and firmware '{!s}' " + "is not supported.".format(efi_boot_loader, fw_type) ) def run(): diff --git a/src/modules/contextualprocess/ContextualProcessJob.cpp b/src/modules/contextualprocess/ContextualProcessJob.cpp index 380a92d0a..d79297029 100644 --- a/src/modules/contextualprocess/ContextualProcessJob.cpp +++ b/src/modules/contextualprocess/ContextualProcessJob.cpp @@ -66,7 +66,7 @@ struct ContextualProcessBinding void append( const QString& value, CalamaresUtils::CommandList* commands ) { checks.append( ValueCheck( value, commands ) ); - if ( value == '*' ) + if ( value == QString( "*" ) ) wildcard = commands; } diff --git a/src/modules/contextualprocess/Tests.cpp b/src/modules/contextualprocess/Tests.cpp index ed6d4f278..89fb1922c 100644 --- a/src/modules/contextualprocess/Tests.cpp +++ b/src/modules/contextualprocess/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/contextualprocess/contextualprocess.conf b/src/modules/contextualprocess/contextualprocess.conf index 1f148328c..74bd2304a 100644 --- a/src/modules/contextualprocess/contextualprocess.conf +++ b/src/modules/contextualprocess/contextualprocess.conf @@ -17,7 +17,10 @@ # # As a special case, the value-check "*" matches any value, but **only** # if no other value-check matches. Use it as an *else* form for value- -# checks. Take care to put the asterisk in quotes. +# checks. Take care to put the asterisk in quotes. The value-check "*" +# **also** matches a literal asterisk as value; a confusing corner case +# is checking for an asterisk **and** having a wildcard match with +# different commands. This is currently not possible. # # Global configuration variables are not checked in a deterministic # order, so do not rely on commands from one variable-check to diff --git a/src/modules/displaymanager/displaymanager.conf b/src/modules/displaymanager/displaymanager.conf index 1c30ed637..8f8e9c704 100644 --- a/src/modules/displaymanager/displaymanager.conf +++ b/src/modules/displaymanager/displaymanager.conf @@ -1,3 +1,5 @@ +# Configure one or more display managers (e.g. SDDM) +# with a "best effort" approach. --- #The DM module attempts to set up all the DMs found in this list, in that precise order. #It also sets up autologin, if the feature is enabled in globalstorage. diff --git a/src/modules/dummycpp/DummyCppJob.cpp b/src/modules/dummycpp/DummyCppJob.cpp index fb5a2db3a..b404eaf63 100644 --- a/src/modules/dummycpp/DummyCppJob.cpp +++ b/src/modules/dummycpp/DummyCppJob.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Teo Mrnjavac (original dummypython code) * Copyright 2016, Kevin Kofler + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/dummycpp/dummycpp.conf b/src/modules/dummycpp/dummycpp.conf index c90b6f3b9..1f2e1daee 100644 --- a/src/modules/dummycpp/dummycpp.conf +++ b/src/modules/dummycpp/dummycpp.conf @@ -1,3 +1,6 @@ +# This is a dummy (example) module for C++ Jobs. +# +# The code is the documentation for the configuration file. --- syntax: "YAML map of anything" example: @@ -15,4 +18,4 @@ a_list_of_maps: - "another element" - name: "another item" contents: - - "not much" \ No newline at end of file + - "not much" diff --git a/src/modules/dummypython/dummypython.conf b/src/modules/dummypython/dummypython.conf index fc985089a..c700120e7 100644 --- a/src/modules/dummypython/dummypython.conf +++ b/src/modules/dummypython/dummypython.conf @@ -1,3 +1,6 @@ +# This is a dummy (example) module for a Python Job Module. +# +# The code is the documentation for the configuration file. --- syntax: "YAML map of anything" example: @@ -15,4 +18,4 @@ a_list_of_maps: - "another element" - name: "another item" contents: - - "not much" \ No newline at end of file + - "not much" diff --git a/src/modules/dummypythonqt/dummypythonqt.conf b/src/modules/dummypythonqt/dummypythonqt.conf index f60e778e1..5bc64abfa 100644 --- a/src/modules/dummypythonqt/dummypythonqt.conf +++ b/src/modules/dummypythonqt/dummypythonqt.conf @@ -1,3 +1,6 @@ +# This is a dummy (example) module for PythonQt. +# +# The code is the documentation for the configuration file. --- syntax: "YAML map of anything" example: diff --git a/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.mo new file mode 100644 index 000000000..15186b988 Binary files /dev/null and b/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.po new file mode 100644 index 000000000..c46feaee0 --- /dev/null +++ b/src/modules/dummypythonqt/lang/be/LC_MESSAGES/dummypythonqt.po @@ -0,0 +1,43 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Zmicer Turok , 2018\n" +"Language-Team: Belarusian (https://www.transifex.com/calamares/teams/20061/be/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: be\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#: src/modules/dummypythonqt/main.py:84 +msgid "Click me!" +msgstr "Націсніце сюды! " + +#: src/modules/dummypythonqt/main.py:94 +msgid "A new QLabel." +msgstr "Новы QLabel. " + +#: src/modules/dummypythonqt/main.py:97 +msgid "Dummy PythonQt ViewStep" +msgstr "Dummy PythonQt ViewStep" + +#: src/modules/dummypythonqt/main.py:183 +msgid "The Dummy PythonQt Job" +msgstr "The Dummy PythonQt Job" + +#: src/modules/dummypythonqt/main.py:186 +msgid "This is the Dummy PythonQt Job. The dummy job says: {}" +msgstr "Гэта Dummy PythonQt Job. Фіктыўная задача паведамляе: {}" + +#: src/modules/dummypythonqt/main.py:190 +msgid "A status message for Dummy PythonQt Job." +msgstr "Паведамленне статусу Dummy PythonQt Job. " diff --git a/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo index 470525ae3..348cc2629 100644 Binary files a/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.po index 9d8734987..011a2294f 100644 --- a/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/bg/LC_MESSAGES/dummypythonqt.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-04 08:16-0400\n" +"POT-Creation-Date: 2018-02-07 18:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Georgi Georgiev , 2018\n" "Language-Team: Bulgarian (https://www.transifex.com/calamares/teams/20061/bg/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,11 +20,11 @@ msgstr "" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "Натисни ме!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "Нов QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" diff --git a/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo index 183b7d536..a81437b95 100644 Binary files a/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.po index 4c28848bf..e70709472 100644 --- a/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/cs_CZ/LC_MESSAGES/dummypythonqt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-17 19:16+0100\n" +"POT-Creation-Date: 2018-05-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: pavelrz, 2016\n" "Language-Team: Czech (Czech Republic) (https://www.transifex.com/calamares/teams/20061/cs_CZ/)\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: cs_CZ\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n >= 2 && n <= 4 && n % 1 == 0) ? 1: (n % 1 != 0 ) ? 2 : 3;\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/dummypythonqt.pot b/src/modules/dummypythonqt/lang/dummypythonqt.pot index 1fc28e16d..bb87a856f 100644 --- a/src/modules/dummypythonqt/lang/dummypythonqt.pot +++ b/src/modules/dummypythonqt/lang/dummypythonqt.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo index b88e6d8f9..1e4bbb0f8 100644 Binary files a/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.po index 241b0063b..56323f9ef 100644 --- a/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/en_GB/LC_MESSAGES/dummypythonqt.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-04 08:16-0400\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Jason Collins , 2018\n" "Language-Team: English (United Kingdom) (https://www.transifex.com/calamares/teams/20061/en_GB/)\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 "Click me!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "A new QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "Dummy PythonQt ViewStep" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "The Dummy PythonQt Job" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "This is the Dummy PythonQt Job. The dummy job says: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "A status message for Dummy PythonQt Job." diff --git a/src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.mo new file mode 100644 index 000000000..f06ac012c Binary files /dev/null and b/src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.po similarity index 67% rename from src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.po rename to src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.po index 5aa724d08..495a42896 100644 --- a/src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/eo/LC_MESSAGES/dummypythonqt.po @@ -8,35 +8,36 @@ 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-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Language-Team: Spanish (Spain) (https://www.transifex.com/calamares/teams/20061/es_ES/)\n" +"Last-Translator: Kurt Ankh Phoenix , 2018\n" +"Language-Team: Esperanto (https://www.transifex.com/calamares/teams/20061/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language: es_ES\n" +"Language: eo\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "Alklaku min!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "Nova QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "Formala PythonQt ViewStep" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "La Formala PythonQt Laboro" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "Ĉi tiu estas la Formala PythonQt Laboro. La formala laboro diras: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "Statusa mesaĝo por Formala PythonQt Laboro." diff --git a/src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index 35a601558..000000000 Binary files a/src/modules/dummypythonqt/lang/es_ES/LC_MESSAGES/dummypythonqt.mo and /dev/null differ diff --git a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo index 73c58bb4a..bb3f4ea3f 100644 Binary files a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po index 22412c347..8ccd80311 100644 --- a/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/es_MX/LC_MESSAGES/dummypythonqt.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-04 08:16-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: guillermo pacheco , 2018\n" "Language-Team: Spanish (Mexico) (https://www.transifex.com/calamares/teams/20061/es_MX/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +20,24 @@ msgstr "" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "¡Haz clic en mí!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "Una nueva QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "Vision del PythonQt ficticio" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "Trabajo del PythonQt ficticio" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "Este es el Trabajo PythonQt ficticio. El trabajo ficticio dice: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "Un mensaje de estado para el trabajo PythonQt ficticio." diff --git a/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo index 86e51fbf4..ac3fe3890 100644 Binary files a/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.po index 50ed84e86..d6f7455b6 100644 --- a/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/et/LC_MESSAGES/dummypythonqt.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-04 08:16-0400\n" +"POT-Creation-Date: 2018-05-07 09:14-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Madis, 2018\n" "Language-Team: Estonian (https://www.transifex.com/calamares/teams/20061/et/)\n" "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 "Klõpsa mind!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "Uus QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "Testiv PythonQt ViewStep" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "Testiv PythonQt Töö" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "See on testiv PythonQt töö. Testiv töö ütleb: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "Olekusõnum testivale PythonQt tööle." diff --git a/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.mo index be5db74c2..89339df13 100644 Binary files a/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.po index 9561d2d7f..c635ffd83 100644 --- a/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/fa/LC_MESSAGES/dummypythonqt.po @@ -8,14 +8,14 @@ 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-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Persian (https://www.transifex.com/calamares/teams/20061/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.mo index 98b589db3..c9628f7a7 100644 Binary files a/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.po index f5e9b6389..3c87e57d1 100644 --- a/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/he/LC_MESSAGES/dummypythonqt.po @@ -8,7 +8,7 @@ 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-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Eli Shleifer , 2017\n" "Language-Team: Hebrew (https://www.transifex.com/calamares/teams/20061/he/)\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: he\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Plural-Forms: nplurals=4; plural=(n == 1 && n % 1 == 0) ? 0 : (n == 2 && n % 1 == 0) ? 1: (n % 10 == 0 && n % 1 == 0 && n > 10) ? 2 : 3;\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.mo index 198aba348..a7249ce6f 100644 Binary files a/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.po index 9ea1aecd6..21d6fc7b1 100644 --- a/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/hi/LC_MESSAGES/dummypythonqt.po @@ -8,8 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-04 08:16-0400\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: Panwar108 , 2018\n" "Language-Team: Hindi (https://www.transifex.com/calamares/teams/20061/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,24 +20,24 @@ msgstr "" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "यहाँ क्लिक करें!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "नया QLabel।" #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "डमी पाइथन प्रक्रिया की चरण संख्या देखें" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "डमी पाइथन प्रक्रिया" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "यह डमी पाइथन प्रक्रिया है। डमी प्रक्रिया संबंधी संदेश : {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "डमी पाइथन प्रक्रिया की अवस्था संबंधी संदेश।" diff --git a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo index 19d3d71d3..68e3bcef1 100644 Binary files a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po index 17b004ff7..d771e1de5 100644 --- a/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/is/LC_MESSAGES/dummypythonqt.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-07 18:58+0100\n" +"POT-Creation-Date: 2018-04-13 10:28-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Krissi, 2017\n" +"Last-Translator: Kristján Magnússon, 2017\n" "Language-Team: Icelandic (https://www.transifex.com/calamares/teams/20061/is/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo index 14d83f489..2c001df40 100644 Binary files a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po index 02dec56cb..6b22b4b65 100644 --- a/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/it_IT/LC_MESSAGES/dummypythonqt.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-21 16:44+0100\n" +"POT-Creation-Date: 2018-05-28 04:57-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Marco Z. , 2017\n" +"Last-Translator: Saverio , 2016\n" "Language-Team: Italian (Italy) (https://www.transifex.com/calamares/teams/20061/it_IT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +28,7 @@ msgstr "Una nuova QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "PythonQt ViewStep Fittizio" +msgstr "PythonQt ViewStep fittizio" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" diff --git a/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo index 2b0afba0e..260a0f437 100644 Binary files a/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.po index 6a6cae92a..607ac74d2 100644 --- a/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/kk/LC_MESSAGES/dummypythonqt.po @@ -8,14 +8,14 @@ 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-07 09:14-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Kazakh (https://www.transifex.com/calamares/teams/20061/kk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kk\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n!=1);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.mo index bb4455c58..a55906ecf 100644 Binary files a/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.po index 4d6658aa7..8625e3a21 100644 --- a/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/kn/LC_MESSAGES/dummypythonqt.po @@ -8,14 +8,14 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-11-06 06:02-0500\n" +"POT-Creation-Date: 2018-05-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Kannada (https://www.transifex.com/calamares/teams/20061/kn/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kn\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo new file mode 100644 index 000000000..c4dfacd92 Binary files /dev/null and b/src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.po similarity index 63% rename from src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.po rename to src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.po index 2b06f9e75..aa8ea2265 100644 --- a/src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/ko/LC_MESSAGES/dummypythonqt.po @@ -8,35 +8,36 @@ 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" -"Language-Team: Polish (Poland) (https://www.transifex.com/calamares/teams/20061/pl_PL/)\n" +"Last-Translator: Ji-Hyeon Gim , 2018\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: pl_PL\n" -"Plural-Forms: nplurals=4; plural=(n==1 ? 0 : (n%10>=2 && n%10<=4) && (n%100<12 || n%100>14) ? 1 : n!=1 && (n%10>=0 && n%10<=1) || (n%10>=5 && n%10<=9) || (n%100>=12 && n%100<=14) ? 2 : 3);\n" +"Language: ko\n" +"Plural-Forms: nplurals=1; plural=0;\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" -msgstr "" +msgstr "여기를 클릭하세요!" #: src/modules/dummypythonqt/main.py:94 msgid "A new QLabel." -msgstr "" +msgstr "새로운 QLabel." #: src/modules/dummypythonqt/main.py:97 msgid "Dummy PythonQt ViewStep" -msgstr "" +msgstr "더미 PythonQt ViewStep" #: src/modules/dummypythonqt/main.py:183 msgid "The Dummy PythonQt Job" -msgstr "" +msgstr "더미 PythonQt Job" #: src/modules/dummypythonqt/main.py:186 msgid "This is the Dummy PythonQt Job. The dummy job says: {}" -msgstr "" +msgstr "더미 PythonQt Job입니다. 이 더미 Job의 출력은 다음과 같습니다: {}" #: src/modules/dummypythonqt/main.py:190 msgid "A status message for Dummy PythonQt Job." -msgstr "" +msgstr "더미 PythonQt Job의 상태 메시지" diff --git a/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.mo index 30fb27cad..afcfc63d5 100644 Binary files a/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.po index 5d9db7cc6..4b2efa540 100644 --- a/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/lt/LC_MESSAGES/dummypythonqt.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-17 19:16+0100\n" +"POT-Creation-Date: 2018-05-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Moo, 2016\n" "Language-Team: Lithuanian (https://www.transifex.com/calamares/teams/20061/lt/)\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lt\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n % 10 == 1 && (n % 100 > 19 || n % 100 < 11) ? 0 : (n % 10 >= 2 && n % 10 <=9) && (n % 100 > 19 || n % 100 < 11) ? 1 : n % 1 != 0 ? 2: 3);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.mo deleted file mode 100644 index fc4620205..000000000 Binary files a/src/modules/dummypythonqt/lang/pl_PL/LC_MESSAGES/dummypythonqt.mo and /dev/null differ diff --git a/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.mo index 2c1d077a0..96931f5ac 100644 Binary files a/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.po index 6dd7837c9..211949087 100644 --- a/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/pt_BR/LC_MESSAGES/dummypythonqt.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-21 16:44+0100\n" +"POT-Creation-Date: 2018-06-18 07:46-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: Guilherme M.S. , 2017\n" +"Last-Translator: Guilherme Marçal Silva , 2017\n" "Language-Team: Portuguese (Brazil) (https://www.transifex.com/calamares/teams/20061/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" diff --git a/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.mo index 4cb8879b3..ff06e3d86 100644 Binary files a/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.po index 7f45b4605..46023f680 100644 --- a/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/sk/LC_MESSAGES/dummypythonqt.po @@ -8,7 +8,7 @@ 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-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Dušan Kazik , 2016\n" "Language-Team: Slovak (https://www.transifex.com/calamares/teams/20061/sk/)\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sk\n" -"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n == 1 ? 0 : n % 1 == 0 && n >= 2 && n <= 4 ? 1 : n % 1 != 0 ? 2: 3);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo index 12c4645f6..57e8ac336 100644 Binary files a/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.po index 316907674..cf65fd0e5 100644 --- a/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/tr_TR/LC_MESSAGES/dummypythonqt.po @@ -8,7 +8,7 @@ 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-02-07 18:58+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Demiray “tulliana” Muhterem , 2016\n" "Language-Team: Turkish (Turkey) (https://www.transifex.com/calamares/teams/20061/tr_TR/)\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr_TR\n" -"Plural-Forms: nplurals=1; plural=0;\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.mo b/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.mo index d17a14087..c74193fef 100644 Binary files a/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.mo and b/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.mo differ diff --git a/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.po b/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.po index 5bdc57b31..67d3c5087 100644 --- a/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.po +++ b/src/modules/dummypythonqt/lang/uk/LC_MESSAGES/dummypythonqt.po @@ -8,14 +8,14 @@ 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-16 11:40-0400\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Language-Team: Ukrainian (https://www.transifex.com/calamares/teams/20061/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: uk\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Plural-Forms: nplurals=4; plural=(n % 1 == 0 && n % 10 == 1 && n % 100 != 11 ? 0 : n % 1 == 0 && n % 10 >= 2 && n % 10 <= 4 && (n % 100 < 12 || n % 100 > 14) ? 1 : n % 1 == 0 && (n % 10 ==0 || (n % 10 >=5 && n % 10 <=9) || (n % 100 >=11 && n % 100 <=14 )) ? 2: 3);\n" #: src/modules/dummypythonqt/main.py:84 msgid "Click me!" diff --git a/src/modules/finished/FinishedPage.cpp b/src/modules/finished/FinishedPage.cpp index ca03ccb89..ef3b0745e 100644 --- a/src/modules/finished/FinishedPage.cpp +++ b/src/modules/finished/FinishedPage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/fstab/fstab.conf b/src/modules/fstab/fstab.conf index c3dbfc309..11adff2ed 100644 --- a/src/modules/fstab/fstab.conf +++ b/src/modules/fstab/fstab.conf @@ -1,13 +1,28 @@ +# Creates /etc/fstab and /etc/crypttab in the target system. +# Also creates mount points for all the filesystems. +# +# When creating fstab entries for a filesystem, this module +# uses the options for the filesystem type to write to the +# options field of the file. --- +# Mount options to use for all filesystems. If a specific filesystem +# is listed here, use those options, otherwise use the *default* +# options from this mapping. mountOptions: default: defaults,noatime btrfs: defaults,noatime,space_cache,autodefrag + +# If a filesystem is on an SSD, add the following options. If a specific +# filesystem is listed here, use those options, otherwise no additional +# options are set (i.e. there is no *default* like in *mountOptions*). ssdExtraMountOptions: ext4: discard jfs: discard xfs: discard swap: discard btrfs: discard,compress=lzo + +# Additional options added to each line in /etc/crypttab crypttabOptions: luks # For Debian and Debian-based distributions, change the above line to: # crypttabOptions: luks,keyscript=/bin/cat diff --git a/src/modules/grubcfg/grubcfg.conf b/src/modules/grubcfg/grubcfg.conf index 608c9b2b4..b354ec35a 100644 --- a/src/modules/grubcfg/grubcfg.conf +++ b/src/modules/grubcfg/grubcfg.conf @@ -1,10 +1,22 @@ +# Write lines to /etc/default/grub (in the target system) based +# on calculated values and the values set in the *defaults* key +# in this configuration file. +# +# Calculated values are: +# - GRUB_DISTRIBUTOR, branding module, *bootloaderEntryName* +# - GRUB_ENABLE_CRYPTODISK, based on the presence of filesystems +# that use LUKS +# - GRUB_CMDLINE_LINUX_DEFAULT, adding LUKS setup and plymouth +# support to the kernel. + --- # If set to true, always creates /etc/default/grub from scratch even if the file # already existed. If set to false, edits the existing file instead. overwrite: false + # Default entries to write to /etc/default/grub if it does not exist yet or if -# we are overwriting it. Note that in addition, GRUB_CMDLINE_LINUX_DEFAULT and -# GRUB_DISTRIBUTOR will always be written, with automatically detected values. +# we are overwriting it. +# defaults: GRUB_TIMEOUT: 5 GRUB_DEFAULT: "saved" diff --git a/src/modules/grubcfg/main.py b/src/modules/grubcfg/main.py index 197a22edf..b19ebf588 100644 --- a/src/modules/grubcfg/main.py +++ b/src/modules/grubcfg/main.py @@ -7,7 +7,7 @@ # Copyright 2015-2017, Teo Mrnjavac # Copyright 2017, Alf Gaida # Copyright 2017, Adriaan de Groot -# Copyright 2017, Gabriel Craciunescu +# Copyright 2017-2018, Gabriel Craciunescu # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -44,16 +44,21 @@ def modify_grub_default(partitions, root_mount_point, distributor): dracut_bin = libcalamares.utils.target_env_call( ["sh", "-c", "which dracut"] ) - have_dracut = dracut_bin == 0 # Shell exit value 0 means success + plymouth_bin = libcalamares.utils.target_env_call( + ["sh", "-c", "which plymouth"] + ) + + # Shell exit value 0 means success + have_plymouth = plymouth_bin == 0 + have_dracut = dracut_bin == 0 use_splash = "" swap_uuid = "" swap_outer_uuid = "" swap_outer_mappername = None - if libcalamares.globalstorage.contains("hasPlymouth"): - if libcalamares.globalstorage.value("hasPlymouth"): - use_splash = "splash" + if have_plymouth: + use_splash = "splash" cryptdevice_params = [] diff --git a/src/modules/hwclock/main.py b/src/modules/hwclock/main.py index d247ccd00..9cac929ba 100644 --- a/src/modules/hwclock/main.py +++ b/src/modules/hwclock/main.py @@ -6,7 +6,7 @@ # Copyright 2014 - 2015, Philip Müller # Copyright 2014, Teo Mrnjavac # Copyright 2017, Alf Gaida -# Copyright 2017, Gabriel Craciunescu +# Copyright 2017-2018, Gabriel Craciunescu # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -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.") diff --git a/src/modules/initcpio/initcpio.conf b/src/modules/initcpio/initcpio.conf index 21f5704cc..466a8785d 100644 --- a/src/modules/initcpio/initcpio.conf +++ b/src/modules/initcpio/initcpio.conf @@ -1,2 +1,3 @@ +# Run mkinitcpio(8) with the given preset value --- kernel: linux312 diff --git a/src/modules/interactiveterminal/CMakeLists.txt b/src/modules/interactiveterminal/CMakeLists.txt index d419a22a7..5eff610d5 100644 --- a/src/modules/interactiveterminal/CMakeLists.txt +++ b/src/modules/interactiveterminal/CMakeLists.txt @@ -1,27 +1,32 @@ find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) -include(KDEInstallDirs) -include(GenerateExportHeader) +set( kf5_ver 5.41 ) -find_package( KF5 REQUIRED Service Parts ) - -include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui - ${QTERMWIDGET_INCLUDE_DIR} ) - -set( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} - ${CMAKE_CURRENT_SOURCE_DIR}/CMakeModules ) - - -calamares_add_plugin( interactiveterminal - TYPE viewmodule - EXPORT_MACRO PLUGINDLLEXPORT_PRO - SOURCES - InteractiveTerminalViewStep.cpp - InteractiveTerminalPage.cpp - LINK_PRIVATE_LIBRARIES - calamaresui - LINK_LIBRARIES - KF5::Service - KF5::Parts - SHARED_LIB +find_package( KF5Service ${kf5_ver} ) +find_package( KF5Parts ${kf5_ver} ) +set_package_properties( + KF5Service PROPERTIES + PURPOSE "For finding KDE services at runtime" +) +set_package_properties( + KF5Parts PROPERTIES + PURPOSE "For finding KDE parts at runtime" ) + +if ( KF5Parts_FOUND AND KF5Service_FOUND ) + calamares_add_plugin( interactiveterminal + TYPE viewmodule + EXPORT_MACRO PLUGINDLLEXPORT_PRO + SOURCES + InteractiveTerminalViewStep.cpp + InteractiveTerminalPage.cpp + LINK_PRIVATE_LIBRARIES + calamaresui + LINK_LIBRARIES + KF5::Service + KF5::Parts + SHARED_LIB + ) +else() + calamares_skip_module( "interactiveterminal (missing requirements)" ) +endif() diff --git a/src/modules/keyboard/KeyboardPage.cpp b/src/modules/keyboard/KeyboardPage.cpp index 9e4b7e3ae..6f4473014 100644 --- a/src/modules/keyboard/KeyboardPage.cpp +++ b/src/modules/keyboard/KeyboardPage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer @@ -95,8 +95,7 @@ KeyboardPage::KeyboardPage( QWidget* parent ) QString model = m_models.value( text, "pc105" ); // Set Xorg keyboard model - QProcess::execute( QLatin1Literal( "setxkbmap" ), - QStringList() << "-model" << model ); + QProcess::execute( "setxkbmap", QStringList{ "-model", model } ); } ); CALAMARES_RETRANSLATE( ui->retranslateUi( this ); ) @@ -356,11 +355,15 @@ KeyboardPage::onActivate() lang.replace( '-', '_' ); // Normalize separators } - if ( !lang.isEmpty() && specialCaseMap.contains( lang.toStdString() ) ) + if ( !lang.isEmpty() ) { - QLatin1String newLang( specialCaseMap.value( lang.toStdString() ).c_str() ); - cDebug() << " .. special case language" << lang << '>' << newLang; - lang = newLang; + std::string lang_s = lang.toStdString(); + if ( specialCaseMap.contains( lang_s ) ) + { + QString newLang = QString::fromStdString( specialCaseMap.value( lang_s ) ); + cDebug() << " .. special case language" << lang << "becomes" << newLang; + lang = newLang; + } } if ( !lang.isEmpty() ) { @@ -478,9 +481,8 @@ KeyboardPage::onListVariantCurrentItemChanged( QListWidgetItem* current, QListWi connect( &m_setxkbmapTimer, &QTimer::timeout, this, [=] { - QProcess::execute( QLatin1Literal( "setxkbmap" ), - xkbmap_args( QStringList(), layout, variant ) ); - cDebug() << "xkbmap selection changed to: " << layout << "-" << variant; + QProcess::execute( "setxkbmap", xkbmap_args( QStringList(), layout, variant ) ); + cDebug() << "xkbmap selection changed to: " << layout << '-' << variant; m_setxkbmapTimer.disconnect( this ); } ); m_setxkbmapTimer.start( QApplication::keyboardInputInterval() ); diff --git a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp index 9cdf831e6..26aa18d87 100644 --- a/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp +++ b/src/modules/keyboard/keyboardwidget/keyboardpreview.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/license/LicensePage.cpp b/src/modules/license/LicensePage.cpp index 12d259e98..351c55d79 100644 --- a/src/modules/license/LicensePage.cpp +++ b/src/modules/license/LicensePage.cpp @@ -3,6 +3,7 @@ * Copyright 2015, Anke Boersma * Copyright 2015, Alexandre Arnt * Copyright 2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,7 +58,7 @@ LicensePage::LicensePage(QWidget *parent) CalamaresUtils::defaultFontHeight() * 3, CalamaresUtils::defaultFontHeight(), CalamaresUtils::defaultFontHeight() ); - + ui->acceptFrame->setFrameStyle( QFrame::NoFrame | QFrame::Plain ); ui->acceptFrame->setStyleSheet( "#acceptFrame { border: 1px solid red;" "background-color: #fff6f6;" diff --git a/src/modules/license/LicensePage.h b/src/modules/license/LicensePage.h index 4f84b55be..300e9e309 100644 --- a/src/modules/license/LicensePage.h +++ b/src/modules/license/LicensePage.h @@ -3,6 +3,7 @@ * Copyright 2015, Anke Boersma * Copyright 2015, Alexandre Arnt * Copyright 2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/locale/CMakeLists.txt b/src/modules/locale/CMakeLists.txt index e32f6e613..24259d797 100644 --- a/src/modules/locale/CMakeLists.txt +++ b/src/modules/locale/CMakeLists.txt @@ -1,9 +1,32 @@ +find_package(ECM ${ECM_VERSION} NO_MODULE) +if( ECM_FOUND AND BUILD_TESTING ) + include( ECMAddTests ) + 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 ) +set( geoip_libs ) + +find_package(Qt5 COMPONENTS Xml) +if( Qt5Xml_FOUND ) + list( APPEND geoip_src GeoIPXML.cpp ) + list( APPEND geoip_libs Qt5::Xml ) + add_definitions( -DHAVE_XML ) +endif() + calamares_add_plugin( locale TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO SOURCES + ${geoip_src} LCLocaleDialog.cpp LocaleConfiguration.cpp LocalePage.cpp @@ -17,6 +40,28 @@ calamares_add_plugin( locale LINK_PRIVATE_LIBRARIES calamaresui Qt5::Network + ${geoip_libs} ${YAMLCPP_LIBRARY} SHARED_LIB ) + +if( ECM_FOUND AND BUILD_TESTING ) + ecm_add_test( + GeoIPTests.cpp + ${geoip_src} + TEST_NAME + geoiptest + LINK_LIBRARIES + calamaresui + Qt5::Network + Qt5::Test + ${geoip_libs} + ${YAMLCPP_LIBRARY} + ) + set_target_properties( geoiptest PROPERTIES AUTOMOC TRUE ) +endif() + +if( BUILD_TESTING ) + add_executable( test_geoip test_geoip.cpp ${geoip_src} ) + target_link_libraries( test_geoip calamaresui Qt5::Network ${geoip_libs} ${YAMLCPP_LIBRARY} ) +endif() diff --git a/src/modules/locale/GeoIP.cpp b/src/modules/locale/GeoIP.cpp new file mode 100644 index 000000000..4c031f286 --- /dev/null +++ b/src/modules/locale/GeoIP.cpp @@ -0,0 +1,49 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "GeoIP.h" + +#include "utils/Logger.h" + +GeoIP::GeoIP(const QString& e) + : m_element( e ) +{ +} + +GeoIP::~GeoIP() +{ +} + +GeoIP::RegionZonePair +GeoIP::splitTZString( const QString& tz ) +{ + QString timezoneString( tz ); + timezoneString.remove( '\\' ); + timezoneString.replace( ' ', '_' ); + + QStringList tzParts = timezoneString.split( '/', QString::SkipEmptyParts ); + if ( tzParts.size() >= 2 ) + { + cDebug() << "GeoIP reporting" << timezoneString; + QString region = tzParts.takeFirst(); + QString zone = tzParts.join( '/' ); + return qMakePair( region, zone ); + } + + return qMakePair( QString(), QString() ); +} diff --git a/src/modules/locale/GeoIP.h b/src/modules/locale/GeoIP.h new file mode 100644 index 000000000..41abd2042 --- /dev/null +++ b/src/modules/locale/GeoIP.h @@ -0,0 +1,70 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef GEOIP_H +#define GEOIP_H + +#include +#include +#include + +class QByteArray; + +/** + * @brief Interface for GeoIP retrievers. + * + * A GeoIP retriever takes a configured URL (from the config file) + * and can handle the data returned from its interpretation of that + * configured URL, returning a region and zone. + */ +class GeoIP +{ +public: + using RegionZonePair = QPair; + + virtual ~GeoIP(); + + /** @brief Handle a (successful) request by interpreting the data. + * + * Should return a ( , ) pair, e.g. + * ( "Europe", "Amsterdam" ). This is called **only** if the + * request to the fullUrl was successful; the handler + * is free to read as much, or as little, data as it + * likes. On error, returns a RegionZonePair with empty + * strings (e.g. ( "", "" ) ). + */ + virtual RegionZonePair processReply( const QByteArray& ) = 0; + + /** @brief Splits a region/zone string into a pair. + * + * Cleans up the string by removing backslashes (\\) + * since some providers return silly-escaped names. Replaces + * spaces with _ since some providers return human-readable names. + * Splits on the first / in the resulting string, or returns a + * pair of empty QStrings if it can't. (e.g. America/North Dakota/Beulah + * will return "America", "North_Dakota/Beulah"). + */ + static RegionZonePair splitTZString( const QString& s ); + +protected: + GeoIP( const QString& e = QString() ); + + QString m_element; // string for selecting from data +} ; + +#endif diff --git a/src/modules/locale/GeoIPJSON.cpp b/src/modules/locale/GeoIPJSON.cpp new file mode 100644 index 000000000..b4daf2084 --- /dev/null +++ b/src/modules/locale/GeoIPJSON.cpp @@ -0,0 +1,76 @@ +/* === This file is part of Calamares - === + * + * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "GeoIPJSON.h" + +#include "utils/CalamaresUtils.h" +#include "utils/Logger.h" +#include "utils/YamlUtils.h" + +#include + +#include + +GeoIPJSON::GeoIPJSON(const QString& attribute) + : GeoIP( attribute.isEmpty() ? QStringLiteral( "time_zone" ) : attribute ) +{ +} + +static QString +selectMap( const QVariantMap& m, const QStringList& l, int index) +{ + if ( index >= l.count() ) + return QString(); + + QString attributeName = l[index]; + if ( index == l.count() - 1 ) + return CalamaresUtils::getString( m, attributeName ); + else + { + bool success = false; // bogus + if ( m.contains( attributeName ) ) + return selectMap( CalamaresUtils::getSubMap( m, attributeName, success ), l, index+1 ); + return QString(); + } +} + +GeoIP::RegionZonePair +GeoIPJSON::processReply( const QByteArray& data ) +{ + try + { + YAML::Node doc = YAML::Load( data ); + + QVariant var = CalamaresUtils::yamlToVariant( doc ); + if ( !var.isNull() && + var.isValid() && + var.type() == QVariant::Map ) + { + return splitTZString( selectMap( var.toMap(), m_element.split('.'), 0 ) ); + } + else + cWarning() << "Invalid YAML data for GeoIPJSON"; + } + catch ( YAML::Exception& e ) + { + CalamaresUtils::explainYamlException( e, data, "GeoIP data"); + } + + return qMakePair( QString(), QString() ); +} diff --git a/src/modules/locale/GeoIPJSON.h b/src/modules/locale/GeoIPJSON.h new file mode 100644 index 000000000..3c08f577b --- /dev/null +++ b/src/modules/locale/GeoIPJSON.h @@ -0,0 +1,44 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef GEOIPJSON_H +#define GEOIPJSON_H + +#include "GeoIP.h" + +/** @brief GeoIP lookup for services that return JSON. + * + * This is the original implementation of GeoIP lookup, + * (e.g. using the FreeGeoIP.net service), or similar. + * + * The data is assumed to be in JSON format with a time_zone attribute. + */ +class GeoIPJSON : public GeoIP +{ +public: + /** @brief Configure the attribute name which is selected. + * + * If an empty string is passed in (not a valid attribute name), + * then "time_zone" is used. + */ + explicit GeoIPJSON( const QString& attribute = QString() ); + + virtual RegionZonePair processReply( const QByteArray& ); +} ; + +#endif diff --git a/src/modules/locale/GeoIPTests.cpp b/src/modules/locale/GeoIPTests.cpp new file mode 100644 index 000000000..af114611e --- /dev/null +++ b/src/modules/locale/GeoIPTests.cpp @@ -0,0 +1,256 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "GeoIPTests.h" + +#include "GeoIPJSON.h" +#ifdef HAVE_XML +#include "GeoIPXML.h" +#endif + +#include +#include +#include + +#include + +QTEST_GUILESS_MAIN( GeoIPTests ) + +GeoIPTests::GeoIPTests() +{ +} + +GeoIPTests::~GeoIPTests() +{ +} + +void +GeoIPTests::initTestCase() +{ +} + +static const char json_data_attribute[] = + "{\"time_zone\":\"Europe/Amsterdam\"}"; + +void +GeoIPTests::testJSON() +{ + GeoIPJSON handler; + auto tz = handler.processReply( json_data_attribute ); + + QCOMPARE( tz.first, QStringLiteral( "Europe" ) ); + QCOMPARE( tz.second, QStringLiteral( "Amsterdam" ) ); + + // JSON is quite tolerant + tz = handler.processReply( "time_zone: \"Europe/Brussels\"" ); + QCOMPARE( tz.second, QStringLiteral( "Brussels" ) ); + + tz = handler.processReply( "time_zone: America/New_York\n" ); + QCOMPARE( tz.first, QStringLiteral( "America" ) ); +} + +void GeoIPTests::testJSONalt() +{ + GeoIPJSON handler( "zona_de_hora" ); + + auto tz = handler.processReply( json_data_attribute ); + QCOMPARE( tz.first, QString() ); // Not found + + tz = handler.processReply( "tarifa: 12\nzona_de_hora: Europe/Madrid" ); + QCOMPARE( tz.first, QStringLiteral( "Europe" ) ); + QCOMPARE( tz.second, QStringLiteral( "Madrid" ) ); +} + +void +GeoIPTests::testJSONbad() +{ + static const char data[] = "time_zone: 1"; + + GeoIPJSON handler; + auto tz = handler.processReply( data ); + + tz = handler.processReply( data ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "" ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "404 Forbidden" ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "{ time zone = 'America/LosAngeles'}" ); + QCOMPARE( tz.first, QString() ); +} + + +static const char xml_data_ubiquity[] = + R"( + 85.150.1.1 + OK + NL + NLD + Netherlands + None + None + None + + 50.0 + 4.0 + 0 + Europe/Amsterdam +)"; + +void +GeoIPTests::testXML() +{ +#ifdef HAVE_XML + GeoIPXML handler; + auto tz = handler.processReply( xml_data_ubiquity ); + + QCOMPARE( tz.first, QStringLiteral( "Europe" ) ); + QCOMPARE( tz.second, QStringLiteral( "Amsterdam" ) ); +#endif +} + +void +GeoIPTests::testXML2() +{ + static const char data[] = + "America/North Dakota/Beulah"; // With a space! + +#ifdef HAVE_XML + GeoIPXML handler; + auto tz = handler.processReply( data ); + + QCOMPARE( tz.first, QStringLiteral( "America" ) ); + QCOMPARE( tz.second, QStringLiteral( "North_Dakota/Beulah" ) ); // Without space +#endif +} + + +void GeoIPTests::testXMLalt() +{ +#ifdef HAVE_XML + GeoIPXML handler( "ZT" ); + + auto tz = handler.processReply( "Moon/Dark_side" ); + QCOMPARE( tz.first, QStringLiteral( "Moon" ) ); + QCOMPARE( tz.second, QStringLiteral( "Dark_side" ) ); +#endif +} + +void +GeoIPTests::testXMLbad() +{ +#ifdef HAVE_XML + GeoIPXML handler; + auto tz = handler.processReply( "{time_zone: \"Europe/Paris\"}" ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "" ); + QCOMPARE( tz.first, QString() ); + + tz = handler.processReply( "fnord" ); + QCOMPARE( tz.first, QString() ); +#endif +} + +void GeoIPTests::testSplitTZ() +{ + auto tz = GeoIP::splitTZString( QStringLiteral("Moon/Dark_side") ); + QCOMPARE( tz.first, QStringLiteral("Moon") ); + QCOMPARE( tz.second, QStringLiteral("Dark_side") ); + + // Some providers return weirdly escaped data + tz = GeoIP::splitTZString( QStringLiteral("America\\/NewYork") ); + QCOMPARE( tz.first, QStringLiteral("America") ); + QCOMPARE( tz.second, QStringLiteral("NewYork") ); // That's not actually the zone name + + // Check that bogus data fails + tz = GeoIP::splitTZString( QString() ); + QCOMPARE( tz.first, QString() ); + + tz = GeoIP::splitTZString( QStringLiteral("America.NewYork") ); + QCOMPARE( tz.first, QString() ); + + // Check that three-level is split properly and space is replaced + tz = GeoIP::splitTZString( QStringLiteral("America/North Dakota/Beulah") ); + QCOMPARE( tz.first, QStringLiteral("America") ); + QCOMPARE( tz.second, QStringLiteral("North_Dakota/Beulah") ); +} + + +static QByteArray +synchronous_get( const char* urlstring ) +{ + QUrl url( urlstring ); + QNetworkAccessManager manager; + QEventLoop loop; + + qDebug() << "Fetching" << url; + + QObject::connect( &manager, &QNetworkAccessManager::finished, &loop, &QEventLoop::quit ); + + QNetworkRequest request( url ); + QNetworkReply* reply = manager.get( request ); + loop.exec(); + reply->deleteLater(); + return reply->readAll(); +} + +#define CHECK_GET(t, selector, url) \ + { \ + auto tz = GeoIP##t( selector ).processReply( synchronous_get( url ) ); \ + QCOMPARE( default_tz, tz ); \ + } + +void GeoIPTests::testGet() +{ + if ( !QProcessEnvironment::systemEnvironment().contains( QStringLiteral("TEST_HTTP_GET") ) ) + { + qDebug() << "Skipping HTTP GET tests"; + return; + } + + GeoIPJSON default_handler; + // Call the KDE service the definitive source. + auto default_tz = default_handler.processReply( synchronous_get( "https://geoip.kde.org/v1/calamares" ) ); + + // This is bogus, because the test isn't always run by me + // QCOMPARE( default_tz.first, QStringLiteral("Europe") ); + // QCOMPARE( default_tz.second, QStringLiteral("Amsterdam") ); + QVERIFY( !default_tz.first.isEmpty() ); + QVERIFY( !default_tz.second.isEmpty() ); + + // Each expansion of CHECK_GET does a synchronous GET, then checks that + // the TZ data is the same as the default_tz; this is fragile if the + // services don't agree on the location of where the test is run. + CHECK_GET( JSON, QString(), "https://geoip.kde.org/v1/calamares" ) // Check it's consistent + CHECK_GET( JSON, QString(), "http://freegeoip.net/json/" ) // Original FreeGeoIP service + CHECK_GET( JSON, QStringLiteral("timezone"), "https://ipapi.co/json" ) // Different JSON + CHECK_GET( JSON, QStringLiteral("timezone"), "http://ip-api.com/json" ) + + CHECK_GET( JSON, QStringLiteral("location.time_zone"), "http://geoip.nekudo.com/api/" ) // 2-level JSON + + CHECK_GET( JSON, QStringLiteral("Location.TimeZone"), "https://geoip.kde.org/debug" ) // 2-level JSON + +#ifdef HAVE_XML + CHECK_GET( XML, QString(), "http://geoip.ubuntu.com/lookup" ) // Ubiquity's XML format + CHECK_GET( XML, QString(), "https://geoip.kde.org/v1/ubiquity" ) // Temporary KDE service +#endif +} diff --git a/src/modules/locale/GeoIPTests.h b/src/modules/locale/GeoIPTests.h new file mode 100644 index 000000000..a320e3263 --- /dev/null +++ b/src/modules/locale/GeoIPTests.h @@ -0,0 +1,45 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef GEOIPTESTS_H +#define GEOIPTESTS_H + +#include + +class GeoIPTests : public QObject +{ + Q_OBJECT +public: + GeoIPTests(); + ~GeoIPTests() override; + +private Q_SLOTS: + void initTestCase(); + void testJSON(); + void testJSONalt(); + void testJSONbad(); + void testXML(); + void testXML2(); + void testXMLalt(); + void testXMLbad(); + void testSplitTZ(); + + void testGet(); +}; + +#endif diff --git a/src/modules/locale/GeoIPXML.cpp b/src/modules/locale/GeoIPXML.cpp new file mode 100644 index 000000000..bd675c2ef --- /dev/null +++ b/src/modules/locale/GeoIPXML.cpp @@ -0,0 +1,60 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "GeoIPXML.h" + +#include "utils/Logger.h" + +#include +#include + +GeoIPXML::GeoIPXML( const QString& element ) + : GeoIP( element.isEmpty() ? QStringLiteral( "TimeZone" ) : element ) +{ +} + +GeoIP::RegionZonePair +GeoIPXML::processReply( const QByteArray& data ) +{ + QString domError; + int errorLine, errorColumn; + + QDomDocument doc; + if ( doc.setContent( data, false, &domError, &errorLine, &errorColumn ) ) + { + const auto tzElements = doc.elementsByTagName( m_element ); + cDebug() << "GeoIP found" << tzElements.length() << "elements"; + for ( int it = 0; it < tzElements.length(); ++it ) + { + auto e = tzElements.at(it).toElement(); + auto tz = splitTZString( e.text() ); + if ( !tz.first.isEmpty() ) + return tz; + } + + // None of them valid + cWarning() << "GeopIP XML had no recognizable timezone"; + return qMakePair( QString(), QString() ); + } + else + { + cWarning() << "GeoIP XML data error:" << domError << "(line" << errorLine << errorColumn << ')'; + } + + return qMakePair( QString(), QString() ); +} diff --git a/src/modules/locale/GeoIPXML.h b/src/modules/locale/GeoIPXML.h new file mode 100644 index 000000000..bc3f23bec --- /dev/null +++ b/src/modules/locale/GeoIPXML.h @@ -0,0 +1,44 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef GEOIPXML_H +#define GEOIPXML_H + +#include "GeoIP.h" + +/** @brief GeoIP lookup with XML data + * + * The data is assumed to be in XML format with a + * + * element, which contains the text (string) for the region/zone. This + * format is expected by, e.g. the Ubiquity installer. + */ +class GeoIPXML : public GeoIP +{ +public: + /** @brief Configure the element tag which is selected. + * + * If an empty string is passed in (not a valid element tag), + * then "TimeZone" is used. + */ + explicit GeoIPXML( const QString& element = QString() ); + + virtual RegionZonePair processReply( const QByteArray& ); +} ; + +#endif diff --git a/src/modules/locale/LocaleConfiguration.cpp b/src/modules/locale/LocaleConfiguration.cpp index d2aae0d4e..7c8ad3305 100644 --- a/src/modules/locale/LocaleConfiguration.cpp +++ b/src/modules/locale/LocaleConfiguration.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -43,9 +43,11 @@ LocaleConfiguration::fromLanguageAndLocation( const QString& languageLocale, const QStringList& availableLocales, const QString& countryCode ) { - LocaleConfiguration lc = LocaleConfiguration(); + LocaleConfiguration lc; + + // Note that the documentation how this works is in packages.conf QString language = languageLocale.split( '_' ).first(); - lc.myLanguageLocaleBcp47 = QLocale(language).bcp47Name(); + lc.myLanguageLocaleBcp47 = QLocale(language).bcp47Name().toLower(); QStringList linesForLanguage; for ( const QString &line : availableLocales ) @@ -288,7 +290,7 @@ LocaleConfiguration::isEmpty() const QMap< QString, QString > -LocaleConfiguration::toMap() +LocaleConfiguration::toMap() const { QMap< QString, QString > map; @@ -324,3 +326,9 @@ LocaleConfiguration::toMap() return map; } + +QString +LocaleConfiguration::toBcp47() const +{ + return myLanguageLocaleBcp47; +} diff --git a/src/modules/locale/LocaleConfiguration.h b/src/modules/locale/LocaleConfiguration.h index 6eca97976..c077ef6f7 100644 --- a/src/modules/locale/LocaleConfiguration.h +++ b/src/modules/locale/LocaleConfiguration.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -35,16 +35,21 @@ public: bool isEmpty() const; + QMap< QString, QString > toMap() const; + // Note that the documentation how this works is in packages.conf + QString toBcp47() const; + // These become all uppercase in locale.conf, but we keep them lowercase here to // avoid confusion with locale.h. QString lang, lc_numeric, lc_time, lc_monetary, lc_paper, lc_name, lc_address, lc_telephone, lc_measurement, lc_identification; - QString myLanguageLocaleBcp47; - QMap< QString, QString > toMap(); // If the user has explicitly selected language (from the dialog) // or numbers format, set these to avoid implicit changes to them. bool explicit_lang, explicit_lc; + +private: + QString myLanguageLocaleBcp47; }; #endif // LOCALECONFIGURATION_H diff --git a/src/modules/locale/LocalePage.cpp b/src/modules/locale/LocalePage.cpp index 27d63f48e..9aad283c6 100644 --- a/src/modules/locale/LocalePage.cpp +++ b/src/modules/locale/LocalePage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -489,17 +489,20 @@ LocalePage::updateGlobalStorage() ->insert( "locationRegion", location.region ); Calamares::JobQueue::instance()->globalStorage() ->insert( "locationZone", location.zone ); - Calamares::JobQueue::instance()->globalStorage() - ->insert( "locale", m_selectedLocaleConfiguration.myLanguageLocaleBcp47); + + const QString bcp47 = m_selectedLocaleConfiguration.toBcp47(); + 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 + QProcess::execute( "timedatectl", // depends on systemd { "set-timezone", location.region + '/' + location.zone } ); } +#endif // Preserve those settings that have been made explicit. auto newLocale = guessLocaleConfiguration(); diff --git a/src/modules/locale/LocaleViewStep.cpp b/src/modules/locale/LocaleViewStep.cpp index 827a1a47b..4a6eb229a 100644 --- a/src/modules/locale/LocaleViewStep.cpp +++ b/src/modules/locale/LocaleViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,12 +19,19 @@ #include "LocaleViewStep.h" +#include "GeoIP.h" +#include "GeoIPJSON.h" +#ifdef HAVE_XML +#include "GeoIPXML.h" +#endif +#include "GlobalStorage.h" +#include "JobQueue.h" #include "LocalePage.h" + #include "timezonewidget/localeglobal.h" #include "widgets/WaitingWidget.h" -#include "JobQueue.h" -#include "GlobalStorage.h" +#include "utils/CalamaresUtils.h" #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" #include "utils/YamlUtils.h" @@ -110,54 +118,52 @@ LocaleViewStep::setUpPage() void LocaleViewStep::fetchGeoIpTimezone() { + QString actualUrl( m_geoipUrl ); + GeoIP *handler = nullptr; + + if ( m_geoipStyle.isEmpty() || m_geoipStyle == "legacy" ) + { + actualUrl.append( "/json/" ); + handler = new GeoIPJSON( m_geoipSelector ); + } + else if ( m_geoipStyle == "json" ) + { + handler = new GeoIPJSON( m_geoipSelector ); + } +#if defined(HAVE_XML) + else if ( m_geoipStyle == "xml" ) + { + handler = new GeoIPXML( m_geoipSelector ); + } +#endif + else + { + cWarning() << "GeoIP Style" << m_geoipStyle << "is not recognized."; + setUpPage(); + return; + } + cDebug() << "Fetching GeoIP data from" << actualUrl; + QNetworkAccessManager *manager = new QNetworkAccessManager( this ); connect( manager, &QNetworkAccessManager::finished, [=]( QNetworkReply* reply ) { if ( reply->error() == QNetworkReply::NoError ) { - QByteArray data = reply->readAll(); - - try - { - YAML::Node doc = YAML::Load( data ); - - QVariant var = CalamaresUtils::yamlToVariant( doc ); - if ( !var.isNull() && - var.isValid() && - var.type() == QVariant::Map ) - { - QVariantMap map = var.toMap(); - if ( map.contains( "time_zone" ) && - !map.value( "time_zone" ).toString().isEmpty() ) - { - QString timezoneString = map.value( "time_zone" ).toString(); - QStringList tzParts = timezoneString.split( '/', QString::SkipEmptyParts ); - if ( tzParts.size() >= 2 ) - { - cDebug() << "GeoIP reporting" << timezoneString; - QString region = tzParts.takeFirst(); - QString zone = tzParts.join( '/' ); - m_startingTimezone = qMakePair( region, zone ); - } - } - } - } - catch ( YAML::Exception& e ) - { - CalamaresUtils::explainYamlException( e, data, "GeoIP data"); - } + auto tz = handler->processReply( reply->readAll() ); + if ( !tz.first.isEmpty() ) + m_startingTimezone = tz; + else + cWarning() << "GeoIP lookup at" << reply->url() << "failed."; } - + delete handler; reply->deleteLater(); manager->deleteLater(); setUpPage(); } ); QNetworkRequest request; - QString requestUrl = QString( "%1/json" ) - .arg( QUrl::fromUserInput( m_geoipUrl ).toString() ); - request.setUrl( QUrl( requestUrl ) ); + request.setUrl( QUrl::fromUserInput( actualUrl ) ); request.setAttribute( QNetworkRequest::FollowRedirectsAttribute, true ); manager->get( request ); } @@ -287,10 +293,7 @@ LocaleViewStep::setConfigurationMap( const QVariantMap& configurationMap ) } // Optional - if ( configurationMap.contains( "geoipUrl" ) && - configurationMap.value( "geoipUrl" ).type() == QVariant::String && - !configurationMap.value( "geoipUrl" ).toString().isEmpty() ) - { - m_geoipUrl = configurationMap.value( "geoipUrl" ).toString(); - } + m_geoipUrl = CalamaresUtils::getString( configurationMap, "geoipUrl" ); + m_geoipStyle = CalamaresUtils::getString( configurationMap, "geoipStyle" ); + m_geoipSelector = CalamaresUtils::getString( configurationMap, "geoipSelector" ); } diff --git a/src/modules/locale/LocaleViewStep.h b/src/modules/locale/LocaleViewStep.h index 03d1147b6..8006bc616 100644 --- a/src/modules/locale/LocaleViewStep.h +++ b/src/modules/locale/LocaleViewStep.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -75,7 +76,10 @@ private: QPair< QString, QString > m_startingTimezone; QString m_localeGenPath; - QString m_geoipUrl; + + QString m_geoipUrl; // The URL, depening on style might be modified on lookup + QString m_geoipStyle; // String selecting which kind of geoip data to expect + QString m_geoipSelector; // String selecting data from the geoip lookup QList< Calamares::job_ptr > m_jobs; }; diff --git a/src/modules/locale/images/timezone_-3.0.png b/src/modules/locale/images/timezone_-3.0.png index 0c5246e10..dc64644fc 100644 Binary files a/src/modules/locale/images/timezone_-3.0.png and b/src/modules/locale/images/timezone_-3.0.png differ diff --git a/src/modules/locale/images/timezone_-4.0.png b/src/modules/locale/images/timezone_-4.0.png index d556e93f4..da1e73735 100644 Binary files a/src/modules/locale/images/timezone_-4.0.png and b/src/modules/locale/images/timezone_-4.0.png differ diff --git a/src/modules/locale/images/timezone_-5.0.png b/src/modules/locale/images/timezone_-5.0.png index 8facd09f8..1ab1a6713 100644 Binary files a/src/modules/locale/images/timezone_-5.0.png and b/src/modules/locale/images/timezone_-5.0.png differ diff --git a/src/modules/locale/locale.conf b/src/modules/locale/locale.conf index fdff51721..ddd0bc97e 100644 --- a/src/modules/locale/locale.conf +++ b/src/modules/locale/locale.conf @@ -6,22 +6,92 @@ # Distributions using systemd can list available # time zones by using the timedatectl command. # timedatectl list-timezones +# +# The starting timezone (e.g. the pin-on-the-map) when entering +# the locale page can be set through keys *region* and *zone*. +# If either is not set, defaults to America/New_York. +# region: "America" zone: "New_York" # System locales are detected in the following order: # -# /usr/share/i18n/SUPPORTED -# localeGenPath (defaults to /etc/locale.gen if not set) -# 'locale -a' output +# - /usr/share/i18n/SUPPORTED +# - localeGenPath (defaults to /etc/locale.gen if not set) +# - 'locale -a' output +# # Enable only when your Distribution is using an # custom path for locale.gen #localeGenPath: "PATH_TO/locale.gen" # GeoIP based Language settings: -# GeoIP need an working Internet connecion. -# This can be managed from welcome.conf by adding +# +# GeoIP need an working Internet connection. +# This can be managed from `welcome.conf` by adding # internet to the list of required conditions. +# # Leave commented out to disable GeoIP. +# +# An HTTP request is made to *geoipUrl* -- depending on the geoipStyle, +# the URL may be modified before use. The request should return +# valid data in a suitable format, depending on geoipStyle; +# generally this includes a string value with the timezone +# in / format. For services that return data which +# does not follow the conventions of "suitable data" described +# below, *geoIPSelector* may be used to pick different data. +# +# Note that this example URL works, but the service is shutting +# down in June 2018. +# +# Suitable JSON data looks like +# ``` +# {"time_zone":"America/New_York"} +# ``` +# Suitable XML data looks like +# ``` +# Europe/Brussels +# ``` +# +# To accomodate providers of GeoIP timezone data with peculiar timezone +# naming conventions, the following cleanups are performed automatically: +# - backslashes are removed +# - spaces are replaced with _ +# #geoipUrl: "freegeoip.net" + +# GeoIP style. Leave commented out for the "legacy" interpretation. +# This setting only makes sense if geoipUrl is set, enabliing geoIP. +# +# Possible values are: +# unset same as "legacy" +# blank same as "legacy" +# "legacy" appends "/json" to geoipUrl, above, and uses JSON format +# (which is what freegeoip.net provides there). +# "json" URL is not modified, uses JSON format. +# "xml" URL is not modified, uses XML format. +# +# The JSON format is provided by freegeoip.net, but that service is +# shutting down in June 2018. There are other providers with the same +# format. XML format is provided for Ubiquity. +#geoipStyle: "legacy" + +# GeoIP selector. Leave commented out for the default selector +# (which depends on the style: JSON uses "time_zone" and XML +# uses TimeZone, for the FreeGeoIP-alike and the Ubiquity-alike +# respectively). If the service configured via *geoipUrl* uses +# a different attribute name (e.g. "timezone") in JSON or a +# different element tag (e.g. "") in XML, set this +# string to the name or tag to be used. +# +# In JSON: +# - if the string contains "." characters, this is used as a +# multi-level selector, e.g. "a.b" will select the timezone +# from data "{a: {b: "Europe/Amsterdam" } }". +# - each part of the string split by "." characters is used as +# a key into the JSON data. +# In XML: +# - all elements with the named tag (e.g. all TimeZone) elements +# from the document are checked; the first one with non-empty +# text value is used. +#geoipSelector: "" diff --git a/src/modules/locale/test_geoip.cpp b/src/modules/locale/test_geoip.cpp new file mode 100644 index 000000000..5ba43f72e --- /dev/null +++ b/src/modules/locale/test_geoip.cpp @@ -0,0 +1,73 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +/** + * This is a test-application that does one GeoIP parse. + */ + +#include + +#include "GeoIPJSON.h" +#ifdef HAVE_XML +#include "GeoIPXML.h" +#endif + +using std::cerr; + +int main(int argc, char** argv) +{ + if (argc != 2) + { + cerr << "Usage: curl url | test_geoip \n"; + return 1; + } + + GeoIP* handler = nullptr; + if ( QStringLiteral( "json" ) == argv[1] ) + handler = new GeoIPJSON; +#ifdef HAVE_XML + else if ( QStringLiteral( "xml" ) == argv[1] ) + handler = new GeoIPXML; +#endif + + if ( !handler ) + { + cerr << "Unknown format '" << argv[1] << "'\n"; + return 1; + } + + QByteArray ba; + while( !std::cin.eof() ) { + char arr[1024]; + std::cin.read(arr,sizeof(arr)); + int s = std::cin.gcount(); + ba.append(arr, s); + } + + auto tz = handler->processReply( ba ); + if ( tz.first.isEmpty() ) + { + std::cout << "No TimeZone determined from input.\n"; + } + else + { + std::cout << "TimeZone Region=" << tz.first.toLatin1().constData() << "\nTimeZone Zone=" << tz.second.toLatin1().constData() << '\n'; + } + + return 0; +} diff --git a/src/modules/locale/timezonewidget/timezonewidget.cpp b/src/modules/locale/timezonewidget/timezonewidget.cpp index 976c139fc..7b5a2f0d3 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.cpp +++ b/src/modules/locale/timezonewidget/timezonewidget.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Originally from the Manjaro Installation Framework * by Roland Singer @@ -23,9 +23,19 @@ #include +#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(); } diff --git a/src/modules/locale/timezonewidget/timezonewidget.h b/src/modules/locale/timezonewidget/timezonewidget.h index a96a0309c..dd49b3311 100644 --- a/src/modules/locale/timezonewidget/timezonewidget.h +++ b/src/modules/locale/timezonewidget/timezonewidget.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Originally from the Manjaro Installation Framework * by Roland Singer @@ -36,8 +37,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 diff --git a/src/modules/localecfg/main.py b/src/modules/localecfg/main.py index e6c37133b..62a00b738 100644 --- a/src/modules/localecfg/main.py +++ b/src/modules/localecfg/main.py @@ -6,6 +6,8 @@ # Copyright 2014, Anke Boersma # Copyright 2015, Philip Müller # Copyright 2016, Teo Mrnjavac +# Copyright 2018, AlmAck +# Copyright 2018, Adriaan de Groot # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -21,14 +23,91 @@ # along with Calamares. If not, see . import os +import re import shutil -import libcalamares +RE_IS_COMMENT = re.compile("^ *#") +def is_comment(line): + """ + Does the @p line look like a comment? Whitespace, followed by a # + is a comment-only line. + """ + return bool(RE_IS_COMMENT.match(line)) + +RE_TRAILING_COMMENT = re.compile("#.*$") +RE_REST_OF_LINE = re.compile("\\s.*$") +def extract_locale(line): + """ + Extracts a locale from the @p line, and returns a pair of + (extracted-locale, uncommented line). The locale is the + first word of the line after uncommenting (in the human- + readable text explanation at the top of most /etc/locale.gen + files, the locales may be bogus -- either "" or e.g. "Configuration") + """ + # Remove leading spaces and comment signs + line = RE_IS_COMMENT.sub("", line) + uncommented = line.strip() + fields = RE_TRAILING_COMMENT.sub("", uncommented).strip().split() + if len(fields) != 2: + # Not exactly two fields, can't be a proper locale line + return "", uncommented + else: + # Drop all but first field + locale = RE_REST_OF_LINE.sub("", uncommented) + return locale, uncommented + + +def rewrite_locale_gen(srcfilename, destfilename, locale_conf): + """ + Copies a locale.gen file from @p srcfilename to @p destfilename + (this may be the same name), enabling those locales that can + be found in the map @p locale_conf. Also always enables en_US.UTF-8. + """ + en_us_locale = 'en_US.UTF-8' + + # Get entire source-file contents + text = [] + with open(srcfilename, "r") as gen: + text = gen.readlines() + + # we want unique values, so locale_values should have 1 or 2 items + locale_values = set(locale_conf.values()) + locale_values.add(en_us_locale) # Always enable en_US as well + + enabled_locales = {} + seen_locales = set() + + # Write source out again, enabling some + with open(destfilename, "w") as gen: + for line in text: + c = is_comment(line) + locale, uncommented = extract_locale(line) + + # Non-comment lines are preserved, and comment lines + # may be enabled if they match a desired locale + if not c: + seen_locales.add(locale) + else: + for locale_value in locale_values: + if locale.startswith(locale_value): + enabled_locales[locale] = uncommented + gen.write(line) + + gen.write("\n###\n#\n# Locales enabled by Calamares\n") + for locale, line in enabled_locales.items(): + if locale not in seen_locales: + gen.write(line + "\n") + seen_locales.add(locale) + + for locale in locale_values: + if locale not in seen_locales: + gen.write("# Missing: %s\n" % locale) def run(): """ Create locale """ - en_us_locale = 'en_US.UTF-8' + import libcalamares + locale_conf = libcalamares.globalstorage.value("localeConf") if not locale_conf: @@ -46,50 +125,36 @@ def run(): } install_path = libcalamares.globalstorage.value("rootMountPoint") + target_locale_gen = "{!s}/etc/locale.gen".format(install_path) + target_locale_gen_bak = target_locale_gen + ".bak" + target_locale_conf_path = "{!s}/etc/locale.conf".format(install_path) + target_etc_default_path = "{!s}/etc/default".format(install_path) # restore backup if available - if os.path.exists('/etc/locale.gen.bak'): - shutil.copy2("{!s}/etc/locale.gen.bak".format(install_path), - "{!s}/etc/locale.gen".format(install_path)) - - # run locale-gen if detected + if os.path.exists(target_locale_gen_bak): + shutil.copy2(target_locale_gen_bak, target_locale_gen) + libcalamares.utils.debug("Restored backup {!s} -> {!s}" + .format(target_locale_gen_bak).format(target_locale_gen)) + + # run locale-gen if detected; this *will* cause an exception + # if the live system has locale.gen, but the target does not: + # in that case, fix your installation filesystem. if os.path.exists('/etc/locale.gen'): - text = [] - - with open("{!s}/etc/locale.gen".format(install_path), "r") as gen: - text = gen.readlines() - - # we want unique values, so locale_values should have 1 or 2 items - locale_values = set(locale_conf.values()) - - with open("{!s}/etc/locale.gen".format(install_path), "w") as gen: - for line in text: - # always enable en_US - if line.startswith("#" + en_us_locale): - # uncomment line - line = line[1:].lstrip() - - for locale_value in locale_values: - if line.startswith("#" + locale_value): - # uncomment line - line = line[1:].lstrip() - - gen.write(line) - + rewrite_locale_gen(target_locale_gen, target_locale_gen, locale_conf) libcalamares.utils.target_env_call(['locale-gen']) - print('locale.gen done') + libcalamares.utils.debug('{!s} done'.format(target_locale_gen)) # write /etc/locale.conf - locale_conf_path = os.path.join(install_path, "etc/locale.conf") - with open(locale_conf_path, "w") as lcf: + with open(target_locale_conf_path, "w") as lcf: for k, v in locale_conf.items(): lcf.write("{!s}={!s}\n".format(k, v)) + libcalamares.utils.debug('{!s} done'.format(target_locale_conf_path)) # write /etc/default/locale if /etc/default exists and is a dir - etc_default_path = os.path.join(install_path, "etc/default") - if os.path.isdir(etc_default_path): - with open(os.path.join(etc_default_path, "locale"), "w") as edl: + if os.path.isdir(target_etc_default_path): + with open(os.path.join(target_etc_default_path, "locale"), "w") as edl: for k, v in locale_conf.items(): edl.write("{!s}={!s}\n".format(k, v)) + libcalamares.utils.debug('{!s} done'.format(target_etc_default_path)) return None diff --git a/src/modules/localecfg/module.desc b/src/modules/localecfg/module.desc index 89baab7ad..815480562 100644 --- a/src/modules/localecfg/module.desc +++ b/src/modules/localecfg/module.desc @@ -1,3 +1,6 @@ +# Enable the configured locales (those set by the user on the +# user page) in /etc/locale.gen, if they are available in the +# target system. --- type: "job" name: "localecfg" diff --git a/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf index 886867f8d..f5610cd7c 100644 --- a/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf +++ b/src/modules/luksopenswaphookcfg/luksopenswaphookcfg.conf @@ -1,2 +1,4 @@ +# Writes an openswap configuration with LUKS settings to the given path --- +# Path of the configuration file to write (in the target system) configFilePath: /etc/openswap.conf diff --git a/src/modules/mount/mount.conf b/src/modules/mount/mount.conf index d8f8fb8cc..bb28eed66 100644 --- a/src/modules/mount/mount.conf +++ b/src/modules/mount/mount.conf @@ -1,4 +1,18 @@ +# Mount filesystems in the target (generally, before treating the +# target as a usable chroot / "live" system). Filesystems are +# automatically mounted from the partitioning module. Filesystems +# listed here are **extra**. The filesystems listed in *extraMounts* +# are mounted in all target systems. The filesystems listed in +# *extraMountsEfi* are mounted in the target system **only** if +# the host machine uses UEFI. --- +# Extra filesystems to mount. The key's value is a list of entries; each +# entry has four keys: +# - device The device node to mount +# - fs The filesystem type to use +# - mountPoint Where to mount the filesystem +# - options (optional) Extra options to pass to mount(8) +# extraMounts: - device: proc fs: proc diff --git a/src/modules/netinstall/NetInstallPage.cpp b/src/modules/netinstall/NetInstallPage.cpp index b7bcdd457..39282ef00 100644 --- a/src/modules/netinstall/NetInstallPage.cpp +++ b/src/modules/netinstall/NetInstallPage.cpp @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * Copyright 2017, Gabriel Craciunescu * * Calamares is free software: you can redistribute it and/or modify @@ -24,25 +24,17 @@ #include "PackageModel.h" #include "ui_page_netinst.h" -#include "GlobalStorage.h" #include "JobQueue.h" + #include "utils/Logger.h" #include "utils/Retranslator.h" #include "utils/YamlUtils.h" -#include -#include -#include - #include #include #include #include -#include -#include -#include -#include #include @@ -128,12 +120,8 @@ NetInstallPage::selectedPackages() const } void -NetInstallPage::loadGroupList() +NetInstallPage::loadGroupList( const QString& confUrl ) { - QString confUrl( - Calamares::JobQueue::instance()->globalStorage()->value( - "groupsUrl" ).toString() ); - QNetworkRequest request; request.setUrl( QUrl( confUrl ) ); // Follows all redirects except unsafe ones (https to http). diff --git a/src/modules/netinstall/NetInstallPage.h b/src/modules/netinstall/NetInstallPage.h index 58308412d..7ec37e7ac 100644 --- a/src/modules/netinstall/NetInstallPage.h +++ b/src/modules/netinstall/NetInstallPage.h @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -25,13 +25,14 @@ #include "PackageTreeItem.h" #include "Typedefs.h" -#include #include #include +#include // required forward declarations class QByteArray; class QNetworkReply; +class QString; namespace Ui { @@ -46,10 +47,12 @@ public: void onActivate(); - // Retrieves the groups, with name, description and packages, from - // the remote URL configured in the settings. Assumes the URL is already - // in the global storage. This should be called before displaying the page. - void loadGroupList(); + /** @brief Retrieves the groups, with name, description and packages + * + * Loads data from the given URL. This should be called before + * displaying the page. + */ + void loadGroupList( const QString& url ); // Sets the "required" state of netinstall data. Influences whether // corrupt or unavailable data causes checkReady() to be emitted diff --git a/src/modules/netinstall/NetInstallViewStep.cpp b/src/modules/netinstall/NetInstallViewStep.cpp index 50e08486b..6dd824b32 100644 --- a/src/modules/netinstall/NetInstallViewStep.cpp +++ b/src/modules/netinstall/NetInstallViewStep.cpp @@ -2,7 +2,7 @@ * Copyright 2016, Luca Giambonini * Copyright 2016, Lisa Vitolo * Copyright 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +22,8 @@ #include "JobQueue.h" #include "GlobalStorage.h" + +#include "utils/CalamaresUtils.h" #include "utils/Logger.h" #include "NetInstallPage.h" @@ -179,17 +181,15 @@ NetInstallViewStep::onLeave() void NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap ) { - m_widget->setRequired( - configurationMap.contains( "required" ) && - configurationMap.value( "required" ).type() == QVariant::Bool && - configurationMap.value( "required" ).toBool() ); + m_widget->setRequired( CalamaresUtils::getBool( configurationMap, "required", false ) ); - if ( configurationMap.contains( "groupsUrl" ) && - configurationMap.value( "groupsUrl" ).type() == QVariant::String ) + QString groupsUrl = CalamaresUtils::getString( configurationMap, "groupsUrl" ); + if ( !groupsUrl.isEmpty() ) { - Calamares::JobQueue::instance()->globalStorage()->insert( - "groupsUrl", configurationMap.value( "groupsUrl" ).toString() ); - m_widget->loadGroupList(); + // Keep putting groupsUrl into the global storage, + // even though it's no longer used for in-module data-passing. + Calamares::JobQueue::instance()->globalStorage()->insert( "groupsUrl", groupsUrl ); + m_widget->loadGroupList( groupsUrl ); } } diff --git a/src/modules/netinstall/PackageModel.cpp b/src/modules/netinstall/PackageModel.cpp index 3e721c017..f64bd778f 100644 --- a/src/modules/netinstall/PackageModel.cpp +++ b/src/modules/netinstall/PackageModel.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright (c) 2017, Kyle Robbertze - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/netinstall/netinstall.conf b/src/modules/netinstall/netinstall.conf index f5977a267..fe99eb2be 100644 --- a/src/modules/netinstall/netinstall.conf +++ b/src/modules/netinstall/netinstall.conf @@ -1,7 +1,10 @@ --- # This is the URL that is retrieved to get the netinstall groups-and-packages -# data (which should be in the format described in netinstall.yaml). -groupsUrl: http://chakraos.org/netinstall.php +# data (which should be in the format described in netinstall.yaml), e.g.: +# groupsUrl: http://example.org/netinstall.php +# or it can be a locally installed file: +# groupsUrl: file:///usr/share/calamares/netinstall.yaml +# groupsUrl: file:///usr/share/calamares/netinstall.yaml # If the installation can proceed without netinstall (e.g. the Live CD # can create a working installed system, but netinstall is preferred diff --git a/src/modules/netinstall/page_netinst.ui b/src/modules/netinstall/page_netinst.ui index 15d27cfb4..3aa4e57ec 100644 --- a/src/modules/netinstall/page_netinst.ui +++ b/src/modules/netinstall/page_netinst.ui @@ -35,9 +35,9 @@ - - 11 - + + 11 + diff --git a/src/modules/packages/main.py b/src/modules/packages/main.py index b246244f5..bffd6a945 100644 --- a/src/modules/packages/main.py +++ b/src/modules/packages/main.py @@ -8,6 +8,7 @@ # Copyright 2016-2017, Kyle Robbertze # Copyright 2017, Alf Gaida # Copyright 2018, Adriaan de Groot +# Copyright 2018, Philip Müller # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -153,6 +154,8 @@ class PMPackageKit(PackageManager): def update_db(self): check_target_env_call(["pkcon", "refresh"]) + def update_system(self): + check_target_env_call(["pkcon", "-py", "update"]) class PMZypp(PackageManager): backend = "zypp" @@ -170,12 +173,15 @@ class PMZypp(PackageManager): def update_db(self): check_target_env_call(["zypper", "--non-interactive", "update"]) + def update_system(self): + # Doesn't need to update the system explicitly + pass class PMYum(PackageManager): backend = "yum" def install(self, pkgs, from_local=False): - check_target_env_call(["yum", "install", "-y"] + pkgs) + check_target_env_call(["yum", "-y", "install"] + pkgs) def remove(self, pkgs): check_target_env_call(["yum", "--disablerepo=*", "-C", "-y", @@ -185,12 +191,14 @@ class PMYum(PackageManager): # Doesn't need updates pass + def update_system(self): + check_target_env_call(["yum", "-y", "upgrade"]) class PMDnf(PackageManager): backend = "dnf" def install(self, pkgs, from_local=False): - check_target_env_call(["dnf", "install", "-y"] + pkgs) + check_target_env_call(["dnf", "-y", "install"] + pkgs) def remove(self, pkgs): # ignore the error code for now because dnf thinks removing a @@ -199,9 +207,12 @@ class PMDnf(PackageManager): "remove"] + pkgs) def update_db(self): - # Doesn't need to update explicitly + # Doesn't need updates pass + def update_system(self): + check_target_env_call(["dnf", "-y", "upgrade"]) + class PMUrpmi(PackageManager): backend = "urpmi" @@ -218,6 +229,10 @@ class PMUrpmi(PackageManager): def update_db(self): check_target_env_call(["urpmi.update", "-a"]) + def update_system(self): + # Doesn't need to update the system explicitly + pass + class PMApt(PackageManager): backend = "apt" @@ -234,6 +249,10 @@ class PMApt(PackageManager): def update_db(self): check_target_env_call(["apt-get", "update"]) + def update_system(self): + # Doesn't need to update the system explicitly + pass + class PMPacman(PackageManager): backend = "pacman" @@ -242,7 +261,7 @@ class PMPacman(PackageManager): if from_local: pacman_flags = "-U" else: - pacman_flags = "-Sy" + pacman_flags = "-S" check_target_env_call(["pacman", pacman_flags, "--noconfirm"] + pkgs) @@ -253,6 +272,9 @@ class PMPacman(PackageManager): def update_db(self): check_target_env_call(["pacman", "-Sy"]) + def update_system(self): + check_target_env_call(["pacman", "-Su"]) + class PMPortage(PackageManager): backend = "portage" @@ -267,6 +289,10 @@ class PMPortage(PackageManager): def update_db(self): check_target_env_call(["emerge", "--sync"]) + def update_system(self): + # Doesn't need to update the system explicitly + pass + class PMEntropy(PackageManager): backend = "entropy" @@ -280,6 +306,10 @@ class PMEntropy(PackageManager): def update_db(self): check_target_env_call(["equo", "update"]) + def update_system(self): + # Doesn't need to update the system explicitly + pass + class PMDummy(PackageManager): backend = "dummy" @@ -293,6 +323,9 @@ class PMDummy(PackageManager): def update_db(self): libcalamares.utils.debug("Updating DB") + def update_system(self): + libcalamares.utils.debug("Updating System") + def run(self, script): libcalamares.utils.debug("Running script '" + str(script) + "'") @@ -309,6 +342,10 @@ class PMPisi(PackageManager): def update_db(self): check_target_env_call(["pisi", "update-repo"]) + def update_system(self): + # Doesn't need to update the system explicitly + pass + # Collect all the subclasses of PackageManager defined above, # and index them based on the backend property of each class. @@ -332,7 +369,10 @@ def subst_locale(plist): """ locale = libcalamares.globalstorage.value("locale") if not locale: - return plist + # It is possible to skip the locale-setting entirely. + # Then pretend it is "en", so that {LOCALE}-decorated + # package names are removed from the list. + locale = "en" ret = [] for packagedata in plist: @@ -378,20 +418,20 @@ def run_operations(pkgman, entry): global group_packages, completed_packages, mode_packages for key in entry.keys(): - entry[key] = subst_locale(entry[key]) - group_packages = len(entry[key]) + package_list = subst_locale(entry[key]) + group_packages = len(package_list) if key == "install": _change_mode(INSTALL) - if all([isinstance(x, str) for x in entry[key]]): - pkgman.install(entry[key]) + if all([isinstance(x, str) for x in package_list]): + pkgman.install(package_list) else: - for package in entry[key]: + for package in package_list: pkgman.install_package(package) elif key == "try_install": _change_mode(INSTALL) # we make a separate package manager call for each package so a # single failing package won't stop all of them - for package in entry[key]: + for package in package_list: try: pkgman.install_package(package) except subprocess.CalledProcessError: @@ -400,10 +440,10 @@ def run_operations(pkgman, entry): libcalamares.utils.warning(warn_text) elif key == "remove": _change_mode(REMOVE) - pkgman.remove(entry[key]) + pkgman.remove(package_list) elif key == "try_remove": _change_mode(REMOVE) - for package in entry[key]: + for package in package_list: try: pkgman.remove([package]) except subprocess.CalledProcessError: @@ -412,9 +452,9 @@ def run_operations(pkgman, entry): libcalamares.utils.warning(warn_text) elif key == "localInstall": _change_mode(INSTALL) - pkgman.install(entry[key], from_local=True) + pkgman.install(package_list, from_local=True) - completed_packages += len(entry[key]) + completed_packages += len(package_list) libcalamares.job.setprogress(completed_packages * 1.0 / total_packages) libcalamares.utils.debug(pretty_name()) @@ -449,6 +489,10 @@ def run(): if update_db and libcalamares.globalstorage.value("hasInternet"): pkgman.update_db() + update_system = libcalamares.job.configuration.get("update_system", False) + if update_system and libcalamares.globalstorage.value("hasInternet"): + pkgman.update_system() + operations = libcalamares.job.configuration.get("operations", []) if libcalamares.globalstorage.contains("packageOperations"): operations += libcalamares.globalstorage.value("packageOperations") @@ -458,7 +502,7 @@ def run(): completed_packages = 0 for op in operations: for packagelist in op.values(): - total_packages += len(packagelist) + total_packages += len(subst_locale(packagelist)) if not total_packages: # Avoids potential divide-by-zero in progress reporting diff --git a/src/modules/packages/packages.conf b/src/modules/packages/packages.conf index 60c86791b..974ba07a7 100644 --- a/src/modules/packages/packages.conf +++ b/src/modules/packages/packages.conf @@ -14,21 +14,30 @@ # backend: dummy +# # Often package installation needs an internet connection. # Since you may allow system installation without a connection -# and want to offer **optional** package installation, it's +# and want to offer OPTIONAL package installation, it's # possible to have no internet, yet have this packages module # enabled in settings. # # You can skip the whole module when there is no internet -# by setting *skip_if_no_internet* to true. +# by setting "skip_if_no_internet" to true. # # You can run a package-manager specific update procedure # before installing packages (for instance, to update the # list of packages and dependencies); this is done only if there -# is an internet connection. Set *update_db* to true to do so. +# is an internet connection. +# +# Set "update_db" to 'true' for refreshing the database on the +# target system. On target installations, which got installed by +# unsquashing, a full system update may be needed. Otherwise +# post-installing additional packages may result in conflicts. +# Therefore set also "update_system" to 'true'. +# skip_if_no_internet: false update_db: true +update_system: false # # List of maps with package operations such as install or remove. @@ -76,7 +85,7 @@ update_db: true # pre-script: touch /tmp/installing-vi # post-script: rm -f /tmp/installing-vi # -# The pre- and post-scripts are optional, but not both optional: using +# The pre- and post-scripts are optional, but you cannot leave both out: using # "package: vi" with neither script option will trick Calamares into # trying to install a package named "package: vi", which is unlikely to work. # @@ -84,11 +93,16 @@ update_db: true # packages for software based on the selected system locale. By including # the string LOCALE in the package name, the following happens: # -# - if the system locale is English (generally US English; en_GB is a valid -# localization), then the package is not installed at all, -# - otherwise $LOCALE or ${LOCALE} is replaced by the Bcp47 name of the selected -# system locale, e.g. nl_BE. Note that just plain LOCALE will not be replaced, -# so foo-LOCALE will be unchanged, while foo-$LOCALE will be changed. +# - if the system locale is English (any variety), then the package is not +# installed at all, +# - otherwise $LOCALE or ${LOCALE} is replaced by the 'lower-cased' BCP47 +# name of the 'language' part of the selected system locale (not the +# country/region/dialect part), e.g. selecting "nl_BE" will use "nl" +# here. +# +# Take care that just plain LOCALE will not be replaced, so foo-LOCALE will +# be left unchanged, while foo-$LOCALE will be changed. However, foo-LOCALE +# 'will' be removed from the list of packages, if English is selected. # # The following installs localizations for vi, if they are relevant; if # there is no localization, installation continues normally. @@ -127,6 +141,7 @@ update_db: true operations: - install: - vi + - vi-${LOCALE} - wget - binutils - remove: diff --git a/src/modules/partition/CMakeLists.txt b/src/modules/partition/CMakeLists.txt index 156ff86f5..c166390e8 100644 --- a/src/modules/partition/CMakeLists.txt +++ b/src/modules/partition/CMakeLists.txt @@ -12,6 +12,10 @@ set_package_properties( ) if ( KPMcore_FOUND ) + if ( KPMcore_VERSION VERSION_GREATER "3.3.0") + add_definitions(-DWITH_KPMCOREGT33) # kpmcore greater than 3.3 + endif() + include_directories( ${KPMCORE_INCLUDE_DIR} ) include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) @@ -35,27 +39,36 @@ if ( KPMcore_FOUND ) gui/BootInfoWidget.cpp gui/ChoicePage.cpp gui/CreatePartitionDialog.cpp + gui/CreateVolumeGroupDialog.cpp gui/DeviceInfoWidget.cpp gui/EditExistingPartitionDialog.cpp gui/EncryptWidget.cpp + gui/ListPhysicalVolumeWidgetItem.cpp gui/PartitionPage.cpp gui/PartitionBarsView.cpp + gui/PartitionDialogHelpers.cpp gui/PartitionLabelsView.cpp gui/PartitionSizeController.cpp gui/PartitionSplitterWidget.cpp gui/PartitionViewStep.cpp gui/PrettyRadioButton.cpp + gui/ResizeVolumeGroupDialog.cpp gui/ScanningDialog.cpp gui/ReplaceWidget.cpp + gui/VolumeGroupBaseDialog.cpp jobs/ClearMountsJob.cpp jobs/ClearTempMountsJob.cpp jobs/CreatePartitionJob.cpp jobs/CreatePartitionTableJob.cpp + jobs/CreateVolumeGroupJob.cpp + jobs/DeactivateVolumeGroupJob.cpp jobs/DeletePartitionJob.cpp jobs/FillGlobalStorageJob.cpp jobs/FormatPartitionJob.cpp jobs/PartitionJob.cpp + jobs/RemoveVolumeGroupJob.cpp jobs/ResizePartitionJob.cpp + jobs/ResizeVolumeGroupJob.cpp jobs/SetPartitionFlagsJob.cpp UI gui/ChoicePage.ui @@ -65,6 +78,7 @@ if ( KPMcore_FOUND ) gui/EncryptWidget.ui gui/PartitionPage.ui gui/ReplaceWidget.ui + gui/VolumeGroupBaseDialog.ui LINK_PRIVATE_LIBRARIES kpmcore calamaresui diff --git a/src/modules/partition/core/DeviceList.cpp b/src/modules/partition/core/DeviceList.cpp index d7e6bab29..ebc40a03d 100644 --- a/src/modules/partition/core/DeviceList.cpp +++ b/src/modules/partition/core/DeviceList.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -52,22 +53,6 @@ hasRootPartition( Device* device ) return false; } -/* Unused */ -static bool -hasMountedPartitions( Device* device ) -{ - cDebug() << "Checking for mounted partitions in" << device->deviceNode(); - for ( auto it = PartitionIterator::begin( device ); it != PartitionIterator::end( device ); ++it ) - { - if ( ! ( *it )->isMounted() ) - { - cDebug() << " .." << ( *it )->partitionPath() << "is mounted on" << ( *it )->mountPoint(); - return true; - } - } - return false; -} - static bool isIso9660( const Device* device ) { diff --git a/src/modules/partition/core/DeviceModel.cpp b/src/modules/partition/core/DeviceModel.cpp index 00058bac4..260315729 100644 --- a/src/modules/partition/core/DeviceModel.cpp +++ b/src/modules/partition/core/DeviceModel.cpp @@ -29,6 +29,7 @@ // KF5 #include +#include #include // STL @@ -77,10 +78,18 @@ DeviceModel::data( const QModelIndex& index, int role ) const if ( device->name().isEmpty() ) return device->deviceNode(); else - return tr( "%1 - %2 (%3)" ) - .arg( device->name() ) - .arg( KFormat().formatByteSize( device->capacity() ) ) - .arg( device->deviceNode() ); + { + if ( device->logicalSize() >= 0 && device->totalLogical() >= 0 ) + return tr( "%1 - %2 (%3)" ) + .arg( device->name() ) + .arg( KFormat().formatByteSize( device->capacity() ) ) + .arg( device->deviceNode() ); + // Newly LVM VGs don't have capacity property yet (i.e. always has 1B capacity), so don't show it for a while + else + return tr( "%1 - (%2)" ) + .arg( device->name() ) + .arg( device->deviceNode() ); + } case Qt::DecorationRole: return CalamaresUtils::defaultPixmap( CalamaresUtils::PartitionDisk, CalamaresUtils::Original, @@ -116,3 +125,31 @@ DeviceModel::swapDevice( Device* oldDevice, Device* newDevice ) emit dataChanged( index( indexOfOldDevice ), index( indexOfOldDevice ) ); } + +void +DeviceModel::addDevice( Device *device ) +{ + beginResetModel(); + + m_devices << device; + std::sort( m_devices.begin(), m_devices.end(), []( const Device* dev1, const Device* dev2 ) + { + return dev1->deviceNode() < dev2->deviceNode(); + } ); + + endResetModel(); +} + +void +DeviceModel::removeDevice( Device *device ) +{ + beginResetModel(); + + m_devices.removeAll( device ); + std::sort( m_devices.begin(), m_devices.end(), []( const Device* dev1, const Device* dev2 ) + { + return dev1->deviceNode() < dev2->deviceNode(); + } ); + + endResetModel(); +} diff --git a/src/modules/partition/core/DeviceModel.h b/src/modules/partition/core/DeviceModel.h index ccca426bd..2e2f99342 100644 --- a/src/modules/partition/core/DeviceModel.h +++ b/src/modules/partition/core/DeviceModel.h @@ -49,6 +49,10 @@ public: void swapDevice( Device* oldDevice, Device* newDevice ); + void addDevice( Device* device ); + + void removeDevice( Device* device ); + private: QList< Device* > m_devices; }; diff --git a/src/modules/partition/core/KPMHelpers.cpp b/src/modules/partition/core/KPMHelpers.cpp index 3f3134c5b..f8be44345 100644 --- a/src/modules/partition/core/KPMHelpers.cpp +++ b/src/modules/partition/core/KPMHelpers.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartUtils.cpp b/src/modules/partition/core/PartUtils.cpp index 775fcee66..12aa489db 100644 --- a/src/modules/partition/core/PartUtils.cpp +++ b/src/modules/partition/core/PartUtils.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -22,6 +23,7 @@ #include "core/DeviceModel.h" #include "core/KPMHelpers.h" +#include "core/PartitionInfo.h" #include "core/PartitionIterator.h" #include @@ -138,7 +140,6 @@ canBeResized( PartitionCoreModule* core, const QString& partitionPath ) if ( partitionWithOs.startsWith( "/dev/" ) ) { cDebug() << partitionWithOs << "seems like a good path"; - bool canResize = false; DeviceModel* dm = core->deviceModel(); for ( int i = 0; i < dm->rowCount(); ++i ) { @@ -343,23 +344,31 @@ isEfiSystem() bool isEfiBootable( const Partition* candidate ) { + cDebug() << "Check EFI bootable" << candidate->partitionPath() << candidate->devicePath(); + cDebug() << " .. flags" << candidate->activeFlags(); + + auto flags = PartitionInfo::flags( candidate ); + /* If bit 17 is set, old-style Esp flag, it's OK */ - if ( candidate->activeFlags().testFlag( PartitionTable::FlagEsp ) ) + if ( flags.testFlag( PartitionTable::FlagEsp ) ) return true; - /* Otherwise, if it's a GPT table, Boot (bit 0) is the same as Esp */ const PartitionNode* root = candidate; while ( root && !root->isRoot() ) + { root = root->parent(); + cDebug() << " .. moved towards root" << (void *)root; + } // Strange case: no root found, no partition table node? if ( !root ) return false; const PartitionTable* table = dynamic_cast( root ); + cDebug() << " .. partition table" << (void *)table << "type" << ( table ? table->type() : PartitionTable::TableType::unknownTableType ); return table && ( table->type() == PartitionTable::TableType::gpt ) && - candidate->activeFlags().testFlag( PartitionTable::FlagBoot ); + flags.testFlag( PartitionTable::FlagBoot ); } } // nmamespace PartUtils diff --git a/src/modules/partition/core/PartUtils.h b/src/modules/partition/core/PartUtils.h index c81258712..b94e20567 100644 --- a/src/modules/partition/core/PartUtils.h +++ b/src/modules/partition/core/PartUtils.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/core/PartitionActions.cpp b/src/modules/partition/core/PartitionActions.cpp index e1822d434..68ad85cf2 100644 --- a/src/modules/partition/core/PartitionActions.cpp +++ b/src/modules/partition/core/PartitionActions.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -90,17 +90,35 @@ swapSuggestion( const qint64 availableSpaceB ) suggestedSwapSizeB *= overestimationFactor; // don't use more than 10% of available space - qreal maxSwapDiskRatio = 1.10; + qreal maxSwapDiskRatio = 0.10; qint64 maxSwapSizeB = availableSpaceB * maxSwapDiskRatio; if ( suggestedSwapSizeB > maxSwapSizeB ) suggestedSwapSizeB = maxSwapSizeB; } - cDebug() << "Suggested swap size:" << suggestedSwapSizeB / 1024. / 1024. /1024. << "GiB"; + cDebug() << "Suggested swap size:" << suggestedSwapSizeB / 1024. / 1024. / 1024. << "GiB"; return suggestedSwapSizeB; } +constexpr qint64 +alignBytesToBlockSize( qint64 bytes, qint64 blocksize ) +{ + Q_ASSERT( bytes >= 0 ); + Q_ASSERT( blocksize > 0 ); + qint64 blocks = bytes / blocksize; + Q_ASSERT( blocks >= 0 ); + + if ( blocks * blocksize != bytes ) + ++blocks; + return blocks * blocksize; +} + +constexpr qint64 +bytesToSectors( qint64 bytes, qint64 blocksize ) +{ + return alignBytesToBlockSize( alignBytesToBlockSize( bytes, blocksize), MiBtoBytes(1) ) / blocksize; +} void doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPassphrase ) @@ -114,25 +132,26 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass defaultFsType = "ext4"; // Partition sizes are expressed in MiB, should be multiples of - // the logical sector size (usually 512B). - int uefisys_part_size = 0; - int empty_space_size = 0; - if ( isEfi ) - { - uefisys_part_size = 300; - empty_space_size = 2; - } - else - { - // we start with a 1MiB offset before the first partition - empty_space_size = 1; - } + // the logical sector size (usually 512B). EFI starts with 2MiB + // empty and a 300MiB EFI boot partition, while BIOS starts at + // the 1MiB boundary (usually sector 2048). + int uefisys_part_size = isEfi ? 300 : 0; + int empty_space_size = isEfi ? 2 : 1; - qint64 firstFreeSector = MiBtoBytes(empty_space_size) / dev->logicalSize() + 1; + // Since sectors count from 0, if the space is 2048 sectors in size, + // the first free sector has number 2048 (and there are 2048 sectors + // before that one, numbered 0..2047). + qint64 firstFreeSector = bytesToSectors( MiBtoBytes(empty_space_size), dev->logicalSize() ); if ( isEfi ) { - qint64 lastSector = firstFreeSector + ( MiBtoBytes(uefisys_part_size) / dev->logicalSize() ); + qint64 efiSectorCount = bytesToSectors( MiBtoBytes(uefisys_part_size), dev->logicalSize() ); + Q_ASSERT( efiSectorCount > 0 ); + + // Since sectors count from 0, and this partition is created starting + // at firstFreeSector, we need efiSectorCount sectors, numbered + // firstFreeSector..firstFreeSector+efiSectorCount-1. + qint64 lastSector = firstFreeSector + efiSectorCount - 1; core->createPartitionTable( dev, PartitionTable::gpt ); Partition* efiPartition = KPMHelpers::createNewPartition( dev->partitionTable(), @@ -162,8 +181,11 @@ doAutopartition( PartitionCoreModule* core, Device* dev, const QString& luksPass { qint64 availableSpaceB = ( dev->totalLogical() - firstFreeSector ) * dev->logicalSize(); suggestedSwapSizeB = swapSuggestion( availableSpaceB ); + // Space required by this installation is what the distro claims is needed + // (via global configuration) plus the swap size plus a fudge factor of + // 0.6GiB (this was 2.1GiB up to Calamares 3.2.2). qint64 requiredSpaceB = - GiBtoBytes( gs->value( "requiredStorageGB" ).toDouble() + 0.1 + 2.0 ) + + GiBtoBytes( gs->value( "requiredStorageGB" ).toDouble() + 0.6 ) + suggestedSwapSizeB; // If there is enough room for ESP + root + swap, create swap, otherwise don't. diff --git a/src/modules/partition/core/PartitionCoreModule.cpp b/src/modules/partition/core/PartitionCoreModule.cpp index c508e04ef..f838ab2aa 100644 --- a/src/modules/partition/core/PartitionCoreModule.cpp +++ b/src/modules/partition/core/PartitionCoreModule.cpp @@ -2,7 +2,8 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot + * Copyright 2018, Caio Carvalho * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,10 +34,14 @@ #include "jobs/ClearTempMountsJob.h" #include "jobs/CreatePartitionJob.h" #include "jobs/CreatePartitionTableJob.h" +#include "jobs/CreateVolumeGroupJob.h" +#include "jobs/DeactivateVolumeGroupJob.h" #include "jobs/DeletePartitionJob.h" #include "jobs/FillGlobalStorageJob.h" #include "jobs/FormatPartitionJob.h" +#include "jobs/RemoveVolumeGroupJob.h" #include "jobs/ResizePartitionJob.h" +#include "jobs/ResizeVolumeGroupJob.h" #include "jobs/SetPartitionFlagsJob.h" #include "Typedefs.h" @@ -44,10 +49,13 @@ // KPMcore #include +#include #include #include #include #include +#include +#include // Qt #include @@ -61,6 +69,7 @@ PartitionCoreModule::DeviceInfo::DeviceInfo( Device* _device ) : device( _device ) , partitionModel( new PartitionModel ) , immutableDevice( new Device( *_device ) ) + , isAvailable( true ) {} PartitionCoreModule::DeviceInfo::~DeviceInfo() @@ -164,7 +173,20 @@ PartitionCoreModule::doInit() for ( auto deviceInfo : m_deviceInfos ) deviceInfo->partitionModel->init( deviceInfo->device.data(), m_osproberLines ); - m_bootLoaderModel->init( devices ); + DeviceList bootLoaderDevices; + + for ( DeviceList::Iterator it = devices.begin(); it != devices.end(); ++it) + if ( (*it)->type() != Device::Type::Disk_Device ) + { + cDebug() << "Ignoring device that is not Disk_Device to bootLoaderDevices list."; + continue; + } + else + bootLoaderDevices.append(*it); + + m_bootLoaderModel->init( bootLoaderDevices ); + + scanForLVMPVs(); //FIXME: this should be removed in favor of // proper KPM support for EFI @@ -247,11 +269,83 @@ PartitionCoreModule::createPartition( Device* device, { SetPartFlagsJob* fJob = new SetPartFlagsJob( device, partition, flags ); deviceInfo->jobs << Calamares::job_ptr( fJob ); + PartitionInfo::setFlags( partition, flags ); } refresh(); } +void +PartitionCoreModule::createVolumeGroup( QString &vgName, + QVector< const Partition* > pvList, + qint32 peSize ) +{ + // Appending '_' character in case of repeated VG name + while ( hasVGwithThisName( vgName ) ) + vgName.append('_'); + + CreateVolumeGroupJob* job = new CreateVolumeGroupJob( vgName, pvList, peSize ); + job->updatePreview(); + + LvmDevice* device = new LvmDevice(vgName); + + for ( const Partition* p : pvList ) + device->physicalVolumes() << p; + + DeviceInfo* deviceInfo = new DeviceInfo( device ); + + deviceInfo->partitionModel->init( device, osproberEntries() ); + + m_deviceModel->addDevice( device ); + + m_deviceInfos << deviceInfo; + deviceInfo->jobs << Calamares::job_ptr( job ); + + refresh(); +} + +void +PartitionCoreModule::resizeVolumeGroup( LvmDevice *device, QVector< const Partition* >& pvList ) +{ + DeviceInfo* deviceInfo = infoForDevice( device ); + Q_ASSERT( deviceInfo ); + + ResizeVolumeGroupJob* job = new ResizeVolumeGroupJob( device, pvList ); + + deviceInfo->jobs << Calamares::job_ptr( job ); + + refresh(); +} + +void +PartitionCoreModule::deactivateVolumeGroup( LvmDevice *device ) +{ + DeviceInfo* deviceInfo = infoForDevice( device ); + Q_ASSERT( deviceInfo ); + + deviceInfo->isAvailable = false; + + DeactivateVolumeGroupJob* job = new DeactivateVolumeGroupJob( device ); + + // DeactivateVolumeGroupJob needs to be immediately called + job->exec(); + + refresh(); +} + +void +PartitionCoreModule::removeVolumeGroup( LvmDevice *device ) +{ + DeviceInfo* deviceInfo = infoForDevice( device ); + Q_ASSERT( deviceInfo ); + + RemoveVolumeGroupJob* job = new RemoveVolumeGroupJob( device ); + + deviceInfo->jobs << Calamares::job_ptr( job ); + + refresh(); +} + void PartitionCoreModule::deletePartition( Device* device, Partition* partition ) { @@ -370,8 +464,8 @@ PartitionCoreModule::setPartitionFlags( Device* device, PartitionModel::ResetHelper( partitionModelForDevice( device ) ); SetPartFlagsJob* job = new SetPartFlagsJob( device, partition, flags ); - deviceInfo->jobs << Calamares::job_ptr( job ); + PartitionInfo::setFlags( partition, flags ); refresh(); } @@ -421,6 +515,37 @@ PartitionCoreModule::efiSystemPartitions() const return m_efiSystemPartitions; } +QVector< const Partition* > +PartitionCoreModule::lvmPVs() const +{ + return m_lvmPVs; +} + +bool +PartitionCoreModule::hasVGwithThisName( const QString& name ) const +{ + for ( DeviceInfo* d : m_deviceInfos ) + if ( dynamic_cast(d->device.data()) && + d->device.data()->name() == name) + return true; + + return false; +} + +bool +PartitionCoreModule::isInVG( const Partition *partition ) const +{ + for ( DeviceInfo* d : m_deviceInfos ) + { + LvmDevice* vg = dynamic_cast( d->device.data() ); + + if ( vg && vg->physicalVolumes().contains( partition )) + return true; + } + + return false; +} + void PartitionCoreModule::dumpQueue() const { @@ -460,6 +585,8 @@ PartitionCoreModule::refresh() updateIsDirty(); m_bootLoaderModel->update(); + scanForLVMPVs(); + //FIXME: this should be removed in favor of // proper KPM support for EFI if ( PartUtils::isEfiSystem() ) @@ -512,6 +639,80 @@ PartitionCoreModule::scanForEfiSystemPartitions() m_efiSystemPartitions = efiSystemPartitions; } +void +PartitionCoreModule::scanForLVMPVs() +{ + m_lvmPVs.clear(); + + QList< Device* > physicalDevices; + QList< LvmDevice* > vgDevices; + + for ( DeviceInfo* deviceInfo : m_deviceInfos ) + { + if ( deviceInfo->device.data()->type() == Device::Type::Disk_Device) + physicalDevices << deviceInfo->device.data(); + else if ( deviceInfo->device.data()->type() == Device::Type::LVM_Device ) + { + LvmDevice* device = dynamic_cast(deviceInfo->device.data()); + + // Restoring physical volume list + device->physicalVolumes().clear(); + + vgDevices << device; + } + } + + // Update LVM::pvList + LvmDevice::scanSystemLVM( physicalDevices ); + + for ( auto p : LVM::pvList ) + { + m_lvmPVs << p.partition().data(); + + for ( LvmDevice* device : vgDevices ) + if ( p.vgName() == device->name() ) + { + // Adding scanned VG to PV list + device->physicalVolumes() << p.partition(); + break; + } + } + + for ( DeviceInfo* d : m_deviceInfos ) + { + for ( auto job : d->jobs ) + { + // Including new LVM PVs + CreatePartitionJob* partJob = dynamic_cast( job.data() ); + if ( partJob ) + { + Partition* p = partJob->partition(); + + if ( p->fileSystem().type() == FileSystem::Type::Lvm2_PV ) + m_lvmPVs << p; + else if ( p->fileSystem().type() == FileSystem::Type::Luks ) + { + // Encrypted LVM PVs + FileSystem* innerFS = static_cast(&p->fileSystem())->innerFS(); + + if ( innerFS && innerFS->type() == FileSystem::Type::Lvm2_PV ) + m_lvmPVs << p; + } +#ifdef WITH_KPMCOREGT33 + else if ( p->fileSystem().type() == FileSystem::Type::Luks2 ) + { + // Encrypted LVM PVs + FileSystem* innerFS = static_cast(&p->fileSystem())->innerFS(); + + if ( innerFS && innerFS->type() == FileSystem::Type::Lvm2_PV ) + m_lvmPVs << p; + } +#endif + } + } + } +} + PartitionCoreModule::DeviceInfo* PartitionCoreModule::infoForDevice( const Device* device ) const { @@ -561,8 +762,36 @@ PartitionCoreModule::revert() void PartitionCoreModule::revertAllDevices() { - foreach ( DeviceInfo* devInfo, m_deviceInfos ) - revertDevice( devInfo->device.data() ); + for ( auto it = m_deviceInfos.begin(); it != m_deviceInfos.end(); ) + { + // In new VGs device info, there will be always a CreateVolumeGroupJob as the first job in jobs list + if ( dynamic_cast( ( *it )->device.data() ) ) + { + ( *it )->isAvailable = true; + + if ( !( *it )->jobs.empty() ) + { + CreateVolumeGroupJob* vgJob = dynamic_cast( ( *it )->jobs[0].data() ); + + if ( vgJob ) + { + vgJob->undoPreview(); + + ( *it )->forgetChanges(); + + m_deviceModel->removeDevice( ( *it )->device.data() ); + + it = m_deviceInfos.erase( it ); + + continue; + } + } + } + + revertDevice( ( *it )->device.data() ); + ++it; + } + refresh(); } @@ -572,6 +801,7 @@ PartitionCoreModule::revertDevice( Device* dev ) { QMutexLocker locker( &m_revertMutex ); DeviceInfo* devInfo = infoForDevice( dev ); + if ( !devInfo ) return; devInfo->forgetChanges(); @@ -583,8 +813,13 @@ PartitionCoreModule::revertDevice( Device* dev ) m_deviceModel->swapDevice( dev, newDev ); QList< Device* > devices; - foreach ( auto info, m_deviceInfos ) - devices.append( info->device.data() ); + for ( auto info : m_deviceInfos ) + { + if ( info->device.data()->type() != Device::Type::Disk_Device ) + continue; + else + devices.append( info->device.data() ); + } m_bootLoaderModel->init( devices ); @@ -624,6 +859,16 @@ PartitionCoreModule::isDirty() return m_isDirty; } +bool +PartitionCoreModule::isVGdeactivated( LvmDevice *device ) +{ + for ( DeviceInfo* deviceInfo : m_deviceInfos ) + if ( device == deviceInfo->device.data() && !deviceInfo->isAvailable ) + return true; + + return false; +} + QList< PartitionCoreModule::SummaryInfo > PartitionCoreModule::createSummaryInfo() const { diff --git a/src/modules/partition/core/PartitionCoreModule.h b/src/modules/partition/core/PartitionCoreModule.h index 49564dad1..d61311c8a 100644 --- a/src/modules/partition/core/PartitionCoreModule.h +++ b/src/modules/partition/core/PartitionCoreModule.h @@ -24,6 +24,7 @@ #include "Typedefs.h" // KPMcore +#include #include // Qt @@ -111,6 +112,14 @@ public: void createPartition( Device* device, Partition* partition, PartitionTable::Flags flags = PartitionTable::FlagNone ); + void createVolumeGroup( QString &vgName, QVector< const Partition* > pvList, qint32 peSize ); + + void resizeVolumeGroup( LvmDevice* device, QVector< const Partition* >& pvList ); + + void deactivateVolumeGroup( LvmDevice* device ); + + void removeVolumeGroup( LvmDevice* device ); + void deletePartition( Device* device, Partition* partition ); void formatPartition( Device* device, Partition* partition ); @@ -132,6 +141,12 @@ public: QList< Partition* > efiSystemPartitions() const; + QVector< const Partition* > lvmPVs() const; + + bool hasVGwithThisName( const QString& name ) const; + + bool isInVG( const Partition* partition ) const; + /** * @brief findPartitionByMountPoint returns a Partition* for a given mount point. * @param mountPoint the mount point to find a partition for. @@ -151,6 +166,8 @@ public: bool isDirty(); // true if there are pending changes, otherwise false + bool isVGdeactivated( LvmDevice* device ); + /** * To be called when a partition has been altered, but only for changes * which do not affect its size, because changes which affect the partition size @@ -189,11 +206,15 @@ private: const QScopedPointer< Device > immutableDevice; QList< Calamares::job_ptr > jobs; + // To check if LVM VGs are deactivated + bool isAvailable; + void forgetChanges(); bool isDirty() const; }; QList< DeviceInfo* > m_deviceInfos; QList< Partition* > m_efiSystemPartitions; + QVector< const Partition* > m_lvmPVs; DeviceModel* m_deviceModel; BootLoaderModel* m_bootLoaderModel; @@ -205,6 +226,7 @@ private: void updateHasRootMountPoint(); void updateIsDirty(); void scanForEfiSystemPartitions(); + void scanForLVMPVs(); DeviceInfo* infoForDevice( const Device* ) const; diff --git a/src/modules/partition/core/PartitionInfo.cpp b/src/modules/partition/core/PartitionInfo.cpp index 72cca8976..3a2e5bbd3 100644 --- a/src/modules/partition/core/PartitionInfo.cpp +++ b/src/modules/partition/core/PartitionInfo.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,6 +20,7 @@ #include "core/PartitionInfo.h" // KPMcore +#include #include // Qt @@ -27,8 +29,9 @@ namespace PartitionInfo { -static const char* MOUNT_POINT_PROPERTY = "_calamares_mountPoint"; -static const char* FORMAT_PROPERTY = "_calamares_format"; +static const char MOUNT_POINT_PROPERTY[] = "_calamares_mountPoint"; +static const char FORMAT_PROPERTY[] = "_calamares_format"; +static const char FLAGS_PROPERTY[] = "_calamares_flags"; QString mountPoint( Partition* partition ) @@ -54,18 +57,36 @@ setFormat( Partition* partition, bool value ) partition->setProperty( FORMAT_PROPERTY, value ); } +PartitionTable::Flags flags(const Partition* partition) +{ + auto v = partition->property( FLAGS_PROPERTY ); + if (v.type() == QVariant::Int ) + return static_cast( v.toInt() ); + return partition->activeFlags(); +} + +void setFlags(Partition* partition, PartitionTable::Flags f) +{ + partition->setProperty( FLAGS_PROPERTY, PartitionTable::Flags::Int( f ) ); +} + void reset( Partition* partition ) { partition->setProperty( MOUNT_POINT_PROPERTY, QVariant() ); partition->setProperty( FORMAT_PROPERTY, QVariant() ); + partition->setProperty( FLAGS_PROPERTY, QVariant() ); } bool isDirty( Partition* partition ) { + if ( LvmDevice::s_DirtyPVs.contains( partition ) ) + return true; + return !mountPoint( partition ).isEmpty() - || format( partition ); + || format( partition ) + || flags( partition ) != partition->activeFlags(); } } // namespace diff --git a/src/modules/partition/core/PartitionInfo.h b/src/modules/partition/core/PartitionInfo.h index 2474a3a2d..a9c391059 100644 --- a/src/modules/partition/core/PartitionInfo.h +++ b/src/modules/partition/core/PartitionInfo.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,6 +22,8 @@ #include #include +#include + class Partition; /** @@ -45,6 +48,9 @@ void setMountPoint( Partition* partition, const QString& value ); bool format( Partition* partition ); void setFormat( Partition* partition, bool value ); +PartitionTable::Flags flags( const Partition* partition ); +void setFlags( Partition* partition, PartitionTable::Flags f ); + void reset( Partition* partition ); /** diff --git a/src/modules/partition/core/PartitionModel.cpp b/src/modules/partition/core/PartitionModel.cpp index bf61843d0..8f0ecba81 100644 --- a/src/modules/partition/core/PartitionModel.cpp +++ b/src/modules/partition/core/PartitionModel.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -115,7 +116,7 @@ PartitionModel::parent( const QModelIndex& child ) const return createIndex( row, 0, parentNode ); ++row; } - cLog() << "No parent found!"; + cWarning() << "No parent found!"; return QModelIndex(); } diff --git a/src/modules/partition/gui/ChoicePage.cpp b/src/modules/partition/gui/ChoicePage.cpp index fdc68ef97..bef6e4966 100644 --- a/src/modules/partition/gui/ChoicePage.cpp +++ b/src/modules/partition/gui/ChoicePage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/ChoicePage.h b/src/modules/partition/gui/ChoicePage.h index 91274d152..c36747e93 100644 --- a/src/modules/partition/gui/ChoicePage.h +++ b/src/modules/partition/gui/ChoicePage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/CreatePartitionDialog.cpp b/src/modules/partition/gui/CreatePartitionDialog.cpp index 2dcc16bf0..0e7602c08 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.cpp +++ b/src/modules/partition/gui/CreatePartitionDialog.cpp @@ -2,6 +2,9 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * Copyright 2018, Andrius Štikonas + * Copyright 2018, Caio Carvalho * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,6 +26,7 @@ #include "core/PartitionInfo.h" #include "core/PartUtils.h" #include "core/KPMHelpers.h" +#include "gui/PartitionDialogHelpers.h" #include "gui/PartitionSizeController.h" #include "ui_CreatePartitionDialog.h" @@ -56,7 +60,7 @@ static QSet< FileSystem::Type > s_unmountableFS( FileSystem::Lvm2_PV } ); -CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* parentPartition, const QStringList& usedMountPoints, QWidget* parentWidget ) +CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* parentPartition, Partition* partition, const QStringList& usedMountPoints, QWidget* parentWidget ) : QDialog( parentWidget ) , m_ui( new Ui_CreatePartitionDialog ) , m_partitionSizeController( new PartitionSizeController( this ) ) @@ -68,11 +72,11 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par m_ui->encryptWidget->setText( tr( "En&crypt" ) ); m_ui->encryptWidget->hide(); - if (m_device->type() == Device::Disk_Device) { + if (m_device->type() == Device::Type::Disk_Device) { m_ui->lvNameLabel->hide(); m_ui->lvNameLineEdit->hide(); } - if (m_device->type() == Device::LVM_Device) { + if (m_device->type() == Device::Type::LVM_Device) { /* LVM logical volume name can consist of: letters numbers _ . - + * It cannot start with underscore _ and must not be equal to . or .. or any entry in /dev/ * QLineEdit accepts QValidator::Intermediate, so we just disable . at the beginning */ @@ -81,12 +85,7 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par m_ui->lvNameLineEdit->setValidator(validator); } - QStringList mountPoints = { "/", "/boot", "/home", "/opt", "/usr", "/var" }; - if ( PartUtils::isEfiSystem() ) - mountPoints << Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString(); - mountPoints.removeDuplicates(); - mountPoints.sort(); - m_ui->mountPointComboBox->addItems( mountPoints ); + standardMountPoints( *(m_ui->mountPointComboBox), partition ? PartitionInfo::mountPoint( partition ) : QString() ); if ( device->partitionTable()->type() == PartitionTable::msdos || device->partitionTable()->type() == PartitionTable::msdos_sectorbased ) @@ -125,7 +124,8 @@ CreatePartitionDialog::CreatePartitionDialog( Device* device, PartitionNode* par m_ui->fsComboBox->setCurrentIndex( defaultFsIndex ); updateMountPointUi(); - setupFlagsList(); + setFlagList( *(m_ui->m_listFlags), static_cast< PartitionTable::Flags >( ~PartitionTable::Flags::Int(0) ), partition ? PartitionInfo::flags( partition ) : PartitionTable::Flags() ); + // Checks the initial selection. checkMountPointSelection(); } @@ -137,35 +137,9 @@ CreatePartitionDialog::~CreatePartitionDialog() PartitionTable::Flags CreatePartitionDialog::newFlags() const { - PartitionTable::Flags flags; - - for ( int i = 0; i < m_ui->m_listFlags->count(); i++ ) - if ( m_ui->m_listFlags->item( i )->checkState() == Qt::Checked ) - flags |= static_cast< PartitionTable::Flag >( - m_ui->m_listFlags->item( i )->data( Qt::UserRole ).toInt() ); - - return flags; + return flagsFromList( *(m_ui->m_listFlags) ); } - -void -CreatePartitionDialog::setupFlagsList() -{ - int f = 1; - QString s; - while ( !( s = PartitionTable::flagName( static_cast< PartitionTable::Flag >( f ) ) ).isEmpty() ) - { - QListWidgetItem* item = new QListWidgetItem( s ); - m_ui->m_listFlags->addItem( item ); - item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsEnabled ); - item->setData( Qt::UserRole, f ); - item->setCheckState( Qt::Unchecked ); - - f <<= 1; - } -} - - void CreatePartitionDialog::initMbrPartitionTypeUi() { @@ -242,11 +216,11 @@ CreatePartitionDialog::createPartition() ); } - if (m_device->type() == Device::LVM_Device) { + if (m_device->type() == Device::Type::LVM_Device) { partition->setPartitionPath(m_device->deviceNode() + QStringLiteral("/") + m_ui->lvNameLineEdit->text().trimmed()); } - PartitionInfo::setMountPoint( partition, m_ui->mountPointComboBox->currentText() ); + PartitionInfo::setMountPoint( partition, selectedMountPoint( m_ui->mountPointComboBox ) ); PartitionInfo::setFormat( partition, true ); return partition; @@ -261,7 +235,9 @@ CreatePartitionDialog::updateMountPointUi() FileSystem::Type type = FileSystem::typeForName( m_ui->fsComboBox->currentText() ); enabled = !s_unmountableFS.contains( type ); - if ( FS::luks::canEncryptType( type ) ) + if ( FileSystemFactory::map()[FileSystem::Type::Luks]->supportCreate() && + FS::luks::canEncryptType( type ) && + !m_role.has( PartitionRole::Extended ) ) { m_ui->encryptWidget->show(); m_ui->encryptWidget->reset(); @@ -281,9 +257,7 @@ CreatePartitionDialog::updateMountPointUi() void CreatePartitionDialog::checkMountPointSelection() { - const QString& selection = m_ui->mountPointComboBox->currentText(); - - if ( m_usedMountPoints.contains( selection ) ) + if ( m_usedMountPoints.contains( selectedMountPoint( m_ui->mountPointComboBox ) ) ) { m_ui->labelMountPoint->setText( tr( "Mountpoint already in use. Please select another one." ) ); m_ui->buttonBox->button( QDialogButtonBox::Ok )->setEnabled( false ); @@ -332,7 +306,7 @@ CreatePartitionDialog::initFromPartitionToCreate( Partition* partition ) m_ui->fsComboBox->setCurrentText( FileSystem::nameForType( fsType ) ); // Mount point - m_ui->mountPointComboBox->setCurrentText( PartitionInfo::mountPoint( partition ) ); + setSelectedMountPoint( m_ui->mountPointComboBox, PartitionInfo::mountPoint( partition ) ); updateMountPointUi(); } diff --git a/src/modules/partition/gui/CreatePartitionDialog.h b/src/modules/partition/gui/CreatePartitionDialog.h index 6e8e9b6fd..2f3cc14a5 100644 --- a/src/modules/partition/gui/CreatePartitionDialog.h +++ b/src/modules/partition/gui/CreatePartitionDialog.h @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -42,7 +43,13 @@ class CreatePartitionDialog : public QDialog { Q_OBJECT public: - CreatePartitionDialog( Device* device, PartitionNode* parentPartition, const QStringList& usedMountPoints, QWidget* parentWidget = nullptr ); + /** + * @brief Dialog for editing a new partition. + * + * For the (unlikely) case that a newly created partition is being re-edited, + * pass a pointer to that @p partition, otherwise pass nullptr. + */ + CreatePartitionDialog( Device* device, PartitionNode* parentPartition, Partition* partition, const QStringList& usedMountPoints, QWidget* parentWidget = nullptr ); ~CreatePartitionDialog(); /** @@ -64,7 +71,6 @@ private Q_SLOTS: void checkMountPointSelection(); private: - void setupFlagsList(); QScopedPointer< Ui_CreatePartitionDialog > m_ui; PartitionSizeController* m_partitionSizeController; Device* m_device; diff --git a/src/modules/partition/gui/CreateVolumeGroupDialog.cpp b/src/modules/partition/gui/CreateVolumeGroupDialog.cpp new file mode 100644 index 000000000..fe5c40be8 --- /dev/null +++ b/src/modules/partition/gui/CreateVolumeGroupDialog.cpp @@ -0,0 +1,56 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "CreateVolumeGroupDialog.h" + +#include +#include + +#include +#include +#include + +CreateVolumeGroupDialog::CreateVolumeGroupDialog( QString& vgName, + QVector< const Partition* >& selectedPVs, + QVector< const Partition* > pvList, + qint64& pSize, + QWidget* parent ) + : VolumeGroupBaseDialog( vgName, pvList, parent ) + , m_selectedPVs( selectedPVs ) + , m_peSize( pSize ) +{ + setWindowTitle( "Create Volume Group" ); + + peSize()->setValue( pSize ); + + vgType()->setEnabled( false ); +} + +void +CreateVolumeGroupDialog::accept() +{ + QString& name = vgNameValue(); + name = vgName()->text(); + + m_selectedPVs << checkedItems(); + + qint64& pe = m_peSize; + pe = peSize()->value(); + + QDialog::accept(); +} diff --git a/src/modules/partition/gui/CreateVolumeGroupDialog.h b/src/modules/partition/gui/CreateVolumeGroupDialog.h new file mode 100644 index 000000000..b0d5b874c --- /dev/null +++ b/src/modules/partition/gui/CreateVolumeGroupDialog.h @@ -0,0 +1,41 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef CREATEVOLUMEGROUPDIALOG_H +#define CREATEVOLUMEGROUPDIALOG_H + +#include "gui/VolumeGroupBaseDialog.h" + +class CreateVolumeGroupDialog : public VolumeGroupBaseDialog +{ +public: + CreateVolumeGroupDialog( QString& vgName, + QVector< const Partition* >& selectedPVs, + QVector< const Partition* > pvList, + qint64& pSize, + QWidget* parent ); + + void accept() override; + +private: + QVector< const Partition* >& m_selectedPVs; + + qint64& m_peSize; +}; + +#endif // CREATEVOLUMEGROUPDIALOG_H diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.cpp b/src/modules/partition/gui/EditExistingPartitionDialog.cpp index 2212c104c..3ad5080b4 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.cpp +++ b/src/modules/partition/gui/EditExistingPartitionDialog.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Flags handling originally from KDE Partition Manager, * Copyright 2008-2009, Volker Lanz @@ -28,6 +29,7 @@ #include #include "core/PartUtils.h" #include +#include "gui/PartitionDialogHelpers.h" #include #include @@ -55,19 +57,12 @@ EditExistingPartitionDialog::EditExistingPartitionDialog( Device* device, Partit , m_usedMountPoints( usedMountPoints ) { m_ui->setupUi( this ); - - QStringList mountPoints = { "/", "/boot", "/home", "/opt", "/usr", "/var" }; - if ( PartUtils::isEfiSystem() ) - mountPoints << Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString(); - mountPoints.removeDuplicates(); - mountPoints.sort(); - m_ui->mountPointComboBox->addItems( mountPoints ); + standardMountPoints( *(m_ui->mountPointComboBox), PartitionInfo::mountPoint( partition ) ); QColor color = ColorUtils::colorForPartition( m_partition ); m_partitionSizeController->init( m_device, m_partition, color ); m_partitionSizeController->setSpinBox( m_ui->sizeSpinBox ); - m_ui->mountPointComboBox->setCurrentText( PartitionInfo::mountPoint( partition ) ); connect( m_ui->mountPointComboBox, &QComboBox::currentTextChanged, this, &EditExistingPartitionDialog::checkMountPointSelection ); @@ -112,7 +107,7 @@ EditExistingPartitionDialog::EditExistingPartitionDialog( Device* device, Partit m_ui->fileSystemLabel->setEnabled( m_ui->formatRadioButton->isChecked() ); m_ui->fileSystemComboBox->setEnabled( m_ui->formatRadioButton->isChecked() ); - setupFlagsList(); + setFlagList( *(m_ui->m_listFlags), m_partition->availableFlags(), PartitionInfo::flags( m_partition ) ); } @@ -123,44 +118,13 @@ EditExistingPartitionDialog::~EditExistingPartitionDialog() PartitionTable::Flags EditExistingPartitionDialog::newFlags() const { - PartitionTable::Flags flags; - - for ( int i = 0; i < m_ui->m_listFlags->count(); i++ ) - if ( m_ui->m_listFlags->item( i )->checkState() == Qt::Checked ) - flags |= static_cast< PartitionTable::Flag >( - m_ui->m_listFlags->item( i )->data( Qt::UserRole ).toInt() ); - - return flags; + return flagsFromList( *(m_ui->m_listFlags) ); } - -void -EditExistingPartitionDialog::setupFlagsList() -{ - int f = 1; - QString s; - while ( !( s = PartitionTable::flagName( static_cast< PartitionTable::Flag >( f ) ) ).isEmpty() ) - { - if ( m_partition->availableFlags() & f ) - { - QListWidgetItem* item = new QListWidgetItem( s ); - m_ui->m_listFlags->addItem( item ); - item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsEnabled ); - item->setData( Qt::UserRole, f ); - item->setCheckState( ( m_partition->activeFlags() & f ) ? - Qt::Checked : - Qt::Unchecked ); - } - - f <<= 1; - } -} - - void EditExistingPartitionDialog::applyChanges( PartitionCoreModule* core ) { - PartitionInfo::setMountPoint( m_partition, m_ui->mountPointComboBox->currentText() ); + PartitionInfo::setMountPoint( m_partition, selectedMountPoint(m_ui->mountPointComboBox) ); qint64 newFirstSector = m_partitionSizeController->firstSector(); qint64 newLastSector = m_partitionSizeController->lastSector(); @@ -294,15 +258,13 @@ EditExistingPartitionDialog::updateMountPointPicker() m_ui->mountPointLabel->setEnabled( canMount ); m_ui->mountPointComboBox->setEnabled( canMount ); if ( !canMount ) - m_ui->mountPointComboBox->setCurrentText( QString() ); + setSelectedMountPoint( m_ui->mountPointComboBox, QString() ); } void EditExistingPartitionDialog::checkMountPointSelection() { - const QString& selection = m_ui->mountPointComboBox->currentText(); - - if ( m_usedMountPoints.contains( selection ) ) + if ( m_usedMountPoints.contains( selectedMountPoint( m_ui->mountPointComboBox ) ) ) { m_ui->labelMountPoint->setText( tr( "Mountpoint already in use. Please select another one." ) ); m_ui->buttonBox->button( QDialogButtonBox::Ok )->setEnabled( false ); diff --git a/src/modules/partition/gui/EditExistingPartitionDialog.h b/src/modules/partition/gui/EditExistingPartitionDialog.h index b933e90ce..e98563bc0 100644 --- a/src/modules/partition/gui/EditExistingPartitionDialog.h +++ b/src/modules/partition/gui/EditExistingPartitionDialog.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -56,7 +57,6 @@ private: QStringList m_usedMountPoints; PartitionTable::Flags newFlags() const; - void setupFlagsList(); void replacePartResizerWidget(); void updateMountPointPicker(); }; diff --git a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp new file mode 100644 index 000000000..cd480aa55 --- /dev/null +++ b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.cpp @@ -0,0 +1,36 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "ListPhysicalVolumeWidgetItem.h" + +#include + +ListPhysicalVolumeWidgetItem::ListPhysicalVolumeWidgetItem( const Partition* partition, bool checked ) + : QListWidgetItem(QString("%1 | %2").arg( partition->deviceNode(), Capacity::formatByteSize( partition->capacity() ))) + , m_partition(partition) +{ + setToolTip( partition->deviceNode() ); + setSizeHint( QSize(0, 32) ); + setCheckState( checked ? Qt::Checked : Qt::Unchecked ); +} + +const Partition* +ListPhysicalVolumeWidgetItem::partition() const +{ + return m_partition; +} diff --git a/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h new file mode 100644 index 000000000..44ba8c3bf --- /dev/null +++ b/src/modules/partition/gui/ListPhysicalVolumeWidgetItem.h @@ -0,0 +1,37 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef LISTPHYSICALVOLUMEWIDGETITEM_H +#define LISTPHYSICALVOLUMEWIDGETITEM_H + +#include + +#include + +class ListPhysicalVolumeWidgetItem : public QListWidgetItem +{ +public: + ListPhysicalVolumeWidgetItem( const Partition* partition, bool checked ); + + const Partition* partition() const; + +private: + const Partition* m_partition; +}; + +#endif // LISTPHYSICALVOLUMEWIDGETITEM_H diff --git a/src/modules/partition/gui/PartitionDialogHelpers.cpp b/src/modules/partition/gui/PartitionDialogHelpers.cpp new file mode 100644 index 000000000..3dcf41f58 --- /dev/null +++ b/src/modules/partition/gui/PartitionDialogHelpers.cpp @@ -0,0 +1,118 @@ +/* === This file is part of Calamares - === + * + * Copyright 2014, Aurélien Gâteau + * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "PartitionDialogHelpers.h" + +#include "core/PartUtils.h" + +#include "GlobalStorage.h" +#include "JobQueue.h" +#include "utils/Logger.h" + +#include +#include + +QStringList +standardMountPoints() +{ + QStringList mountPoints{ "/", "/boot", "/home", "/opt", "/srv", "/usr", "/var" }; + if ( PartUtils::isEfiSystem() ) + mountPoints << Calamares::JobQueue::instance()->globalStorage()->value( "efiSystemPartition" ).toString(); + mountPoints.removeDuplicates(); + mountPoints.sort(); + return mountPoints; +} + +void +standardMountPoints(QComboBox& combo) +{ + combo.clear(); + combo.addItem( combo.tr( "(no mount point)" ) ); + combo.addItems( standardMountPoints() ); +} + +void +standardMountPoints(QComboBox& combo, const QString& selected) +{ + standardMountPoints( combo ); + setSelectedMountPoint( combo, selected ); +} + +QString +selectedMountPoint(QComboBox& combo) +{ + if ( combo.currentIndex() == 0 ) + return QString(); + return combo.currentText(); +} + +void +setSelectedMountPoint(QComboBox& combo, const QString& selected) +{ + if ( selected.isEmpty() ) + combo.setCurrentIndex( 0 ); // (no mount point) + else + { + for ( int i = 0; i < combo.count(); ++i ) + if ( selected == combo.itemText( i ) ) + { + combo.setCurrentIndex( i ); + return; + } + combo.addItem( selected ); + combo.setCurrentIndex( combo.count() - 1); + } +} + + +PartitionTable::Flags +flagsFromList( const QListWidget& list ) +{ + PartitionTable::Flags flags; + + for ( int i = 0; i < list.count(); i++ ) + if ( list.item( i )->checkState() == Qt::Checked ) + flags |= static_cast< PartitionTable::Flag >( + list.item( i )->data( Qt::UserRole ).toInt() ); + + return flags; +} + +void +setFlagList( QListWidget& list, PartitionTable::Flags available, PartitionTable::Flags checked ) +{ + int f = 1; + QString s; + while ( !( s = PartitionTable::flagName( static_cast< PartitionTable::Flag >( f ) ) ).isEmpty() ) + { + if ( available & f ) + { + QListWidgetItem* item = new QListWidgetItem( s ); + list.addItem( item ); + item->setFlags( Qt::ItemIsUserCheckable | Qt::ItemIsEnabled ); + item->setData( Qt::UserRole, f ); + item->setCheckState( ( checked & f ) ? + Qt::Checked : + Qt::Unchecked ); + } + + f <<= 1; + } +} diff --git a/src/modules/partition/gui/PartitionDialogHelpers.h b/src/modules/partition/gui/PartitionDialogHelpers.h new file mode 100644 index 000000000..594142993 --- /dev/null +++ b/src/modules/partition/gui/PartitionDialogHelpers.h @@ -0,0 +1,68 @@ +/* === This file is part of Calamares - === + * + * Copyright 2014, Aurélien Gâteau + * Copyright 2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef PARTITION_GUI_PARTITIONDIALOGHELPERS +#define PARTITION_GUI_PARTITIONDIALOGHELPERS + +#include + +#include + +class QComboBox; +class QListWidget; + +/** + * Returns a list of standard mount points (e.g. /, /usr, ...). + * This also includes the EFI mount point if that is necessary + * on the target system. + */ +QStringList standardMountPoints(); + +/** + * Clears the combobox and fills it with "(no mount point)" + * and the elements of standardMountPoints(), above. + */ +void standardMountPoints( QComboBox& ); + +/** + * As above, but also sets the displayed mount point to @p selected, + * unless it is empty, in which case "(no mount point)" is chosen. + */ +void standardMountPoints( QComboBox&, const QString& selected ); + +/** + * Get the mount point selected in the combo box (which should + * have been set up with standardMountPoints(), above); this + * will map the topmost item (i.e. "(no mount point)") back + * to blank, to allow easy detection of no-mount-selected. + */ +QString selectedMountPoint( QComboBox& combo ); +static inline QString selectedMountPoint(QComboBox* combo) { return selectedMountPoint(*combo); } + +void setSelectedMountPoint( QComboBox& combo, const QString& selected ); +static inline void setSelectedMountPoint(QComboBox* combo, const QString& selected) { setSelectedMountPoint( *combo, selected); } + +/** + * Get the flags that have been checked in the list widget. + */ +PartitionTable::Flags flagsFromList( const QListWidget& list ); +void setFlagList( QListWidget& list, PartitionTable::Flags available, PartitionTable::Flags checked ); + +#endif diff --git a/src/modules/partition/gui/PartitionPage.cpp b/src/modules/partition/gui/PartitionPage.cpp index 33b9e6209..994adc3e8 100644 --- a/src/modules/partition/gui/PartitionPage.cpp +++ b/src/modules/partition/gui/PartitionPage.cpp @@ -2,6 +2,8 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2015-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot + * Copyright 2018, Andrius Štikonas * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,12 +30,15 @@ #include "core/PartUtils.h" #include "core/KPMHelpers.h" #include "gui/CreatePartitionDialog.h" +#include "gui/CreateVolumeGroupDialog.h" #include "gui/EditExistingPartitionDialog.h" +#include "gui/ResizeVolumeGroupDialog.h" #include "gui/ScanningDialog.h" #include "ui_PartitionPage.h" #include "ui_CreatePartitionTableDialog.h" +#include "utils/Logger.h" #include "utils/Retranslator.h" #include "Branding.h" #include "JobQueue.h" @@ -42,6 +47,8 @@ // KPMcore #include #include +#include +#include // Qt #include @@ -99,6 +106,10 @@ PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent ) connect( m_ui->partitionTreeView, &QAbstractItemView::doubleClicked, this, &PartitionPage::onPartitionViewActivated ); connect( m_ui->revertButton, &QAbstractButton::clicked, this, &PartitionPage::onRevertClicked ); + connect( m_ui->newVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onNewVolumeGroupClicked ); + connect( m_ui->resizeVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onResizeVolumeGroupClicked ); + connect( m_ui->deactivateVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onDeactivateVolumeGroupClicked ); + connect( m_ui->removeVolumeGroupButton, &QAbstractButton::clicked, this, &PartitionPage::onRemoveVolumeGroupClicked ); connect( m_ui->newPartitionTableButton, &QAbstractButton::clicked, this, &PartitionPage::onNewPartitionTableClicked ); connect( m_ui->createButton, &QAbstractButton::clicked, this, &PartitionPage::onCreateClicked ); connect( m_ui->editButton, &QAbstractButton::clicked, this, &PartitionPage::onEditClicked ); @@ -119,7 +130,8 @@ PartitionPage::~PartitionPage() void PartitionPage::updateButtons() { - bool create = false, createTable = false, edit = false, del = false; + bool create = false, createTable = false, edit = false, del = false, currentDeviceIsVG = false, isDeactivable = false; + bool isRemovable = false, isVGdeactivated = false; QModelIndex index = m_ui->partitionTreeView->currentIndex(); if ( index.isValid() ) @@ -131,6 +143,8 @@ PartitionPage::updateButtons() bool isFree = KPMHelpers::isPartitionFreeSpace( partition ); bool isExtended = partition->roles().has( PartitionRole::Extended ); + bool isInVG = m_core->isInVG( partition ); + create = isFree; // Keep it simple for now: do not support editing extended partitions as // it does not work with our current edit implementation which is @@ -138,21 +152,39 @@ PartitionPage::updateButtons() // because they need to be created *before* creating logical partitions // inside them, so an edit must be applied without altering the job // order. + // TODO: See if LVM PVs can be edited in Calamares edit = !isFree && !isExtended; - del = !isFree; + del = !isFree && !isInVG; } if ( m_ui->deviceComboBox->currentIndex() >= 0 ) { QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); - if ( m_core->deviceModel()->deviceForIndex( deviceIndex )->type() != Device::LVM_Device ) + if ( m_core->deviceModel()->deviceForIndex( deviceIndex )->type() != Device::Type::LVM_Device ) createTable = true; + else + { + currentDeviceIsVG = true; + + LvmDevice* lvmDevice = dynamic_cast(m_core->deviceModel()->deviceForIndex( deviceIndex )); + + isDeactivable = DeactivateVolumeGroupOperation::isDeactivatable( lvmDevice ); + isRemovable = RemoveVolumeGroupOperation::isRemovable( lvmDevice ); + + isVGdeactivated = m_core->isVGdeactivated( lvmDevice ); + + if ( isVGdeactivated ) + m_ui->revertButton->setEnabled( true ); + } } m_ui->createButton->setEnabled( create ); m_ui->editButton->setEnabled( edit ); m_ui->deleteButton->setEnabled( del ); m_ui->newPartitionTableButton->setEnabled( createTable ); + m_ui->resizeVolumeGroupButton->setEnabled( currentDeviceIsVG && !isVGdeactivated ); + m_ui->deactivateVolumeGroupButton->setEnabled( currentDeviceIsVG && isDeactivable && !isVGdeactivated ); + m_ui->removeVolumeGroupButton->setEnabled( currentDeviceIsVG && isRemovable ); } void @@ -178,6 +210,137 @@ PartitionPage::onNewPartitionTableClicked() updateBootLoaderIndex(); } +bool +PartitionPage::checkCanCreate( Device* device ) +{ + auto table = device->partitionTable(); + + if ( table->type() == PartitionTable::msdos ||table->type() == PartitionTable::msdos_sectorbased ) + { + cDebug() << "Checking MSDOS partition" << table->numPrimaries() << "primaries, max" << table->maxPrimaries(); + + if ( ( table->numPrimaries() >= table->maxPrimaries() ) && !table->hasExtended() ) + { + QMessageBox::warning( this, tr( "Can not create new partition" ), + tr( "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." ).arg( device->name() ).arg( table->numPrimaries() ) + ); + return false; + } + return true; + } + else + return true; // GPT is fine +} + +void +PartitionPage::onNewVolumeGroupClicked() +{ + QString vgName; + QVector< const Partition* > selectedPVs; + qint64 peSize = 4; + + QVector< const Partition* > availablePVs; + + for ( const Partition* p : m_core->lvmPVs() ) + if ( !m_core->isInVG( p ) ) + availablePVs << p; + + QPointer< CreateVolumeGroupDialog > dlg = new CreateVolumeGroupDialog( vgName, + selectedPVs, + availablePVs, + peSize, + this ); + + if ( dlg->exec() == QDialog::Accepted ) + { + QModelIndex partitionIndex = m_ui->partitionTreeView->currentIndex(); + + if ( partitionIndex.isValid() ) + { + const PartitionModel* model = static_cast< const PartitionModel* >( partitionIndex.model() ); + Q_ASSERT( model ); + Partition* partition = model->partitionForIndex( partitionIndex ); + Q_ASSERT( partition ); + + // Disable delete button if current partition was selected to be in VG + // TODO: Should Calamares edit LVM PVs which are in VGs? + if ( selectedPVs.contains( partition ) ) + m_ui->deleteButton->setEnabled( false ); + } + + QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); + Q_ASSERT( deviceIndex.isValid() ); + + QVariant previousIndexDeviceData = m_core->deviceModel()->data( deviceIndex, Qt::ToolTipRole ); + + // Creating new VG + m_core->createVolumeGroup( vgName, selectedPVs, peSize ); + + // As createVolumeGroup method call resets deviceModel, + // is needed to set the current index in deviceComboBox as the previous one + int previousIndex = m_ui->deviceComboBox->findData( previousIndexDeviceData, Qt::ToolTipRole ); + + m_ui->deviceComboBox->setCurrentIndex( ( previousIndex < 0 ) ? 0 : previousIndex ); + updateFromCurrentDevice(); + } + + delete dlg; +} + +void +PartitionPage::onResizeVolumeGroupClicked() +{ + QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); + LvmDevice* device = dynamic_cast< LvmDevice* >( m_core->deviceModel()->deviceForIndex( deviceIndex ) ); + + Q_ASSERT( device && device->type() == Device::Type::LVM_Device ); + + QVector< const Partition* > availablePVs; + QVector< const Partition* > selectedPVs; + + for ( const Partition* p : m_core->lvmPVs() ) + if ( !m_core->isInVG( p ) ) + availablePVs << p; + + QPointer< ResizeVolumeGroupDialog > dlg = new ResizeVolumeGroupDialog( device, + availablePVs, + selectedPVs, + this ); + + if ( dlg->exec() == QDialog::Accepted ) + m_core->resizeVolumeGroup( device, selectedPVs ); + + delete dlg; +} + +void +PartitionPage::onDeactivateVolumeGroupClicked() +{ + QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); + LvmDevice* device = dynamic_cast< LvmDevice* >( m_core->deviceModel()->deviceForIndex( deviceIndex ) ); + + Q_ASSERT( device && device->type() == Device::Type::LVM_Device ); + + m_core->deactivateVolumeGroup( device ); + + updateFromCurrentDevice(); + + PartitionModel* model = m_core->partitionModelForDevice( device ); + model->update(); +} + +void +PartitionPage::onRemoveVolumeGroupClicked() +{ + QModelIndex deviceIndex = m_core->deviceModel()->index( m_ui->deviceComboBox->currentIndex(), 0 ); + LvmDevice* device = dynamic_cast< LvmDevice* >( m_core->deviceModel()->deviceForIndex( deviceIndex ) ); + + Q_ASSERT( device && device->type() == Device::Type::LVM_Device ); + + m_core->removeVolumeGroup( device ); +} + void PartitionPage::onCreateClicked() { @@ -188,8 +351,12 @@ PartitionPage::onCreateClicked() Partition* partition = model->partitionForIndex( index ); Q_ASSERT( partition ); + if ( !checkCanCreate( model->device() ) ) + return; + QPointer< CreatePartitionDialog > dlg = new CreatePartitionDialog( model->device(), partition->parent(), + nullptr, getCurrentUsedMountpoints(), this ); dlg->initFromFreeSpace( partition ); @@ -242,7 +409,7 @@ PartitionPage::onRevertClicked() int oldIndex = m_ui->deviceComboBox->currentIndex(); m_core->revertAllDevices(); - m_ui->deviceComboBox->setCurrentIndex( oldIndex ); + m_ui->deviceComboBox->setCurrentIndex( ( oldIndex < 0 ) ? 0 : oldIndex ); updateFromCurrentDevice(); } ), [ this ]{ @@ -285,6 +452,7 @@ PartitionPage::updatePartitionToCreate( Device* device, Partition* partition ) QPointer< CreatePartitionDialog > dlg = new CreatePartitionDialog( device, partition->parent(), + partition, mountPoints, this ); dlg->initFromPartitionToCreate( partition ); diff --git a/src/modules/partition/gui/PartitionPage.h b/src/modules/partition/gui/PartitionPage.h index 24cf65675..70d8ccdfb 100644 --- a/src/modules/partition/gui/PartitionPage.h +++ b/src/modules/partition/gui/PartitionPage.h @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014, Aurélien Gâteau + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -50,6 +51,10 @@ private: PartitionCoreModule* m_core; void updateButtons(); void onNewPartitionTableClicked(); + void onNewVolumeGroupClicked(); + void onResizeVolumeGroupClicked(); + void onDeactivateVolumeGroupClicked(); + void onRemoveVolumeGroupClicked(); void onCreateClicked(); void onEditClicked(); void onDeleteClicked(); @@ -62,6 +67,14 @@ private: void updateFromCurrentDevice(); void updateBootLoaderIndex(); + /** + * @brief Check if a new partition can be created (as primary) on the device. + * + * Returns true if a new partition can be created on the device. Provides + * a warning popup and returns false if it cannot. + */ + bool checkCanCreate( Device* ); + QStringList getCurrentUsedMountpoints(); QMutex m_revertMutex; diff --git a/src/modules/partition/gui/PartitionPage.ui b/src/modules/partition/gui/PartitionPage.ui index 7d24204c9..c028eb513 100644 --- a/src/modules/partition/gui/PartitionPage.ui +++ b/src/modules/partition/gui/PartitionPage.ui @@ -6,7 +6,7 @@ 0 0 - 655 + 684 304 @@ -104,7 +104,7 @@ - &Create + Cre&ate @@ -124,6 +124,38 @@ + + + + + + New Volume Group + + + + + + + Resize Volume Group + + + + + + + Deactivate Volume Group + + + + + + + Remove Volume Group + + + + + @@ -145,7 +177,7 @@ - Install boot &loader on: + I&nstall boot loader on: bootLoaderComboBox diff --git a/src/modules/partition/gui/PartitionViewStep.cpp b/src/modules/partition/gui/PartitionViewStep.cpp index c0c9eecd1..09717a568 100644 --- a/src/modules/partition/gui/PartitionViewStep.cpp +++ b/src/modules/partition/gui/PartitionViewStep.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Aurélien Gâteau * Copyright 2014-2017, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/ReplaceWidget.h b/src/modules/partition/gui/ReplaceWidget.h index 15015f120..c09c604b1 100644 --- a/src/modules/partition/gui/ReplaceWidget.h +++ b/src/modules/partition/gui/ReplaceWidget.h @@ -2,6 +2,7 @@ * * Copyright 2014-2015, Teo Mrnjavac * Copyright 2014, Aurélien Gâteau + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp b/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp new file mode 100644 index 000000000..b3173096d --- /dev/null +++ b/src/modules/partition/gui/ResizeVolumeGroupDialog.cpp @@ -0,0 +1,62 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "ResizeVolumeGroupDialog.h" + +#include "gui/ListPhysicalVolumeWidgetItem.h" + +#include +#include + +#include +#include +#include +#include + +ResizeVolumeGroupDialog::ResizeVolumeGroupDialog( LvmDevice *device, + QVector< const Partition* > availablePVs, + QVector< const Partition* >& selectedPVs, + QWidget* parent ) + : VolumeGroupBaseDialog( device->name(), device->physicalVolumes(), parent ) + , m_selectedPVs( selectedPVs ) +{ + setWindowTitle( "Resize Volume Group" ); + + for ( int i = 0; i < pvList()->count(); i++ ) + pvList()->item(i)->setCheckState( Qt::Checked ); + + for ( const Partition* p : availablePVs ) + pvList()->addItem( new ListPhysicalVolumeWidgetItem( p, false ) ); + + peSize()->setValue( device->peSize() / Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::MiB) ); + + vgName()->setEnabled( false ); + peSize()->setEnabled( false ); + vgType()->setEnabled( false ); + + setUsedSizeValue( device->allocatedPE() * device->peSize() ); + setLVQuantity( device->partitionTable()->children().count() ); +} + +void +ResizeVolumeGroupDialog::accept() +{ + m_selectedPVs << checkedItems(); + + QDialog::accept(); +} diff --git a/src/modules/partition/gui/ResizeVolumeGroupDialog.h b/src/modules/partition/gui/ResizeVolumeGroupDialog.h new file mode 100644 index 000000000..1d6015329 --- /dev/null +++ b/src/modules/partition/gui/ResizeVolumeGroupDialog.h @@ -0,0 +1,40 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef RESIZEVOLUMEGROUPDIALOG_H +#define RESIZEVOLUMEGROUPDIALOG_H + +#include "gui/VolumeGroupBaseDialog.h" + +class LvmDevice; + +class ResizeVolumeGroupDialog : public VolumeGroupBaseDialog +{ +public: + ResizeVolumeGroupDialog( LvmDevice *device, + QVector< const Partition* > availablePVs, + QVector< const Partition* >& selectedPVs, + QWidget* parent ); + + void accept() override; + +private: + QVector< const Partition* >& m_selectedPVs; +}; + +#endif // RESIZEVOLUMEGROUPDIALOG_H diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.cpp b/src/modules/partition/gui/VolumeGroupBaseDialog.cpp new file mode 100644 index 000000000..a727fe42a --- /dev/null +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.cpp @@ -0,0 +1,184 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "VolumeGroupBaseDialog.h" +#include "ui_VolumeGroupBaseDialog.h" + +#include "gui/ListPhysicalVolumeWidgetItem.h" + +#include + +#include +#include +#include +#include +#include +#include + +VolumeGroupBaseDialog::VolumeGroupBaseDialog( QString& vgName, + QVector< const Partition* > pvList, + QWidget *parent ) + : QDialog(parent) + , ui(new Ui::VolumeGroupBaseDialog) + , m_vgNameValue(vgName) + , m_totalSizeValue(0) + , m_usedSizeValue(0) +{ + ui->setupUi(this); + + for ( const Partition* p : pvList ) + ui->pvList->addItem( new ListPhysicalVolumeWidgetItem( p, false ) ); + + ui->vgType->addItems( QStringList() << "LVM" << "RAID" ); + ui->vgType->setCurrentIndex(0); + + QRegularExpression re(R"(^(?!_|\.)[\w\-.+]+)"); + ui->vgName->setValidator( new QRegularExpressionValidator( re, this ) ); + ui->vgName->setText( m_vgNameValue ); + + updateOkButton(); + updateTotalSize(); + + connect( ui->pvList, &QListWidget::itemChanged, this, + [&](QListWidgetItem*) { + updateTotalSize(); + updateOkButton(); + } ); + + connect( ui->peSize, qOverload(&QSpinBox::valueChanged), this, + [&](int) { + updateTotalSectors(); + updateOkButton(); + }); + + connect( ui->vgName, &QLineEdit::textChanged, this, + [&](const QString&) { + updateOkButton(); + }); +} + +VolumeGroupBaseDialog::~VolumeGroupBaseDialog() +{ + delete ui; +} + +QVector< const Partition* > +VolumeGroupBaseDialog::checkedItems() const +{ + QVector< const Partition* > items; + + for ( int i = 0; i < ui->pvList->count(); i++) { + ListPhysicalVolumeWidgetItem* item = dynamic_cast< ListPhysicalVolumeWidgetItem* >( ui->pvList->item(i) ); + + if ( item && item->checkState() == Qt::Checked ) + items << item->partition(); + } + + return items; +} + +bool +VolumeGroupBaseDialog::isSizeValid() const +{ + return m_totalSizeValue >= m_usedSizeValue; +} + +void +VolumeGroupBaseDialog::updateOkButton() +{ + okButton()->setEnabled(isSizeValid() && + !checkedItems().empty() && + !ui->vgName->text().isEmpty() && + ui->peSize->value() > 0); +} + +void +VolumeGroupBaseDialog::setUsedSizeValue( qint64 usedSize ) +{ + m_usedSizeValue = usedSize; + + ui->usedSize->setText( Capacity::formatByteSize(m_usedSizeValue) ); +} + +void +VolumeGroupBaseDialog::setLVQuantity( qint32 lvQuantity ) +{ + ui->lvQuantity->setText( QString::number( lvQuantity ) ); +} + +void +VolumeGroupBaseDialog::updateTotalSize() +{ + m_totalSizeValue = 0; + + for ( const Partition *p : checkedItems()) + m_totalSizeValue += p->capacity() - p->capacity() % (ui->peSize->value() * Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::MiB)); + + ui->totalSize->setText(Capacity::formatByteSize(m_totalSizeValue)); + + updateTotalSectors(); +} + +void +VolumeGroupBaseDialog::updateTotalSectors() +{ + qint32 totalSectors = 0; + + qint32 extentSize = ui->peSize->value() * Capacity::unitFactor(Capacity::Unit::Byte, Capacity::Unit::MiB); + + if ( extentSize > 0 ) + totalSectors = m_totalSizeValue / extentSize; + + ui->totalSectors->setText( QString::number( totalSectors ) ); +} + +QString& +VolumeGroupBaseDialog::vgNameValue() const +{ + return m_vgNameValue; +} + +QLineEdit* +VolumeGroupBaseDialog::vgName() const +{ + return ui->vgName; +} + +QComboBox* +VolumeGroupBaseDialog::vgType() const +{ + return ui->vgType; +} + +QSpinBox* +VolumeGroupBaseDialog::peSize() const +{ + return ui->peSize; +} + +QListWidget* +VolumeGroupBaseDialog::pvList() const +{ + return ui->pvList; +} + +QPushButton* +VolumeGroupBaseDialog::okButton() const +{ + return ui->buttonBox->button( QDialogButtonBox::StandardButton::Ok ); +} diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.h b/src/modules/partition/gui/VolumeGroupBaseDialog.h new file mode 100644 index 000000000..e6011ce62 --- /dev/null +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.h @@ -0,0 +1,81 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef VOLUMEGROUPBASEDIALOG_H +#define VOLUMEGROUPBASEDIALOG_H + +#include + +#include + +namespace Ui { +class VolumeGroupBaseDialog; +} + +class QComboBox; +class QLineEdit; +class QListWidget; +class QSpinBox; + +class VolumeGroupBaseDialog : public QDialog +{ + Q_OBJECT + +public: + explicit VolumeGroupBaseDialog( QString& vgName, + QVector< const Partition* > pvList, + QWidget* parent = nullptr ); + ~VolumeGroupBaseDialog(); + +protected: + virtual void updateOkButton(); + + void setUsedSizeValue( qint64 usedSize ); + + void setLVQuantity( qint32 lvQuantity ); + + void updateTotalSize(); + + void updateTotalSectors(); + + QVector< const Partition* > checkedItems() const; + + bool isSizeValid() const; + + QString& vgNameValue() const; + + QLineEdit* vgName() const; + + QComboBox* vgType() const; + + QSpinBox* peSize() const; + + QListWidget* pvList() const; + + QPushButton* okButton() const; + +private: + Ui::VolumeGroupBaseDialog* ui; + + QString& m_vgNameValue; + + qint64 m_totalSizeValue; + qint64 m_usedSizeValue; +}; + +#endif // VOLUMEGROUPBASEDIALOG_H diff --git a/src/modules/partition/gui/VolumeGroupBaseDialog.ui b/src/modules/partition/gui/VolumeGroupBaseDialog.ui new file mode 100644 index 000000000..b45d204e2 --- /dev/null +++ b/src/modules/partition/gui/VolumeGroupBaseDialog.ui @@ -0,0 +1,206 @@ + + + VolumeGroupBaseDialog + + + + 0 + 0 + 611 + 367 + + + + VolumeGroupDialog + + + + + + List of Physical Volumes + + + + + + + + + + Volume Group Name: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Volume Group Type: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + + + Physical Extent Size: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + MiB + + + 1 + + + 999 + + + 4 + + + + + + + Total Size: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + --- + + + Qt::AlignCenter + + + + + + + Used Size: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + --- + + + Qt::AlignCenter + + + + + + + Total Sectors: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + --- + + + Qt::AlignCenter + + + + + + + Quantity of LVs: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + --- + + + Qt::AlignCenter + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + buttonBox + accepted() + VolumeGroupBaseDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + VolumeGroupBaseDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/modules/partition/jobs/ClearMountsJob.cpp b/src/modules/partition/jobs/ClearMountsJob.cpp index 1a48becad..da6bee325 100644 --- a/src/modules/partition/jobs/ClearMountsJob.cpp +++ b/src/modules/partition/jobs/ClearMountsJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/partition/jobs/CreateVolumeGroupJob.cpp b/src/modules/partition/jobs/CreateVolumeGroupJob.cpp new file mode 100644 index 000000000..7debd9475 --- /dev/null +++ b/src/modules/partition/jobs/CreateVolumeGroupJob.cpp @@ -0,0 +1,84 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "CreateVolumeGroupJob.h" + +// KPMcore +#include +#include +#include +#include + +CreateVolumeGroupJob::CreateVolumeGroupJob( QString& vgName, QVector< const Partition* > pvList, const qint32 peSize ) + : m_vgName(vgName) + , m_pvList(pvList) + , m_peSize(peSize) +{ + +} + +QString +CreateVolumeGroupJob::prettyName() const +{ + return tr( "Create new volume group named %1." ) + .arg( m_vgName ); +} + +QString +CreateVolumeGroupJob::prettyDescription() const +{ + return tr( "Create new volume group named %1." ) + .arg( m_vgName ); +} + +QString +CreateVolumeGroupJob::prettyStatusMessage() const +{ + return tr( "Creating new volume group named %1." ) + .arg( m_vgName ); +} + +Calamares::JobResult +CreateVolumeGroupJob::exec() +{ + Report report( nullptr ); + + CreateVolumeGroupOperation op( m_vgName, m_pvList, m_peSize ); + + op.setStatus( Operation::StatusRunning ); + + QString message = tr( "The installer failed to create a volume group named '%1'.").arg( m_vgName ); + if (op.execute(report)) + return Calamares::JobResult::ok(); + + return Calamares::JobResult::error(message, report.toText()); +} + +void +CreateVolumeGroupJob::updatePreview() +{ + LvmDevice::s_DirtyPVs << m_pvList; +} + +void +CreateVolumeGroupJob::undoPreview() +{ + for ( const auto& pv : m_pvList ) + if ( LvmDevice::s_DirtyPVs.contains( pv )) + LvmDevice::s_DirtyPVs.removeAll( pv ); +} diff --git a/src/modules/partition/jobs/CreateVolumeGroupJob.h b/src/modules/partition/jobs/CreateVolumeGroupJob.h new file mode 100644 index 000000000..9e84fba73 --- /dev/null +++ b/src/modules/partition/jobs/CreateVolumeGroupJob.h @@ -0,0 +1,47 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef CREATEVOLUMEGROUPJOB_H +#define CREATEVOLUMEGROUPJOB_H + +#include + +#include + +#include + +class CreateVolumeGroupJob : public Calamares::Job +{ +public: + CreateVolumeGroupJob( QString& vgName, QVector< const Partition* > pvList, const qint32 peSize ); + + QString prettyName() const override; + QString prettyDescription() const override; + QString prettyStatusMessage() const override; + Calamares::JobResult exec() override; + + void updatePreview(); + void undoPreview(); + +private: + QString m_vgName; + QVector< const Partition* > m_pvList; + qint32 m_peSize; +}; + +#endif // CREATEVOLUMEGROUPJOB_H diff --git a/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp b/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp new file mode 100644 index 000000000..f772b3e5a --- /dev/null +++ b/src/modules/partition/jobs/DeactivateVolumeGroupJob.cpp @@ -0,0 +1,69 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "DeactivateVolumeGroupJob.h" + +#include +#include +#include + +DeactivateVolumeGroupJob::DeactivateVolumeGroupJob( LvmDevice* device ) + : m_device( device ) +{ + +} + +QString +DeactivateVolumeGroupJob::prettyName() const +{ + return tr( "Deactivate volume group named %1." ) + .arg( m_device->name() ); +} + +QString +DeactivateVolumeGroupJob::prettyDescription() const +{ + return tr( "Deactivate volume group named %1." ) + .arg( m_device->name() ); +} + +QString +DeactivateVolumeGroupJob::prettyStatusMessage() const +{ + return tr( "Deactivate volume group named %1." ) + .arg( m_device->name() ); +} + +Calamares::JobResult +DeactivateVolumeGroupJob::exec() +{ + Report report( nullptr ); + + DeactivateVolumeGroupOperation op( *m_device ); + + op.setStatus( Operation::OperationStatus::StatusRunning ); + + QString message = tr( "The installer failed to deactivate a volume group named %1." ).arg( m_device->name() ); + if ( op.execute( report ) ) + { + op.preview(); + return Calamares::JobResult::ok(); + } + + return Calamares::JobResult::error(message, report.toText()); +} diff --git a/src/modules/partition/jobs/DeactivateVolumeGroupJob.h b/src/modules/partition/jobs/DeactivateVolumeGroupJob.h new file mode 100644 index 000000000..5b59c2c4f --- /dev/null +++ b/src/modules/partition/jobs/DeactivateVolumeGroupJob.h @@ -0,0 +1,40 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef DEACTIVATEVOLUMEGROUPJOB_H +#define DEACTIVATEVOLUMEGROUPJOB_H + +#include "Job.h" + +class LvmDevice; + +class DeactivateVolumeGroupJob : public Calamares::Job +{ +public: + DeactivateVolumeGroupJob( LvmDevice* device ); + + QString prettyName() const override; + QString prettyDescription() const override; + QString prettyStatusMessage() const override; + Calamares::JobResult exec() override; + +private: + LvmDevice* m_device; +}; + +#endif // DEACTIVATEVOLUMEGROUPJOB_H diff --git a/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp b/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp new file mode 100644 index 000000000..69b510754 --- /dev/null +++ b/src/modules/partition/jobs/RemoveVolumeGroupJob.cpp @@ -0,0 +1,66 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "RemoveVolumeGroupJob.h" + +#include +#include +#include + +RemoveVolumeGroupJob::RemoveVolumeGroupJob( LvmDevice* device ) + : m_device( device ) +{ + +} + +QString +RemoveVolumeGroupJob::prettyName() const +{ + return tr( "Remove Volume Group named %1." ) + .arg( m_device->name() ); +} + +QString +RemoveVolumeGroupJob::prettyDescription() const +{ + return tr( "Remove Volume Group named %1.") + .arg( m_device->name() ); +} + +QString +RemoveVolumeGroupJob::prettyStatusMessage() const +{ + return tr( "Remove Volume Group named %1." ) + .arg( m_device->name() ); +} + +Calamares::JobResult +RemoveVolumeGroupJob::exec() +{ + Report report( nullptr ); + + RemoveVolumeGroupOperation op( *m_device ); + + op.setStatus( Operation::OperationStatus::StatusRunning ); + + QString message = tr( "The installer failed to remove a volume group named '%1'." ).arg( m_device->name() ); + if ( op.execute( report ) ) + return Calamares::JobResult::ok(); + + return Calamares::JobResult::error(message, report.toText()); +} diff --git a/src/modules/partition/jobs/RemoveVolumeGroupJob.h b/src/modules/partition/jobs/RemoveVolumeGroupJob.h new file mode 100644 index 000000000..426dde7fb --- /dev/null +++ b/src/modules/partition/jobs/RemoveVolumeGroupJob.h @@ -0,0 +1,40 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef REMOVEVOLUMEGROUPJOB_H +#define REMOVEVOLUMEGROUPJOB_H + +#include + +class LvmDevice; + +class RemoveVolumeGroupJob : public Calamares::Job +{ +public: + RemoveVolumeGroupJob( LvmDevice* device ); + + QString prettyName() const override; + QString prettyDescription() const override; + QString prettyStatusMessage() const override; + Calamares::JobResult exec() override; + +private: + LvmDevice* m_device; +}; + +#endif // REMOVEVOLUMEGROUPJOB_H diff --git a/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp b/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp new file mode 100644 index 000000000..bc7ef264d --- /dev/null +++ b/src/modules/partition/jobs/ResizeVolumeGroupJob.cpp @@ -0,0 +1,101 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "ResizeVolumeGroupJob.h" + +// KPMcore +#include +#include +#include +#include + +ResizeVolumeGroupJob::ResizeVolumeGroupJob( LvmDevice* device, QVector< const Partition* >& partitionList ) + : m_device( device ) + , m_partitionList( partitionList ) +{ + +} + +QString +ResizeVolumeGroupJob::prettyName() const +{ + return tr( "Resize volume group named %1 from %2 to %3." ) + .arg( m_device->name() ) + .arg( currentPartitions() ) + .arg( targetPartitions() ); +} + +QString +ResizeVolumeGroupJob::prettyDescription() const +{ + return tr( "Resize volume group named %1 from %2 to %3." ) + .arg( m_device->name() ) + .arg( currentPartitions() ) + .arg( targetPartitions() ); +} + +QString +ResizeVolumeGroupJob::prettyStatusMessage() const +{ + return tr( "Resize volume group named %1 from %2 to %3." ) + .arg( m_device->name() ) + .arg( currentPartitions() ) + .arg( targetPartitions() ); +} + +Calamares::JobResult +ResizeVolumeGroupJob::exec() +{ + Report report( nullptr ); + + ResizeVolumeGroupOperation op( *m_device, m_partitionList ); + + op.setStatus( Operation::OperationStatus::StatusRunning ); + + QString message = tr( "The installer failed to resize a volume group named '%1'." ).arg( m_device->name() ); + if ( op.execute( report ) ) + return Calamares::JobResult::ok(); + + return Calamares::JobResult::error( message, report.toText() ); +} + +QString +ResizeVolumeGroupJob::currentPartitions() const +{ + QString result; + + for ( const Partition *p : m_device->physicalVolumes() ) + result += p->deviceNode() + ", "; + + result.chop(2); + + return result; +} + +QString +ResizeVolumeGroupJob::targetPartitions() const +{ + QString result; + + for ( const Partition *p : m_partitionList ) + result += p->deviceNode() + ", "; + + result.chop(2); + + return result; +} diff --git a/src/modules/partition/jobs/ResizeVolumeGroupJob.h b/src/modules/partition/jobs/ResizeVolumeGroupJob.h new file mode 100644 index 000000000..380bee416 --- /dev/null +++ b/src/modules/partition/jobs/ResizeVolumeGroupJob.h @@ -0,0 +1,48 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Caio Jordão Carvalho + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef RESIZEVOLUMEGROUPJOB_H +#define RESIZEVOLUMEGROUPJOB_H + +#include + +#include + +class LvmDevice; +class Partition; + +class ResizeVolumeGroupJob : public Calamares::Job +{ +public: + ResizeVolumeGroupJob( LvmDevice* device, QVector< const Partition* >& partitionList ); + + QString prettyName() const override; + QString prettyDescription() const override; + QString prettyStatusMessage() const override; + Calamares::JobResult exec() override; + +private: + QString currentPartitions() const; + QString targetPartitions() const; + +private: + LvmDevice* m_device; + QVector< const Partition* > m_partitionList; +}; + +#endif // RESIZEVOLUMEGROUPJOB_H diff --git a/src/modules/plasmalnf/CMakeLists.txt b/src/modules/plasmalnf/CMakeLists.txt index 15897f98c..e39b1af9f 100644 --- a/src/modules/plasmalnf/CMakeLists.txt +++ b/src/modules/plasmalnf/CMakeLists.txt @@ -4,8 +4,13 @@ find_package(ECM ${ECM_VERSION} REQUIRED NO_MODULE) # needs a runtime support component (which we don't test for). set( lnf_ver 5.41 ) +find_package( KF5Config ${lnf_ver} ) find_package( KF5Plasma ${lnf_ver} ) find_package( KF5Package ${lnf_ver} ) +set_package_properties( + KF5Config PROPERTIES + PURPOSE "For finding default Plasma Look-and-Feel" +) set_package_properties( KF5Plasma PROPERTIES PURPOSE "For Plasma Look-and-Feel selection" @@ -16,11 +21,19 @@ set_package_properties( ) if ( KF5Plasma_FOUND AND KF5Package_FOUND ) - find_package( KF5 ${lnf_ver} REQUIRED CoreAddons Plasma Package ) + if ( KF5Config_FOUND ) + set( option_kf5 Config ) + set( option_defs WITH_KCONFIG ) + # set( option_libs KF5::Config ) # Not needed anyway + endif() + + find_package( KF5 ${lnf_ver} REQUIRED CoreAddons Plasma Package ${option_kf5} ) calamares_add_plugin( plasmalnf TYPE viewmodule EXPORT_MACRO PLUGINDLLEXPORT_PRO + COMPILE_DEFINITIONS + ${option_defs} SOURCES PlasmaLnfViewStep.cpp PlasmaLnfPage.cpp @@ -32,6 +45,7 @@ if ( KF5Plasma_FOUND AND KF5Package_FOUND ) page_plasmalnf.ui LINK_PRIVATE_LIBRARIES calamaresui + ${option_libs} KF5::Package KF5::Plasma SHARED_LIB diff --git a/src/modules/plasmalnf/PlasmaLnfPage.cpp b/src/modules/plasmalnf/PlasmaLnfPage.cpp index 651a17b6b..df55cb3a4 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.cpp +++ b/src/modules/plasmalnf/PlasmaLnfPage.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -23,6 +23,8 @@ #include "utils/Logger.h" #include "utils/Retranslator.h" +#include + #include #include @@ -55,13 +57,18 @@ static ThemeInfoList plasma_themes() PlasmaLnfPage::PlasmaLnfPage( QWidget* parent ) : QWidget( parent ) , ui( new Ui::PlasmaLnfPage ) + , m_showAll( false ) , m_buttonGroup( nullptr ) { ui->setupUi( this ); CALAMARES_RETRANSLATE( { ui->retranslateUi( this ); - ui->generalExplanation->setText( tr( "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." ) ); + ui->generalExplanation->setText( tr( + "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.") ); updateThemeNames(); fillUi(); } @@ -75,10 +82,18 @@ PlasmaLnfPage::setLnfPath( const QString& path ) } void -PlasmaLnfPage::setEnabledThemes(const ThemeInfoList& themes) +PlasmaLnfPage::setEnabledThemes(const ThemeInfoList& themes, bool showAll ) { m_enabledThemes = themes; + if ( showAll ) + { + auto plasmaThemes = plasma_themes(); + for ( auto& installed_theme : plasmaThemes ) + if ( !m_enabledThemes.findById( installed_theme.id ) ) + m_enabledThemes.append( installed_theme ); + } + updateThemeNames(); winnowThemes(); fillUi(); @@ -87,9 +102,18 @@ PlasmaLnfPage::setEnabledThemes(const ThemeInfoList& themes) void PlasmaLnfPage::setEnabledThemesAll() { - setEnabledThemes( plasma_themes() ); + // Don't need to set showAll=true, because we're already passing in + // the complete list of installed themes. + setEnabledThemes( plasma_themes(), false ); } +void +PlasmaLnfPage::setPreselect( const QString& id ) +{ + m_preselect = id; + if ( !m_enabledThemes.isEmpty() ) + fillUi(); +} void PlasmaLnfPage::updateThemeNames() { @@ -162,6 +186,11 @@ void PlasmaLnfPage::fillUi() { theme.widget->updateThemeName( theme ); } + if ( theme.id == m_preselect ) + { + const QSignalBlocker b( theme.widget->button() ); + theme.widget->button()->setChecked( true ); + } ++c; } } diff --git a/src/modules/plasmalnf/PlasmaLnfPage.h b/src/modules/plasmalnf/PlasmaLnfPage.h index 2a4d3dd07..5a4c68b4e 100644 --- a/src/modules/plasmalnf/PlasmaLnfPage.h +++ b/src/modules/plasmalnf/PlasmaLnfPage.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -46,10 +46,17 @@ public: explicit PlasmaLnfPage( QWidget* parent = nullptr ); void setLnfPath( const QString& path ); - /** @brief enable only the listed themes. */ - void setEnabledThemes( const ThemeInfoList& themes ); + /** @brief enable only the listed themes. + * + * Shows the listed @p themes with full information (e.g. screenshot). + * If @p showAll is true, then also show all installed themes + * not explicitly listed (without a screenshot). + */ + void setEnabledThemes( const ThemeInfoList& themes, bool showAll ); /** @brief enable all installed plasma themes. */ void setEnabledThemesAll(); + /** @brief set which theme is to be preselected. */ + void setPreselect( const QString& id ); signals: void plasmaThemeSelected( const QString& id ); @@ -64,6 +71,8 @@ private: Ui::PlasmaLnfPage* ui; QString m_lnfPath; + QString m_preselect; + bool m_showAll; // If true, don't winnow according to enabledThemes ThemeInfoList m_enabledThemes; QButtonGroup *m_buttonGroup; diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp index 64c1932f6..ef319bde4 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.cpp +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -27,8 +27,25 @@ #include #include +#ifdef WITH_KCONFIG +#include +#include +#endif + CALAMARES_PLUGIN_FACTORY_DEFINITION( PlasmaLnfViewStepFactory, registerPlugin(); ) +static QString +currentPlasmaTheme() +{ +#ifdef WITH_KCONFIG + KConfigGroup cg( KSharedConfig::openConfig( QStringLiteral( "kdeglobals" ) ), "KDE" ); + return cg.readEntry( "LookAndFeelPackage", QString() ); +#else + cWarning() << "No KConfig support, cannot determine Plasma theme."; + return QString(); +#endif +} + PlasmaLnfViewStep::PlasmaLnfViewStep( QObject* parent ) : Calamares::ViewStep( parent ) , m_widget( new PlasmaLnfPage ) @@ -132,10 +149,18 @@ PlasmaLnfViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_liveUser = CalamaresUtils::getString( configurationMap, "liveuser" ); + QString preselect = CalamaresUtils::getString( configurationMap, "preselect" ); + if ( preselect == QStringLiteral( "*" ) ) + preselect = currentPlasmaTheme(); + if ( !preselect.isEmpty() ) + m_widget->setPreselect( preselect ); + + bool showAll = CalamaresUtils::getBool( configurationMap, "showAll", false ); + if ( configurationMap.contains( "themes" ) && configurationMap.value( "themes" ).type() == QVariant::List ) { - ThemeInfoList allThemes; + ThemeInfoList listedThemes; auto themeList = configurationMap.value( "themes" ).toList(); // Create the ThemInfo objects for the listed themes; information // about the themes from Plasma (e.g. human-readable name and description) @@ -144,14 +169,14 @@ PlasmaLnfViewStep::setConfigurationMap( const QVariantMap& configurationMap ) if ( i.type() == QVariant::Map ) { auto iv = i.toMap(); - allThemes.append( ThemeInfo( iv.value( "theme" ).toString(), iv.value( "image" ).toString() ) ); + listedThemes.append( ThemeInfo( iv.value( "theme" ).toString(), iv.value( "image" ).toString() ) ); } else if ( i.type() == QVariant::String ) - allThemes.append( ThemeInfo( i.toString() ) ); + listedThemes.append( ThemeInfo( i.toString() ) ); - if ( allThemes.length() == 1 ) + if ( listedThemes.length() == 1 ) cWarning() << "only one theme enabled in plasmalnf"; - m_widget->setEnabledThemes( allThemes ); + m_widget->setEnabledThemes( listedThemes, showAll ); } else m_widget->setEnabledThemesAll(); // All of them diff --git a/src/modules/plasmalnf/PlasmaLnfViewStep.h b/src/modules/plasmalnf/PlasmaLnfViewStep.h index 1f48798bc..b9a6b72e6 100644 --- a/src/modules/plasmalnf/PlasmaLnfViewStep.h +++ b/src/modules/plasmalnf/PlasmaLnfViewStep.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -61,9 +61,9 @@ public slots: private: PlasmaLnfPage* m_widget; - QString m_lnfPath; - QString m_themeId; - QString m_liveUser; + QString m_lnfPath; // Path to the lnf tool + QString m_themeId; // Id of selected theme + QString m_liveUser; // Name of the live user (for OEM mode) }; CALAMARES_PLUGIN_FACTORY_DECLARATION( PlasmaLnfViewStepFactory ) diff --git a/src/modules/plasmalnf/ThemeWidget.cpp b/src/modules/plasmalnf/ThemeWidget.cpp index f2a038030..92a88197f 100644 --- a/src/modules/plasmalnf/ThemeWidget.cpp +++ b/src/modules/plasmalnf/ThemeWidget.cpp @@ -22,10 +22,39 @@ #include "utils/CalamaresUtilsGui.h" #include "utils/Logger.h" +#include "Branding.h" +#include +#include #include #include #include +#include + +/** + * Massage the given @p path to the most-likely + * path that actually contains a screenshot. For + * empty image paths, returns the QRC path for an + * empty screenshot. Returns blank if the path + * doesn't exist anywhere in the search paths. + */ +static QString _munge_imagepath( const QString& path ) +{ + if ( path.isEmpty() ) + return ":/view-preview.png"; + + if ( path.startsWith( '/' ) ) + return path; + + if ( QFileInfo::exists( path ) ) + return path; + + QFileInfo fi( QDir( Calamares::Branding::instance()->componentDirectory() ), path ); + if ( fi.exists() ) + return fi.absoluteFilePath(); + + return QString(); +} ThemeWidget::ThemeWidget(const ThemeInfo& info, QWidget* parent) : QWidget( parent ) @@ -33,39 +62,37 @@ ThemeWidget::ThemeWidget(const ThemeInfo& info, QWidget* parent) , m_check( new QRadioButton( info.name.isEmpty() ? info.id : info.name, parent ) ) , m_description( new QLabel( info.description, parent ) ) { + const QSize image_size{ + qMax(12 * CalamaresUtils::defaultFontHeight(), 120), + qMax(8 * CalamaresUtils::defaultFontHeight(), 80) }; + QHBoxLayout* layout = new QHBoxLayout( this ); this->setLayout( layout ); layout->addWidget( m_check, 1 ); - const QSize image_size{ - qMax(12 * CalamaresUtils::defaultFontHeight(), 120), - qMax(8 * CalamaresUtils::defaultFontHeight(), 80) }; - - QPixmap image( info.imagePath ); - if ( info.imagePath.isEmpty() ) - { - // Image can't possibly be valid - image = QPixmap( ":/view-preview.png" ); - } - else if ( image.isNull() ) + QPixmap image( _munge_imagepath( info.imagePath ) ); + if ( image.isNull() ) { // Not found or not specified, so convert the name into some (horrible, likely) // color instead. image = QPixmap( image_size ); - uint hash_color = qHash( info.imagePath.isEmpty() ? info.id : info.imagePath ); + auto hash_color = qHash( info.imagePath.isEmpty() ? info.id : info.imagePath ); cDebug() << "Theme image" << info.imagePath << "not found, hash" << hash_color; image.fill( QColor( QRgb( hash_color ) ) ); } - image = image.scaled( image_size, Qt::KeepAspectRatio, Qt::SmoothTransformation ); + image = image.scaled( image_size, Qt::IgnoreAspectRatio, Qt::SmoothTransformation ); QLabel* image_label = new QLabel( this ); image_label->setPixmap( image ); + image_label->setMinimumSize( image_size ); + image_label->setMaximumSize( image_size ); + image_label->setSizePolicy( QSizePolicy::Fixed, QSizePolicy::Fixed ); layout->addWidget( image_label, 1 ); layout->addWidget( m_description, 3 ); - connect( m_check, &QRadioButton::clicked, this, &ThemeWidget::clicked ); + connect( m_check, &QRadioButton::toggled, this, &ThemeWidget::clicked ); } void diff --git a/src/modules/plasmalnf/plasmalnf.conf b/src/modules/plasmalnf/plasmalnf.conf index e1021015b..a954c685a 100644 --- a/src/modules/plasmalnf/plasmalnf.conf +++ b/src/modules/plasmalnf/plasmalnf.conf @@ -23,14 +23,19 @@ lnftool: "/usr/bin/lookandfeeltool" # You can limit the list of Plasma look-and-feel themes by listing ids # here. If this key is not present, all of the installed themes are listed. -# If the key is present, only installed themes that are *also* included -# in the list are shown (could be none!). +# If the key is present, only installed themes that are **also** included +# in the list are shown (could be none!). See the *showAll* key, below, +# to change that. # # Themes may be listed by id, (e.g. fluffy-bunny, below) or as a theme # and an image (e.g. breeze) which will be used to show a screenshot. # Themes with no image set at all get a "missing screenshot" image; if the # image file is not found, they get a color swatch based on the image name. # +# The image may be an absolute path. If it is a relative path, though, +# it is searched in the current directory and in the branding directory +# (i.e. relative to the directory where your branding.desc lives). +# # Valid forms of entries in the *themes* key: # - A single string (unquoted), which is the theme id # - A pair of *theme* and *image* keys, e.g. @@ -49,3 +54,26 @@ themes: - theme: org.kde.breezedark.desktop image: "breeze-dark.png" - org.kde.fluffy-bunny.desktop + +# If *showAll* is true, then all installed themes are shown in the +# UI for selection, even if they are not listed in *themes*. This +# allows selection of all themes even while not all of them are +# listed in *themes* -- which is useful to show screenshots for those +# you do have a screenshot for. +showAll: false + +# You can pre-select one of the themes; it is not applied +# immediately, but its radio-button is switched on to indicate +# that that is the theme (that is most likely) currently in use. +# Do this only on Live images where you are reasonably sure +# that the user is not going to change the theme out from under +# themselves before running the installer. +# +# If this key is present, its value should be the id of the theme +# which should be pre-selected. If absent, empty, or the pre-selected +# theme is not found on the live system, no theme will be pre-selected. +# +# As a special setting, use "*", to try to find the currently- +# selected theme by reading the Plasma configuration. This requires +# KF5::Config at build- and run-time. +preselect: "*" diff --git a/src/modules/plymouthcfg/main.py b/src/modules/plymouthcfg/main.py index 2cb4f6dac..6f1128b7e 100644 --- a/src/modules/plymouthcfg/main.py +++ b/src/modules/plymouthcfg/main.py @@ -5,6 +5,7 @@ # # Copyright 2016, Artoo # Copyright 2017, Alf Gaida +# Copyright 2018, Gabriel Craciunescu # # Calamares is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -40,14 +41,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): diff --git a/src/modules/preservefiles/CMakeLists.txt b/src/modules/preservefiles/CMakeLists.txt new file mode 100644 index 000000000..1ac979d1b --- /dev/null +++ b/src/modules/preservefiles/CMakeLists.txt @@ -0,0 +1,12 @@ +include_directories( ${PROJECT_BINARY_DIR}/src/libcalamaresui ) + +calamares_add_plugin( preservefiles + TYPE job + EXPORT_MACRO PLUGINDLLEXPORT_PRO + SOURCES + PreserveFiles.cpp + LINK_PRIVATE_LIBRARIES + calamares + SHARED_LIB + EMERGENCY +) diff --git a/src/modules/preservefiles/PreserveFiles.cpp b/src/modules/preservefiles/PreserveFiles.cpp new file mode 100644 index 000000000..0fe1d278b --- /dev/null +++ b/src/modules/preservefiles/PreserveFiles.cpp @@ -0,0 +1,206 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#include "PreserveFiles.h" + +#include "CalamaresVersion.h" +#include "JobQueue.h" +#include "GlobalStorage.h" + +#include "utils/CalamaresUtils.h" +#include "utils/CalamaresUtilsSystem.h" +#include "utils/CommandList.h" +#include "utils/Logger.h" +#include "utils/Units.h" + +#include + +using CalamaresUtils::operator""_MiB; + +QString targetPrefix() +{ + if ( CalamaresUtils::System::instance()->doChroot() ) + { + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + if ( gs && gs->contains( "rootMountPoint" ) ) + { + QString r = gs->value( "rootMountPoint" ).toString(); + if ( !r.isEmpty() ) + return r; + else + cDebug() << "RootMountPoint is empty"; + } + else + { + cDebug() << "No rootMountPoint defined, preserving files to '/'"; + } + } + + return QLatin1Literal( "/" ); +} + +QString atReplacements( QString s ) +{ + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + QString root( "/" ); + QString user; + + if ( gs && gs->contains( "rootMountPoint" ) ) + root = gs->value( "rootMountPoint" ).toString(); + if ( gs && gs->contains( "username" ) ) + user = gs->value( "username" ).toString(); + + return s.replace( "@@ROOT@@", root ).replace( "@@USER@@", user ); +} + +PreserveFiles::PreserveFiles( QObject* parent ) + : Calamares::CppJob( parent ) +{ +} + +PreserveFiles::~PreserveFiles() +{ +} + +QString +PreserveFiles::prettyName() const +{ + return tr( "Saving files for later ..." ); +} + +Calamares::JobResult PreserveFiles::exec() +{ + if ( m_items.isEmpty() ) + return Calamares::JobResult::error( tr( "No files configured to save for later." ) ); + + QString prefix = targetPrefix(); + if ( !prefix.endsWith( '/' ) ) + prefix.append( '/' ); + + int count = 0; + for ( const auto& it : m_items ) + { + QString source = it.source; + QString dest = prefix + atReplacements( it.dest ); + + if ( it.type == ItemType::Log ) + source = Logger::logFile(); + if ( it.type == ItemType::Config ) + { + if ( Calamares::JobQueue::instance()->globalStorage()->save( dest ) ) + cWarning() << "Could not write config for" << dest; + else + ++count; + } + else if ( source.isEmpty() ) + cWarning() << "Skipping unnamed source file for" << dest; + else + { + QFile sourcef( source ); + if ( !sourcef.open( QFile::ReadOnly ) ) + { + cWarning() << "Could not read" << source; + continue; + } + + QFile destf( dest ); + if ( !destf.open( QFile::WriteOnly ) ) + { + sourcef.close(); + cWarning() << "Could not open" << destf.fileName() << "for writing; could not copy" << source; + continue; + } + + QByteArray b; + do + { + b = sourcef.read( 1_MiB ); + destf.write( b ); + } + while ( b.count() > 0 ); + + sourcef.close(); + destf.close(); + ++count; + } + } + + return count == m_items.count() ? + Calamares::JobResult::ok() : + Calamares::JobResult::error( tr( "Not all of the configured files could be preserved." ) ); +} + +void PreserveFiles::setConfigurationMap(const QVariantMap& configurationMap) +{ + auto files = configurationMap[ "files" ]; + if ( !files.isValid() ) + { + cDebug() << "No 'files' key for preservefiles."; + return; + } + + if ( files.type() != QVariant::List ) + { + cDebug() << "Configuration key 'files' is not a list for preservefiles."; + return; + } + + QVariantList l = files.toList(); + unsigned int c = 0; + for ( const auto& li : l ) + { + if ( li.type() == QVariant::String ) + { + QString filename = li.toString(); + if ( !filename.isEmpty() ) + m_items.append( Item{ filename, filename, ItemType::Path } ); + else + cDebug() << "Empty filename for preservefiles, item" << c; + } + else if ( li.type() == QVariant::Map ) + { + const auto map = li.toMap(); + QString dest = map[ "dest" ].toString(); + QString from = map[ "from" ].toString(); + ItemType t = + ( from == "log" ) ? ItemType::Log : + ( from == "config" ) ? ItemType::Config : + ItemType::None; + + if ( dest.isEmpty() ) + { + cDebug() << "Empty dest for preservefiles, item" << c; + } + else if ( t == ItemType::None ) + { + cDebug() << "Invalid type for preservefiles, item" << c; + } + else + { + m_items.append( Item{ QString(), dest, t } ); + } + } + else + cDebug() << "Invalid type for preservefiles, item" << c; + + ++c; + } +} + +CALAMARES_PLUGIN_FACTORY_DEFINITION( PreserveFilesFactory, registerPlugin(); ) + diff --git a/src/modules/preservefiles/PreserveFiles.h b/src/modules/preservefiles/PreserveFiles.h new file mode 100644 index 000000000..0c9216336 --- /dev/null +++ b/src/modules/preservefiles/PreserveFiles.h @@ -0,0 +1,70 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +#ifndef PRESERVEFILES_H +#define PRESERVEFILES_H + +#include +#include +#include + +#include "CppJob.h" + +#include "utils/PluginFactory.h" + +#include "PluginDllMacro.h" + + +class PLUGINDLLEXPORT PreserveFiles : public Calamares::CppJob +{ + Q_OBJECT + + enum class ItemType + { + None, + Path, + Log, + Config + } ; + + struct Item + { + QString source; + QString dest; + ItemType type; + } ; + + using ItemList = QList< Item >; + +public: + explicit PreserveFiles( QObject* parent = nullptr ); + virtual ~PreserveFiles() override; + + QString prettyName() const override; + + Calamares::JobResult exec() override; + + void setConfigurationMap( const QVariantMap& configurationMap ) override; + +private: + ItemList m_items; +}; + +CALAMARES_PLUGIN_FACTORY_DECLARATION( PreserveFilesFactory ) + +#endif // PRESERVEFILES_H diff --git a/src/modules/preservefiles/preservefiles.conf b/src/modules/preservefiles/preservefiles.conf new file mode 100644 index 000000000..ab9114d20 --- /dev/null +++ b/src/modules/preservefiles/preservefiles.conf @@ -0,0 +1,36 @@ +# Configuration for the preserve-files job +# +# The *files* key contains a list of files to preserve. Each element of +# the list should have one of these forms: +# +# - an absolute path (probably within the host system). This will be preserved +# as the same path within the target system (chroot). If, globally, dontChroot +# is true, then these items are ignored (since the destination is the same +# as the source). +# - a map with a *dest* key. The *dest* value is a path interpreted in the +# target system (if dontChroot is true, in the host system). Relative paths +# are not recommended. There are two possible other keys in the map: +# - *from*, which must have one of the values, below; it is used to +# preserve files whose pathname is known to Calamares internally. +# - *src*, to refer to a path interpreted in the host system. Relative +# paths are not recommended, and are interpreted relative to where +# Calamares is being run. +# Only one of the two other keys (either *from* or *src*) may be set. +# +# The target filename is modified as follows: +# - `@@ROOT@@` is replaced by the path to the target root (may be /) +# - `@@USER@@` is replaced by the username entered by on the user +# page (may be empty, for instance if no user page is enabled) +# +# Special values for the key *from* are: +# - *log*, for the complete log file (up to the moment the preservefiles +# module is run), +# - *config*, for the Calamares configuration file +# - *globals*, for a JSON dump of the contents of global storage +--- +files: + - /etc/oem-information + - from: log + dest: /root/install.log + - from: config + dest: /root/install.cfg diff --git a/src/modules/removeuser/removeuser.conf b/src/modules/removeuser/removeuser.conf index a59961ec5..dab4b2526 100644 --- a/src/modules/removeuser/removeuser.conf +++ b/src/modules/removeuser/removeuser.conf @@ -1,2 +1,6 @@ +# Removes a single user (with userdel) from the system. +# This is typically used in OEM setups or if the live user +# spills into the target system. --- +# Username in the target system to be removed. username: live diff --git a/src/modules/services-openrc/main.py b/src/modules/services-openrc/main.py new file mode 100644 index 000000000..c3e14b481 --- /dev/null +++ b/src/modules/services-openrc/main.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# === This file is part of Calamares - === +# +# Copyright 2016, Artoo +# Copyright 2017, Philip Müller +# Copyright 2018, Artoo +# Copyright 2018, Adriaan de Groot +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . + +import libcalamares + +from libcalamares.utils import target_env_call, warning +from os.path import exists, join + + +class OpenrcController: + """ + This is the openrc service controller. + All of its state comes from global storage and the job + configuration at initialization time. + """ + + def __init__(self): + self.root = libcalamares.globalstorage.value('rootMountPoint') + + # Translate the entries in the config to the actions passed to rc-config + self.services = dict() + self.services["add"] = libcalamares.job.configuration.get('services', []) + self.services["del"] = libcalamares.job.configuration.get('disable', []) + + self.initdDir = libcalamares.job.configuration['initdDir'] + self.runlevelsDir = libcalamares.job.configuration['runlevelsDir'] + + def update(self, state): + """ + Call rc-update for each service listed + in services for the given @p state. rc-update + is called with @p state as the command as well. + """ + + for svc in self.services.get(state, []): + if isinstance(svc, str): + name = svc + runlevel = "default" + mandatory = False + else: + name = svc["name"] + runlevel = svc.get("runlevel", "default") + mandatory = svc.get("mandatory", False) + + service_path = self.root + self.initdDir + "/" + name + runlevel_path = self.root + self.runlevelsDir + "/" + runlevel + + if exists(service_path): + if exists(runlevel_path): + ec = target_env_call(["rc-update", state, name, runlevel]) + if ec != 0: + if mandatory: + return ("Cannot {} service {} to {}".format(state, name, runlevel), + "rc-update {} call in chroot returned error code {}".format(state, ec) + ) + else: + warning("Could not {} service {} in {}, error {!s}".format(state, name, runlevel, ec)) + else: + if mandatory: + return ("Target runlevel {} does not exist for {}.".format(runlevel, name), + "No {} found.".format(runlevel_path)) + else: + warning("Target runlevel {} does not exist for {}.".format(runlevel, name)) + else: + if mandatory: + return ("Target service {} does not exist.".format(name), + "No {} found.".format(service_path)) + else: + warning("Target service {} does not exist in {}.".format(name, self.initdDir)) + + + def run(self): + """Run the controller + """ + + for state in ("add", "del"): + r = self.update(state) + if r is not None: + return r + +def run(): + """ + Setup services + """ + + return OpenrcController().run() diff --git a/src/modules/services-openrc/module.desc b/src/modules/services-openrc/module.desc new file mode 100644 index 000000000..4b0b51614 --- /dev/null +++ b/src/modules/services-openrc/module.desc @@ -0,0 +1,5 @@ +--- +type: "job" +name: "services-openrc" +interface: "python" +script: "main.py" diff --git a/src/modules/services-openrc/services-openrc.conf b/src/modules/services-openrc/services-openrc.conf new file mode 100644 index 000000000..b8255b21a --- /dev/null +++ b/src/modules/services-openrc/services-openrc.conf @@ -0,0 +1,46 @@ +# openrc services module to modify service runlevels via rc-update in the chroot +# +# Services can be added (to any runlevel, or multiple runlevels) or deleted. +# Handle del with care and only use it if absolutely necessary. +# +# if a service is listed in the conf but is not present/detected on the target system, +# or a runlevel does not exist, it will be ignored and skipped; a warning is logged. +# +--- +# initdDir: holds the openrc service directory location +initdDir: /etc/init.d + +# runlevelsDir: holds the runlevels directory location +runlevelsDir: /etc/runlevels + +# services: a list of entries to **enable** +# disable: a list of entries to **disable** +# +# Each entry has three fields: +# - name: the service name +# - (optional) runlevel: can hold any runlevel present on the target +# system; if no runlevel is provided, "default" is assumed. +# - (optional) mandatory: if set to true, a failure to modify +# the service will result in installation failure, rather than just +# a warning. The default is false. +# +# an entry may also be a single string, which is interpreted +# as the name field (runlevel "default" is assumed then, and not-mandatory). +# +# # Example services and disable settings: +# # - add foo1 to default, but it must succeed +# # - add foo2 to nonetwork +# # - remove foo3 from default +# # - remove foo4 from default +# services: +# - name: foo1 +# mandatory: true +# - name: foo2 +# runlevel: nonetwork +# disable: +# - name: foo3 +# runlevel: default +# - foo4 +services: [] +disable: [] + diff --git a/src/modules/services-systemd/main.py b/src/modules/services-systemd/main.py new file mode 100644 index 000000000..09263b9f0 --- /dev/null +++ b/src/modules/services-systemd/main.py @@ -0,0 +1,97 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# === This file is part of Calamares - === +# +# Copyright 2014, Philip Müller +# Copyright 2014, Teo Mrnjavac +# Copyright 2017, Alf Gaida +# Copyright 2018, Adriaan de Groot +# +# Calamares is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Calamares is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Calamares. If not, see . + +import libcalamares + + +def systemctl(targets, command, suffix): + """ + For each entry in @p targets, run "systemctl ", + where is the entry's name plus the given @p suffix. + (No dot is added between name and suffix; suffix may be empty) + + Returns a failure message, or None if this was successful. + Services that are not mandatory have their failures suppressed + silently. + """ + for svc in targets: + if isinstance(svc, str): + name = svc + mandatory = False + else: + name = svc["name"] + mandatory = svc.get("mandatory", False) + + ec = libcalamares.utils.target_env_call( + ['systemctl', command, "{}{}".format(name, suffix)] + ) + + if ec != 0: + if mandatory: + return ("Cannot {} systemd {} {}".format(command, suffix, name), + "systemctl {} call in chroot returned error code {}".format(command, ec) + ) + else: + libcalamares.utils.warning( + "Cannot {} systemd {} {}".format(command, suffix, name) + ) + libcalamares.utils.warning( + "systemctl {} call in chroot returned error code {}".format(command, ec) + ) + return None + + +def run(): + """ + Setup systemd services + """ + cfg = libcalamares.job.configuration + + # note that the "systemctl enable" and "systemctl disable" commands used + # here will work in a chroot; in fact, they are the only systemctl commands + # that support that, see: + # http://0pointer.de/blog/projects/changing-roots.html + + r = systemctl(cfg.get("services", []), "enable", ".service") + if r is not None: + return r + + r = systemctl(cfg.get("targets", []), "enable", ".target") + if r is not None: + return r + + r = systemctl(cfg.get("disable", []), "disable", ".service") + if r is not None: + return r + + r = systemctl(cfg.get("disable-targets", []), "disable", ".target") + if r is not None: + return r + + r = systemctl(cfg.get("mask", []), "mask", "") + if r is not None: + return r + + + # This could have just been return r + return None diff --git a/src/modules/services/module.desc b/src/modules/services-systemd/module.desc similarity index 72% rename from src/modules/services/module.desc rename to src/modules/services-systemd/module.desc index eff1dcc63..4a72b658b 100644 --- a/src/modules/services/module.desc +++ b/src/modules/services-systemd/module.desc @@ -1,6 +1,6 @@ --- type: "job" -name: "services" +name: "services-systemd" interface: "python" requires: [] script: "main.py" diff --git a/src/modules/services-systemd/services-systemd.conf b/src/modules/services-systemd/services-systemd.conf new file mode 100644 index 000000000..6ff1409bf --- /dev/null +++ b/src/modules/services-systemd/services-systemd.conf @@ -0,0 +1,70 @@ +# Systemd services manipulation. +# +# This module can enable services and targets for systemd +# (if packaging doesn't already do that). It can calso +# disable services (but not targets). +# +# First, services are enabled; then targets; then services +# are disabled -- this order of operations is fixed. +--- + +# There are three configuration keys for this module: +# *services*, *targets* and *disable*. The value of each +# key is a list of entries. Each entry has two keys: +# - *name* is the (string) name of the service or target that is being +# changed. Use quotes. Don't include ".target" or ".service" +# in the name. +# - *mandatory* is a boolean option, which states whether the change +# must be done successfully. If systemd reports an error while changing +# a mandatory entry, the installation will fail. When mandatory is false, +# errors for that entry (service or target) are ignored. If mandatory +# is not specified, the default is false. +# +# An entry may also be given as a single string, which is then +# interpreted as the name of the service. In this case, mandatory +# is also set to the default of false. +# +# Use [] to express an empty list. + +# # This example enables NetworkManager (and fails if it can't), +# # disables cups (and ignores failure). Then it enables the +# # graphical target (e.g. so that SDDM runs for login), and +# # finally disables pacman-init (an ArchLinux-only service). +# # +# # Enables .service +# services: +# - name: "NetworkManager" +# mandatory: true +# - name: "cups" +# mandatory: false +# +# # Enables .target +# targets: +# - name: "graphical" +# mandatory: true +# +# # Disables .service +# disable: +# - name: "pacman-init" +# mandatory: false +# +# # Disables .target +# # .. this shows how to use just the name +# disable-targets: +# - graphical +# +# # Masks (stronger version of disable). This section +# # is unusual because you **must** include the suffix +# # (e.g. ".service") as part of the name, so, e.g. to mask +# # NetworkManager (rather than just disable it) you must +# # specify "NetworkManager.service" as name. +# mask: +# - name: "NetworkManager.service" +# - mandatory: true + +# By default, no changes are made. +services: [] +targets: [] +disable: [] +disable-targets: [] +mask: [] diff --git a/src/modules/services/main.py b/src/modules/services/main.py deleted file mode 100644 index 48e61d882..000000000 --- a/src/modules/services/main.py +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -# -# === This file is part of Calamares - === -# -# Copyright 2014, Philip Müller -# Copyright 2014, Teo Mrnjavac -# Copyright 2017, Alf Gaida -# -# 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 . - -import libcalamares - - -def run(): - """ - Setup systemd services - """ - services = libcalamares.job.configuration['services'] - targets = libcalamares.job.configuration['targets'] - disable = libcalamares.job.configuration['disable'] - - # note that the "systemctl enable" and "systemctl disable" commands used - # here will work in a chroot; in fact, they are the only systemctl commands - # that support that, see: - # http://0pointer.de/blog/projects/changing-roots.html - - # enable services - for svc in services: - ec = libcalamares.utils.target_env_call( - ['systemctl', 'enable', '{}.service'.format(svc['name'])] - ) - - if ec != 0: - if svc['mandatory']: - return ("Cannot enable systemd service {}".format(svc['name']), - "systemctl enable call in chroot returned error code " - "{}".format(ec) - ) - else: - libcalamares.utils.debug( - "Cannot enable systemd service {}".format(svc['name']) - ) - libcalamares.utils.debug( - "systemctl enable call in chroot returned error code " - "{}".format(ec) - ) - - # enable targets - for tgt in targets: - ec = libcalamares.utils.target_env_call( - ['systemctl', 'enable', '{}.target'.format(tgt['name'])] - ) - - if ec != 0: - if tgt['mandatory']: - return ("Cannot enable systemd target {}".format(tgt['name']), - "systemctl enable call in chroot returned error code" - "{}".format(ec) - ) - else: - libcalamares.utils.debug( - "Cannot enable systemd target {}".format(tgt['name']) - ) - libcalamares.utils.debug( - "systemctl enable call in chroot returned error code " - "{}".format(ec) - ) - - for dbl in disable: - ec = libcalamares.utils.target_env_call( - ['systemctl', 'disable', '{}.service'.format(dbl['name'])] - ) - - if ec != 0: - if dbl['mandatory']: - return ("Cannot disable systemd service" - "{}".format(dbl['name']), - "systemctl disable call in chroot returned error code" - "{}".format(ec)) - else: - libcalamares.utils.debug( - "Cannot disable systemd service {}".format(dbl['name']) - ) - libcalamares.utils.debug( - "systemctl disable call in chroot returned error code " - "{}".format(ec) - ) - - return None diff --git a/src/modules/services/services.conf b/src/modules/services/services.conf deleted file mode 100644 index d9c8895ea..000000000 --- a/src/modules/services/services.conf +++ /dev/null @@ -1,20 +0,0 @@ ---- -#systemd services and targets are enabled in this precise order - -services: - - name: "NetworkManager" #name of the service file - mandatory: false #true=> if enabling fails the installer errors out and quits - #false=>if enabling fails print warning to console and continue - - name: "cups" - mandatory: false - -targets: - - name: "graphical" - mandatory: true - -disable: - - name: "pacman-init" - mandatory: false - -# Example to express an empty list: -# disable: [] diff --git a/src/modules/shellprocess/Tests.cpp b/src/modules/shellprocess/Tests.cpp index c6643325f..068aefda5 100644 --- a/src/modules/shellprocess/Tests.cpp +++ b/src/modules/shellprocess/Tests.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -18,7 +18,12 @@ #include "Tests.h" +#include "GlobalStorage.h" +#include "JobQueue.h" +#include "Settings.h" + #include "utils/CommandList.h" +#include "utils/Logger.h" #include "utils/YamlUtils.h" #include @@ -149,3 +154,60 @@ script: QCOMPARE( cl.at(0).command(), QStringLiteral( "ls /tmp" ) ); QCOMPARE( cl.at(1).timeout(), -1 ); // not set } + +void ShellProcessTests::testRootSubstitution() +{ + YAML::Node doc = YAML::Load( R"(--- +script: + - "ls /tmp" +)" ); + QVariant plainScript = CalamaresUtils::yamlMapToVariant( doc ).toMap().value( "script" ); + QVariant rootScript = CalamaresUtils::yamlMapToVariant( + YAML::Load( R"(--- +script: + - "ls @@ROOT@@" +)" ) ).toMap().value( "script" ); + QVariant userScript = CalamaresUtils::yamlMapToVariant( + YAML::Load( R"(--- +script: + - mktemp -d @@ROOT@@/calatestXXXXXXXX + - "chown @@USER@@ @@ROOT@@/calatest*" + - rm -rf @@ROOT@@/calatest* +)" ) ).toMap().value( "script" ); + + if ( !Calamares::JobQueue::instance() ) + (void *)new Calamares::JobQueue( nullptr ); + if ( !Calamares::Settings::instance() ) + (void *)new Calamares::Settings( QString(), true ); + + Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage(); + QVERIFY( gs != nullptr ); + + qDebug() << "Expect WARNING, ERROR, WARNING"; + // Doesn't use @@ROOT@@, so no failures + QVERIFY( bool(CommandList(plainScript, false, 10 ).run()) ); + + // Doesn't use @@ROOT@@, but does chroot, so fails + QVERIFY( !bool(CommandList(plainScript, true, 10 ).run()) ); + + // Does use @@ROOT@@, which is not set, so fails + QVERIFY( !bool(CommandList(rootScript, false, 10 ).run()) ); + // .. fails for two reasons + QVERIFY( !bool(CommandList(rootScript, true, 10 ).run()) ); + + gs->insert( "rootMountPoint", "/tmp" ); + // Now that the root is set, two variants work .. still can't + // chroot, unless the rootMountPoint contains a full system, + // *and* we're allowed to chroot (ie. running tests as root). + qDebug() << "Expect no output."; + QVERIFY( bool(CommandList(plainScript, false, 10 ).run()) ); + QVERIFY( bool(CommandList(rootScript, false, 10 ).run()) ); + + qDebug() << "Expect ERROR"; + // But no user set yet + QVERIFY( !bool(CommandList(userScript, false, 10 ).run()) ); + + // Now play dangerous games with shell expansion + gs->insert( "username", "`id -u`" ); + QVERIFY( bool(CommandList(userScript, false, 10 ).run()) ); +} diff --git a/src/modules/shellprocess/Tests.h b/src/modules/shellprocess/Tests.h index af1f78487..5b4ebebbb 100644 --- a/src/modules/shellprocess/Tests.h +++ b/src/modules/shellprocess/Tests.h @@ -40,6 +40,8 @@ private Q_SLOTS: void testProcessFromObject(); // Create from a complex YAML list void testProcessListFromObject(); + // Check @@ROOT@@ substitution + void testRootSubstitution(); }; #endif diff --git a/src/modules/shellprocess/shellprocess.conf b/src/modules/shellprocess/shellprocess.conf index ff53dc228..4734aaadd 100644 --- a/src/modules/shellprocess/shellprocess.conf +++ b/src/modules/shellprocess/shellprocess.conf @@ -4,9 +4,11 @@ # If the top-level key *dontChroot* is true, then the commands # are executed in the context of the live system, otherwise # in the context of the target system. In all of the commands, -# `@@ROOT@@` is replaced by the root mount point of the **target** -# system from the point of view of the command (for chrooted -# commands, that will be */*). +# the following substitutions will take place: +# - `@@ROOT@@` is replaced by the root mount point of the **target** +# system from the point of view of the command (for chrooted +# commands, that will be */*). +# - `@@USER@@` is replaced by the username, set on the user page. # # The (global) timeout for the command list can be set with # the *timeout* key. The value is a time in seconds, default diff --git a/src/modules/test_conf.cpp b/src/modules/test_conf.cpp index 7ef557a3c..b5362d25a 100644 --- a/src/modules/test_conf.cpp +++ b/src/modules/test_conf.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -21,43 +21,86 @@ * shipped with each module for correctness -- well, for parseability. */ +#include +#include + #include + #include +#include +#include + using std::cerr; +static const char usage[] = "Usage: test_conf [-v] [-b] ...\n"; + int main(int argc, char** argv) { - if (argc != 2) + bool verbose = false; + bool bytes = false; + + int opt; + while ((opt = getopt(argc, argv, "vb")) != -1) { + switch (opt) { + case 'v': + verbose = true; + break; + case 'b': + bytes = true; + break; + default: /* '?' */ + cerr << usage; + return 1; + } + } + + if ( optind >= argc ) { - cerr << "Usage: test_conf \n"; + cerr << usage; return 1; } + const char* filename = argv[optind]; try { - YAML::Node doc = YAML::LoadFile( argv[1] ); + YAML::Node doc; + if ( bytes ) + { + QFile f( filename ); + if ( f.open( QFile::ReadOnly | QFile::Text ) ) + doc = YAML::Load( f.readAll().constData() ); + } + else + doc = YAML::LoadFile( filename ); if ( doc.IsNull() ) { // Special case: empty config files are valid, // but aren't a map. For the example configs, // this is still an error. - cerr << "WARNING:" << argv[1] << '\n'; + cerr << "WARNING:" << filename << '\n'; cerr << "WARNING: empty YAML\n"; return 1; } if ( !doc.IsMap() ) { - cerr << "WARNING:" << argv[1] << '\n'; + cerr << "WARNING:" << filename << '\n'; cerr << "WARNING: not-a-YAML-map\n"; return 1; } + + if ( verbose ) + { + cerr << "Keys:\n"; + for ( auto i = doc.begin(); i != doc.end(); ++i ) + cerr << i->first.as() << '\n'; + } } catch ( YAML::Exception& e ) { - cerr << "WARNING:" << argv[1] << '\n'; + cerr << "WARNING:" << filename << '\n'; cerr << "WARNING: YAML parser error " << e.what() << '\n'; return 1; } diff --git a/src/modules/tracking/TrackingJobs.cpp b/src/modules/tracking/TrackingJobs.cpp index 717d636d3..7875ee6db 100644 --- a/src/modules/tracking/TrackingJobs.cpp +++ b/src/modules/tracking/TrackingJobs.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingJobs.h b/src/modules/tracking/TrackingJobs.h index 4ad3652ca..a379441c9 100644 --- a/src/modules/tracking/TrackingJobs.h +++ b/src/modules/tracking/TrackingJobs.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingPage.cpp b/src/modules/tracking/TrackingPage.cpp index 26858442f..924ac43d9 100644 --- a/src/modules/tracking/TrackingPage.cpp +++ b/src/modules/tracking/TrackingPage.cpp @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/tracking/TrackingViewStep.h b/src/modules/tracking/TrackingViewStep.h index c024f1d3a..dc3ae823e 100644 --- a/src/modules/tracking/TrackingViewStep.h +++ b/src/modules/tracking/TrackingViewStep.h @@ -1,6 +1,6 @@ /* === This file is part of Calamares - === * - * Copyright 2017, Adriaan de Groot + * Copyright 2017, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/users/CreateUserJob.cpp b/src/modules/users/CreateUserJob.cpp index 727cae2ae..052af87c6 100644 --- a/src/modules/users/CreateUserJob.cpp +++ b/src/modules/users/CreateUserJob.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2016, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -146,44 +147,37 @@ CreateUserJob::exec() } } - int ec = CalamaresUtils::System::instance()-> - targetEnvCall( { "useradd", - "-m", - "-s", - "/bin/bash", - "-U", - "-c", - m_fullName, - m_userName } ); - if ( ec ) - return Calamares::JobResult::error( tr( "Cannot create user %1." ) - .arg( m_userName ), - tr( "useradd terminated with error code %1." ) - .arg( ec ) ); - - ec = CalamaresUtils::System::instance()-> - targetEnvCall( { "usermod", - "-aG", - defaultGroups, - m_userName } ); - if ( ec ) - return Calamares::JobResult::error( tr( "Cannot add user %1 to groups: %2." ) - .arg( m_userName ) - .arg( defaultGroups ), - tr( "usermod terminated with error code %1." ) - .arg( ec ) ); - - ec = CalamaresUtils::System::instance()-> - targetEnvCall( { "chown", - "-R", - QString( "%1:%2" ).arg( m_userName ) - .arg( m_userName ), - QString( "/home/%1" ).arg( m_userName ) } ); - if ( ec ) - return Calamares::JobResult::error( tr( "Cannot set home directory ownership for user %1." ) - .arg( m_userName ), - tr( "chown terminated with error code %1." ) - .arg( ec ) ); + QStringList useradd{ "useradd", "-m", "-U" }; + QString shell = gs->value( "userShell" ).toString(); + if ( !shell.isEmpty() ) + useradd << "-s" << shell; + useradd << "-c" << m_fullName; + useradd << m_userName; + + auto pres = CalamaresUtils::System::instance()->targetEnvCommand( useradd ); + if ( pres.getExitCode() ) + { + cError() << "useradd failed" << pres.getExitCode(); + return pres.explainProcess( useradd, 10 /* bogus timeout */ ); + } + + pres = CalamaresUtils::System::instance()->targetEnvCommand( + { "usermod", "-aG", defaultGroups, m_userName } ); + if ( pres.getExitCode() ) + { + cError() << "usermod failed" << pres.getExitCode(); + return pres.explainProcess( "usermod", 10 ); + } + + QString userGroup = QString( "%1:%2" ).arg( m_userName ).arg( m_userName ); + QString homeDir = QString( "/home/%1" ).arg( m_userName ); + pres = CalamaresUtils::System::instance()->targetEnvCommand( + { "chown", "-R", userGroup, homeDir } ); + if ( pres.getExitCode() ) + { + cError() << "chown failed" << pres.getExitCode(); + return pres.explainProcess( "chown", 10 ); + } return Calamares::JobResult::ok(); } diff --git a/src/modules/users/SetHostNameJob.cpp b/src/modules/users/SetHostNameJob.cpp index 948f78d17..62b1c61a7 100644 --- a/src/modules/users/SetHostNameJob.cpp +++ b/src/modules/users/SetHostNameJob.cpp @@ -2,6 +2,7 @@ * * Copyright 2014, Rohan Garg * Copyright 2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -57,21 +58,21 @@ Calamares::JobResult SetHostNameJob::exec() if ( !gs || !gs->contains( "rootMountPoint" ) ) { - cLog() << "No rootMountPoint in global storage"; + cError() << "No rootMountPoint in global storage"; return Calamares::JobResult::error( tr( "Internal Error" ) ); } QString destDir = gs->value( "rootMountPoint" ).toString(); if ( !QDir( destDir ).exists() ) { - cLog() << "rootMountPoint points to a dir which does not exist"; + cError() << "rootMountPoint points to a dir which does not exist"; return Calamares::JobResult::error( tr( "Internal Error" ) ); } QFile hostfile( destDir + "/etc/hostname" ); if ( !hostfile.open( QFile::WriteOnly ) ) { - cLog() << "Can't write to hostname file"; + cError() << "Can't write to hostname file"; return Calamares::JobResult::error( tr( "Cannot write hostname to target system" ) ); } @@ -82,7 +83,7 @@ Calamares::JobResult SetHostNameJob::exec() QFile hostsfile( destDir + "/etc/hosts" ); if ( !hostsfile.open( QFile::WriteOnly ) ) { - cLog() << "Can't write to hosts file"; + cError() << "Can't write to hosts file"; return Calamares::JobResult::error( tr( "Cannot write hostname to target system" ) ); } diff --git a/src/modules/users/UsersPage.cpp b/src/modules/users/UsersPage.cpp index 86e010469..04b851cf9 100644 --- a/src/modules/users/UsersPage.cpp +++ b/src/modules/users/UsersPage.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer diff --git a/src/modules/users/UsersPage.h b/src/modules/users/UsersPage.h index 5990d8693..a238461ec 100644 --- a/src/modules/users/UsersPage.h +++ b/src/modules/users/UsersPage.h @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * * Portions from the Manjaro Installation Framework * by Roland Singer @@ -52,6 +52,12 @@ public: void setAutologinDefault( bool checked ); void setReusePasswordDefault( bool checked ); + /** @brief Process entries in the passwordRequirements config entry + * + * Called once for each item in the config entry, which should + * be a key-value pair. What makes sense as a value depends on + * the key. Supported keys are documented in users.conf. + */ void addPasswordCheck( const QString& key, const QVariant& value ); protected slots: diff --git a/src/modules/users/UsersViewStep.cpp b/src/modules/users/UsersViewStep.cpp index 015d7e997..8ff7b0e7b 100644 --- a/src/modules/users/UsersViewStep.cpp +++ b/src/modules/users/UsersViewStep.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * Copyright 2017, Gabriel Craciunescu * * Calamares is free software: you can redistribute it and/or modify @@ -22,9 +22,11 @@ #include "UsersPage.h" +#include "utils/CalamaresUtils.h" #include "utils/Logger.h" -#include "JobQueue.h" + #include "GlobalStorage.h" +#include "JobQueue.h" CALAMARES_PLUGIN_FACTORY_DEFINITION( UsersViewStepFactory, registerPlugin(); ) @@ -181,5 +183,12 @@ UsersViewStep::setConfigurationMap( const QVariantMap& configurationMap ) m_widget->addPasswordCheck( i.key(), i.value() ); } } + + QString shell( QLatin1Literal( "/bin/bash" ) ); // as if it's not set at all + if ( configurationMap.contains( "userShell" ) ) + shell = CalamaresUtils::getString( configurationMap, "userShell" ); + // Now it might be explicitly set to empty, which is ok + + Calamares::JobQueue::instance()->globalStorage()->insert( "userShell", shell ); } diff --git a/src/modules/users/users.conf b/src/modules/users/users.conf index 6111a6e80..0c40faeff 100644 --- a/src/modules/users/users.conf +++ b/src/modules/users/users.conf @@ -72,5 +72,14 @@ passwordRequirements: minLength: -1 # Password at least this many characters maxLength: -1 # Password at most this many characters libpwquality: - - minlen=8 - - minclass=2 + - minlen=0 + - minclass=0 + +# Shell to be used for the regular user of the target system. +# There are three possible kinds of settings: +# - unset (i.e. commented out, the default), act as if set to /bin/bash +# - empty (explicit), don't pass shell information to useradd at all +# and rely on a correct configuration file in /etc/default/useradd +# - set, non-empty, use that path as shell. No validation is done +# that the shell actually exists or is executable. +# userShell: /bin/bash diff --git a/src/modules/welcome/WelcomePage.cpp b/src/modules/welcome/WelcomePage.cpp index 2624eda2f..972c4e22c 100644 --- a/src/modules/welcome/WelcomePage.cpp +++ b/src/modules/welcome/WelcomePage.cpp @@ -111,86 +111,175 @@ WelcomePage::WelcomePage( QWidget* parent ) } -void -WelcomePage::initLanguages() +/** @brief Match the combobox of languages with a predicate + * + * Scans the entries in the @p list (actually a ComboBox) and if one + * matches the given @p predicate, returns true and sets @p matchFound + * to the locale that matched. + * + * If none match, returns false and leaves @p matchFound unchanged. + */ +static +bool matchLocale( QComboBox& list, QLocale& matchFound, std::function predicate) { - ui->languageWidget->setInsertPolicy( QComboBox::InsertAlphabetically ); + for (int i = 0; i < list.count(); i++) + { + QLocale thisLocale = list.itemData( i, Qt::UserRole ).toLocale(); + if ( predicate(thisLocale) ) + { + list.setCurrentIndex( i ); + cDebug() << " .. Matched locale " << thisLocale.name(); + matchFound = thisLocale; + return true; + } + } - QLocale defaultLocale = QLocale( QLocale::system().name() ); + return false; +} + +struct LocaleLabel +{ + LocaleLabel( const QString& locale ) + : m_locale( LocaleLabel::getLocale( locale ) ) + , m_localeId( locale ) { - bool isTranslationAvailable = false; + QString sortKey = QLocale::languageToString( m_locale.language() ); + QString label = m_locale.nativeLanguageName(); - const auto locales = QString( CALAMARES_TRANSLATION_LANGUAGES ).split( ';'); - for ( const QString& locale : locales ) + if ( label.isEmpty() ) + label = QString( QLatin1Literal( "* %1 (%2)" ) ).arg( locale, sortKey ); + + if ( locale.contains( '_' ) && QLocale::countriesForLanguage( m_locale.language() ).count() > 2 ) { - QLocale thisLocale = QLocale( locale ); - QString lang = QLocale::languageToString( thisLocale.language() ); - if ( QLocale::countriesForLanguage( thisLocale.language() ).count() > 2 ) - lang.append( QString( " (%1)" ) - .arg( QLocale::countryToString( thisLocale.country() ) ) ); - - ui->languageWidget->addItem( lang, thisLocale ); - if ( thisLocale.language() == defaultLocale.language() && - thisLocale.country() == defaultLocale.country() ) - { - isTranslationAvailable = true; - ui->languageWidget->setCurrentIndex( ui->languageWidget->count() - 1 ); - cDebug() << "Initial locale " << thisLocale.name(); - CalamaresUtils::installTranslator( thisLocale.name(), - Calamares::Branding::instance()->translationsPathPrefix(), - qApp ); - } + QLatin1Literal countrySuffix( " (%1)" ); + + sortKey.append( QString( countrySuffix ).arg( QLocale::countryToString( m_locale.country() ) ) ); + + // If the language name is RTL, make this parenthetical addition RTL as well. + QString countryFormat = label.isRightToLeft() ? QString( QChar( 0x202B ) ) : QString(); + countryFormat.append( countrySuffix ); + label.append( countryFormat.arg( m_locale.nativeCountryName() ) ); } - if ( !isTranslationAvailable ) + m_sortKey = sortKey; + m_label = label; + } + + QLocale m_locale; + QString m_localeId; // the locale identifier, e.g. "en_GB" + QString m_sortKey; // the English name of the locale + QString m_label; // the native name of the locale + + /** @brief Define a sorting order. + * + * English (@see isEnglish() -- it means en_US) is sorted at the top. + */ + bool operator <(const LocaleLabel& other) const + { + if ( isEnglish() ) + return !other.isEnglish(); + if ( other.isEnglish() ) + return false; + return m_sortKey < other.m_sortKey; + } + + /** @brief Is this locale English? + * + * en_US and en (American English) is defined as English. The Queen's + * English -- proper English -- is relegated to non-English status. + */ + bool isEnglish() const + { + return m_localeId == QLatin1Literal( "en_US" ) || m_localeId == QLatin1Literal( "en" ); + } + + static QLocale getLocale( const QString& localeName ) + { + if ( localeName.contains( "@latin" ) ) { - for (int i = 0; i < ui->languageWidget->count(); i++) - { - QLocale thisLocale = ui->languageWidget->itemData( i, Qt::UserRole ).toLocale(); - if ( thisLocale.language() == defaultLocale.language() ) - { - isTranslationAvailable = true; - ui->languageWidget->setCurrentIndex( i ); - cDebug() << "Initial locale " << thisLocale.name(); - CalamaresUtils::installTranslator( thisLocale.name(), - Calamares::Branding::instance()->translationsPathPrefix(), - qApp ); - break; - } - } + QLocale loc( localeName ); + return QLocale( loc.language(), QLocale::Script::LatinScript, loc.country() ); } + else + return QLocale( localeName ); + } +} ; - if ( !isTranslationAvailable ) +void +WelcomePage::initLanguages() +{ + // Fill the list of translations + ui->languageWidget->clear(); + ui->languageWidget->setInsertPolicy( QComboBox::InsertAtBottom ); + + { + std::list< LocaleLabel > localeList; + const auto locales = QString( CALAMARES_TRANSLATION_LANGUAGES ).split( ';'); + for ( const QString& locale : locales ) { - for (int i = 0; i < ui->languageWidget->count(); i++) - { - QLocale thisLocale = ui->languageWidget->itemData( i, Qt::UserRole ).toLocale(); - if ( thisLocale == QLocale( QLocale::English, QLocale::UnitedStates ) ) - { - ui->languageWidget->setCurrentIndex( i ); - cDebug() << "Translation unavailable, so initial locale set to " << thisLocale.name(); - QLocale::setDefault( thisLocale ); - CalamaresUtils::installTranslator( thisLocale.name(), - Calamares::Branding::instance()->translationsPathPrefix(), - qApp ); - break; - } - } + localeList.emplace_back( locale ); } - connect( ui->languageWidget, - static_cast< void ( QComboBox::* )( int ) >( &QComboBox::currentIndexChanged ), - this, [ & ]( int newIndex ) + localeList.sort(); // According to the sortkey, which is english + + for ( const auto& locale : localeList ) { - QLocale selectedLocale = ui->languageWidget->itemData( newIndex, Qt::UserRole ).toLocale(); - cDebug() << "Selected locale" << selectedLocale.name(); + ui->languageWidget->addItem( locale.m_label, locale.m_locale ); + } + } - QLocale::setDefault( selectedLocale ); - CalamaresUtils::installTranslator( selectedLocale, - Calamares::Branding::instance()->translationsPathPrefix(), - qApp ); - } ); + // Find the best initial translation + QLocale defaultLocale = QLocale( QLocale::system().name() ); + QLocale matchedLocale; + + cDebug() << "Matching exact locale" << defaultLocale; + bool isTranslationAvailable = + matchLocale( *(ui->languageWidget), matchedLocale, + [&](const QLocale& x){ return x.language() == defaultLocale.language() && x.country() == defaultLocale.country(); } ); + + if ( !isTranslationAvailable ) + { + cDebug() << "Matching approximate locale" << defaultLocale.language(); + + isTranslationAvailable = + matchLocale( *(ui->languageWidget), matchedLocale, + [&](const QLocale& x){ return x.language() == defaultLocale.language(); } ) ; } + + if ( !isTranslationAvailable ) + { + QLocale en_us( QLocale::English, QLocale::UnitedStates ); + + cDebug() << "Matching English (US)"; + isTranslationAvailable = + matchLocale( *(ui->languageWidget), matchedLocale, + [&](const QLocale& x){ return x == en_us; } ); + + // Now, if it matched, because we didn't match the system locale, switch to the one found + if ( isTranslationAvailable ) + QLocale::setDefault( matchedLocale ); + } + + if ( isTranslationAvailable ) + CalamaresUtils::installTranslator( matchedLocale.name(), + Calamares::Branding::instance()->translationsPathPrefix(), + qApp ); + else + cWarning() << "No available translation matched" << defaultLocale; + + connect( ui->languageWidget, + static_cast< void ( QComboBox::* )( int ) >( &QComboBox::currentIndexChanged ), + this, + [&]( int newIndex ) + { + QLocale selectedLocale = ui->languageWidget->itemData( newIndex, Qt::UserRole ).toLocale(); + cDebug() << "Selected locale" << selectedLocale; + + QLocale::setDefault( selectedLocale ); + CalamaresUtils::installTranslator( selectedLocale, + Calamares::Branding::instance()->translationsPathPrefix(), + qApp ); + } ); } diff --git a/src/modules/welcome/WelcomeViewStep.cpp b/src/modules/welcome/WelcomeViewStep.cpp index c235f8c7e..305184218 100644 --- a/src/modules/welcome/WelcomeViewStep.cpp +++ b/src/modules/welcome/WelcomeViewStep.cpp @@ -1,6 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2015, Teo Mrnjavac + * Copyright 2018, Adriaan de Groot * * Calamares is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff --git a/src/modules/welcome/checker/RequirementsChecker.cpp b/src/modules/welcome/checker/RequirementsChecker.cpp index aa1d62140..08b43eee6 100644 --- a/src/modules/welcome/checker/RequirementsChecker.cpp +++ b/src/modules/welcome/checker/RequirementsChecker.cpp @@ -1,7 +1,7 @@ /* === This file is part of Calamares - === * * Copyright 2014-2017, Teo Mrnjavac - * Copyright 2017, Adriaan de Groot + * Copyright 2017-2018, Adriaan de Groot * Copyright 2017, Gabriel Craciunescu * * Calamares is free software: you can redistribute it and/or modify @@ -90,12 +90,13 @@ Calamares::RequirementsList RequirementsChecker::checkRequirements(QWidget* some if ( m_entriesToCheck.contains( "root" ) ) isRoot = checkIsRoot(); + using TR = Logger::DebugRow; cDebug() << "RequirementsChecker output:" - << " enoughStorage:" << enoughStorage - << " enoughRam:" << enoughRam - << " hasPower:" << hasPower - << " hasInternet:" << hasInternet - << " isRoot:" << isRoot; + << TR("enoughStorage", enoughStorage) + << TR("enoughRam", enoughRam) + << TR("hasPower", hasPower) + << TR("hasInternet", hasInternet) + << TR("isRoot", isRoot); Calamares::RequirementsList checkEntries; foreach ( const QString& entry, m_entriesToCheck ) @@ -255,7 +256,9 @@ RequirementsChecker::setConfigurationMap( const QVariantMap& configurationMap ) } if ( incompleteConfiguration ) - cWarning() << "RequirementsChecker configuration map:\n" << configurationMap; + { + cWarning() << "RequirementsChecker configuration map:" << Logger::DebugMap( configurationMap ); + } } diff --git a/src/modules/welcome/welcome.conf b/src/modules/welcome/welcome.conf index eef03bf89..52492ffef 100644 --- a/src/modules/welcome/welcome.conf +++ b/src/modules/welcome/welcome.conf @@ -44,6 +44,6 @@ requirements: # If any of these conditions are not met, the user cannot # continue past the welcome page. required: - - storage + # - storage - ram - - root + # - root diff --git a/src/qml/calamares/slideshow/BackButton.qml b/src/qml/calamares/slideshow/BackButton.qml new file mode 100644 index 000000000..2d5f4dd5e --- /dev/null +++ b/src/qml/calamares/slideshow/BackButton.qml @@ -0,0 +1,24 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +NavButton { + id: backButton + anchors.left: parent.left + visible: parent.currentSlide > 0 + isForward: false +} diff --git a/src/qml/calamares/slideshow/ForwardButton.qml b/src/qml/calamares/slideshow/ForwardButton.qml new file mode 100644 index 000000000..9f6fecf8e --- /dev/null +++ b/src/qml/calamares/slideshow/ForwardButton.qml @@ -0,0 +1,23 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +NavButton { + id: forwardButton + anchors.right: parent.right + visible: parent.currentSlide + 1 < parent.slides.length; +} diff --git a/src/qml/calamares/slideshow/NavButton.qml b/src/qml/calamares/slideshow/NavButton.qml new file mode 100644 index 000000000..33d8cad77 --- /dev/null +++ b/src/qml/calamares/slideshow/NavButton.qml @@ -0,0 +1,68 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +/* This is a navigation (arrow) button that fades in on hover, and + * which calls forward / backward navigation on the presentation it + * is in. It should be a child item of the presentation (not of a + * single slide). Use the ForwardButton or BackButton for a pre- + * configured instance that interacts with the presentation. + */ + +import QtQuick 2.5; + +Image { + id: fade + + property bool isForward : true + + width: 100 + height: 100 + anchors.verticalCenter: parent.verticalCenter + opacity: 0.3 + + OpacityAnimator { + id: fadeIn + target: fade + from: fade.opacity + to: 1.0 + duration: 500 + running: false + } + + OpacityAnimator { + id: fadeOut + target: fade + from: fade.opacity + to: 0.3 + duration: 250 + running: false + } + + MouseArea { + anchors.fill: parent + hoverEnabled: true + onEntered: { fadeOut.running = false; fadeIn.running = true } + onExited: { fadeIn.running = false ; fadeOut.running = true } + onClicked: { + if (isForward) + fade.parent.goToNextSlide() + else + fade.parent.goToPreviousSlide() + } + } +} diff --git a/src/qml/calamares/slideshow/Presentation.qml b/src/qml/calamares/slideshow/Presentation.qml index b53b9fc55..4843e15a6 100644 --- a/src/qml/calamares/slideshow/Presentation.qml +++ b/src/qml/calamares/slideshow/Presentation.qml @@ -2,6 +2,12 @@ * * Copyright 2017, Adriaan de Groot * - added looping, keys-instead-of-shortcut + * Copyright 2018, Adriaan de Groot + * - make looping a property, drop the 'c' fade-key + * - drop navigation through entering a slide number + * (this and the 'c' key make sense in a *presentation* + * slideshow, not in a passive slideshow like Calamares) + * - remove quit key * * SPDX-License-Identifier: LGPL-2.1 * License-Filename: LICENSES/LGPLv2.1-Presentation @@ -58,6 +64,8 @@ Item { property variant slides: [] property int currentSlide: 0 + property bool loopSlides: true + property bool showNotes: false; property bool allowDelay: true; property alias mouseNavigation: mouseArea.enabled @@ -70,8 +78,6 @@ Item { property string codeFontFamily: "Courier New" // Private API - property bool _faded: false - property int _userNum; property int _lastShownSlide: 0 Component.onCompleted: { @@ -85,7 +91,6 @@ Item { } root.slides = slides; - root._userNum = 0; // Make first slide visible... if (root.slides.length > 0) @@ -106,48 +111,21 @@ Item { } function goToNextSlide() { - root._userNum = 0 - if (_faded) - return if (root.slides[currentSlide].delayPoints) { if (root.slides[currentSlide]._advance()) return; } if (currentSlide + 1 < root.slides.length) ++currentSlide; - else + else if (loopSlides) currentSlide = 0; // Loop at the end } function goToPreviousSlide() { - root._userNum = 0 - if (root._faded) - return if (currentSlide - 1 >= 0) --currentSlide; - } - - function goToUserSlide() { - --_userNum; - if (root._faded || _userNum >= root.slides.length) - return - if (_userNum < 0) - goToNextSlide() - else { - currentSlide = _userNum; - root.focus = true; - } - } - - // directly type in the slide number: depends on root having focus - Keys.onPressed: { - if (event.key >= Qt.Key_0 && event.key <= Qt.Key_9) - _userNum = 10 * _userNum + (event.key - Qt.Key_0) - else { - if (event.key == Qt.Key_Return || event.key == Qt.Key_Enter) - goToUserSlide(); - _userNum = 0; - } + else if (loopSlides) + currentSlide = root.slides.length - 1 } focus: true // Keep focus @@ -165,20 +143,10 @@ Item { // presentation-specific single-key shortcuts (which interfere with normal typing) Shortcut { sequence: " "; enabled: root.keyShortcutsEnabled; onActivated: goToNextSlide() } - Shortcut { sequence: "c"; enabled: root.keyShortcutsEnabled; onActivated: root._faded = !root._faded } // standard shortcuts Shortcut { sequence: StandardKey.MoveToNextPage; onActivated: goToNextSlide() } Shortcut { sequence: StandardKey.MoveToPreviousPage; onActivated: goToPreviousSlide() } - Shortcut { sequence: StandardKey.Quit; onActivated: Qt.quit() } - - Rectangle { - z: 1000 - color: "black" - anchors.fill: parent - opacity: root._faded ? 1 : 0 - Behavior on opacity { NumberAnimation { duration: 250 } } - } MouseArea { id: mouseArea diff --git a/src/qml/calamares/slideshow/Slide.qml b/src/qml/calamares/slideshow/Slide.qml index e033e3c17..6b32ddfbf 100644 --- a/src/qml/calamares/slideshow/Slide.qml +++ b/src/qml/calamares/slideshow/Slide.qml @@ -46,7 +46,7 @@ ****************************************************************************/ -import QtQuick 2.0 +import QtQuick 2.5 Item { /* diff --git a/src/qml/calamares/slideshow/SlideCounter.qml b/src/qml/calamares/slideshow/SlideCounter.qml new file mode 100644 index 000000000..e59476f5c --- /dev/null +++ b/src/qml/calamares/slideshow/SlideCounter.qml @@ -0,0 +1,38 @@ +/* === This file is part of Calamares - === + * + * Copyright 2018, Adriaan de Groot + * + * Calamares is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * Calamares is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Calamares. If not, see . + */ + +/* This control just shows a (non-translated) count of the slides + * in the slideshow in the format "n / total". + */ + +import QtQuick 2.5; + +Rectangle { + id: slideCounter + anchors.right: parent.right + anchors.bottom: parent.bottom + width: 100 + height: 50 + + Text { + id: slideCounterText + anchors.centerIn: parent + //: slide counter, %1 of %2 (numeric) + text: qsTr("%L1 / %L2").arg(parent.parent.currentSlide + 1).arg(parent.parent.slides.length) + } +} diff --git a/src/qml/calamares/slideshow/qmldir b/src/qml/calamares/slideshow/qmldir index 5a0c277b4..7b964b831 100644 --- a/src/qml/calamares/slideshow/qmldir +++ b/src/qml/calamares/slideshow/qmldir @@ -1,4 +1,10 @@ module calamares.slideshow + Presentation 1.0 Presentation.qml Slide 1.0 Slide.qml +NavButton 1.0 NavButton.qml +ForwardButton 1.0 ForwardButton.qml +BackButton 1.0 BackButton.qml + +SlideCounter 1.0 SlideCounter.qml