Merge branch 'master' of https://github.com/calamares/calamares into development

This commit is contained in:
Philip 2018-03-10 09:58:10 +01:00
commit 3a54f44886
166 changed files with 720 additions and 891 deletions

1
.gitignore vendored
View File

@ -21,6 +21,7 @@ __pycache__
*.pro.user
*.pro.user.*
*.moc
*.qmlc
moc_*.cpp
qrc_*.cpp
ui_*.h

View File

@ -1,43 +1,136 @@
# === This file is part of Calamares - <https://github.com/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 <http://www.gnu.org/licenses/>.
#
# 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( <name> [DIRECTORY <dir>] [SUBDIRECTORIES <dir> ...])
#
# 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 <dir> if given, otherwise the
# current source directory. The branding component is installed
# with the given <name>, 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 )
set( _CABT_DIRECTORY "." )
cmake_parse_arguments( _CABT "" "DIRECTORY" "SUBDIRECTORIES" ${ARGN} )
set( SUBDIRECTORY ${_CABT_DIRECTORY} )
set( _brand_dir ${_CABT_DIRECTORY} )
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" )
add_subdirectory( $SUBDIRECTORY )
message( "-- ${BoldYellow}Found ${CALAMARES_APPLICATION_NAME} branding component: ${BoldRed}${SUBDIRECTORY}${ColorReset}" )
set( BRANDING_DIR share/calamares/branding )
set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${NAME} )
elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" )
set( BRANDING_DIR share/calamares/branding )
set( BRANDING_COMPONENT_DESTINATION ${BRANDING_DIR}/${SUBDIRECTORY} )
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}/*" )
message(STATUS "${BRANDING_COMPONENT_FILES}")
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}${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( "" )
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( <name> [DIRECTORY <dir>])
#
# 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-<name>_<lang>.ts . Optionally
# the lang/ dir is found in the given <dir> instead of the current source
# directory.
function( calamares_add_branding_translations NAME )
set( _CABT_DIRECTORY "." )
cmake_parse_arguments( _CABT "" "DIRECTORY" "" ${ARGN} )
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()
# Usage calamares_add_branding_subdirectory( <dir> [SUBDIRECTORIES <dir> ...])
#
# Adds a branding component from a subdirectory:
# - if there is a CMakeLists.txt, use that
# - otherwise assume a "standard" setup with top-level files and a lang/ dir for translations
#
# If SUBDIRECTORIES are given, they are relative to <dir>, and are
# copied (one level deep) to the install location as well.
function( calamares_add_branding_subdirectory SUBDIRECTORY )
cmake_parse_arguments( _CABS "" "" "SUBDIRECTORIES" ${ARGN} )
if( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/CMakeLists.txt" )
add_subdirectory( ${SUBDIRECTORY} )
elseif( EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/branding.desc" )
calamares_add_branding( ${SUBDIRECTORY} DIRECTORY ${SUBDIRECTORY} SUBDIRECTORIES ${_CABS_SUBDIRECTORIES} )
if( IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}/lang" )
calamares_add_branding_translations( ${SUBDIRECTORY} 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()

View File

@ -1,3 +1,25 @@
# === This file is part of Calamares - <https://github.com/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 <http://www.gnu.org/licenses/>.
#
# 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

View File

@ -1,3 +1,26 @@
# === This file is part of Calamares - <https://github.com/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 <http://www.gnu.org/licenses/>.
#
# 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 )

View File

@ -1,3 +1,23 @@
# === This file is part of Calamares - <https://github.com/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 <http://www.gnu.org/licenses/>.
#
# 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

View File

@ -1,3 +1,25 @@
# === This file is part of Calamares - <https://github.com/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 <http://www.gnu.org/licenses/>.
#
# SPDX-License-Identifier: GPL-3.0+
# License-Filename: LICENSE
#
###
#
# This file has not yet been documented for use outside of Calamares itself.
include( CMakeParseArguments )
# Internal macro for adding the C++ / Qt translations to the

View File

@ -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")

View File

@ -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 )

View File

@ -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

View File

@ -1865,7 +1865,7 @@ Sortida:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="279"/>
<source>Bad parameters for process job call.</source>
<translation>Paràmetres incorrectes per a la crida del procés.</translation>
<translation>Paràmetres incorrectes per a la crida de la tasca del procés.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="282"/>

View File

@ -1244,7 +1244,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="162"/>
<source>Memory allocation error when setting &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>Fejl ved allokering af hukommelse ved sættelse af &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="166"/>
@ -1264,7 +1264,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="172"/>
<source>The password differs with case changes only</source>
<translation type="unfinished"/>
<translation>Adgangskoden har kun ændringer i store/små bogstaver</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="174"/>
@ -1279,7 +1279,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="178"/>
<source>The password contains words from the real name of the user in some form</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder i nogen form ord fra brugerens rigtige navn</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
@ -1319,12 +1319,12 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="195"/>
<source>The password contains less than %1 non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder færre end %1 ikke-alfanumeriske tegn</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
<source>The password contains too few non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder for ikke-alfanumeriske tegn</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="199"/>
@ -1354,32 +1354,32 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
<source>The password contains more than %1 same characters consecutively</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder flere end %1 af de samme tegn i træk</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
<source>The password contains too many same characters consecutively</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder for mange af de samme tegn i træk</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder flere end %1 tegn af den samme klasse i træk</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains too many characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder for mange tegn af den samme klasse i træk</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="217"/>
<source>The password contains monotonic sequence longer than %1 characters</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder monoton sekvens som er længere end %1 tegn</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="218"/>
<source>The password contains too long of a monotonic character sequence</source>
<translation type="unfinished"/>
<translation>Adgangskoden indeholder en monoton tegnsekvens som er for lang</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
@ -1394,17 +1394,17 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
<source>Password generation failed - required entropy too low for settings</source>
<translation type="unfinished"/>
<translation>Generering af adgangskode mislykkedes - krævede entropi er for lav til indstillinger</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="229"/>
<source>The password fails the dictionary check - %1</source>
<translation type="unfinished"/>
<translation>Adgangskoden bestod ikke ordbogstjekket - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
<source>The password fails the dictionary check</source>
<translation type="unfinished"/>
<translation>Adgangskoden bestod ikke ordbogstjekket</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
@ -1419,7 +1419,7 @@ Installationsprogrammet vil stoppe og alle ændringer vil gå tabt.</translation
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation>Dårlig heltalsværdi til indstilling - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>

View File

@ -1239,232 +1239,232 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.</translatio
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="155"/>
<source>Password is too weak</source>
<translation type="unfinished"/>
<translation>Lozinka je preslaba</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="162"/>
<source>Memory allocation error when setting &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>Pogreška u dodjeli memorije prilikom postavljanja &apos;%1&apos;</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="166"/>
<source>Memory allocation error</source>
<translation type="unfinished"/>
<translation>Pogreška u dodjeli memorije</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="168"/>
<source>The password is the same as the old one</source>
<translation type="unfinished"/>
<translation>Lozinka je ista prethodnoj</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="170"/>
<source>The password is a palindrome</source>
<translation type="unfinished"/>
<translation>Lozinka je palindrom</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="172"/>
<source>The password differs with case changes only</source>
<translation type="unfinished"/>
<translation>Lozinka se razlikuje samo u promjenama velikog i malog slova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="174"/>
<source>The password is too similar to the old one</source>
<translation type="unfinished"/>
<translation>Lozinka je slična prethodnoj</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
<source>The password contains the user name in some form</source>
<translation type="unfinished"/>
<translation>Lozinka u nekoj formi sadrži korisničko ime</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="178"/>
<source>The password contains words from the real name of the user in some form</source>
<translation type="unfinished"/>
<translation>Lozinka u nekoj formi sadrži stvarno ime korisnika</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
<source>The password contains forbidden words in some form</source>
<translation type="unfinished"/>
<translation>Lozinka u nekoj formi sadrži zabranjene rijeći</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="183"/>
<source>The password contains less than %1 digits</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži manje od %1 brojeva</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="184"/>
<source>The password contains too few digits</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži premalo brojeva</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="187"/>
<source>The password contains less than %1 uppercase letters</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži manje od %1 velikih slova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="188"/>
<source>The password contains too few uppercase letters</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži premalo velikih slova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="191"/>
<source>The password contains less than %1 lowercase letters</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži manje od %1 malih slova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
<source>The password contains too few lowercase letters</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži premalo malih slova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="195"/>
<source>The password contains less than %1 non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži manje od %1 ne-alfanumeričkih znakova.</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
<source>The password contains too few non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži premalo ne-alfanumeričkih znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="199"/>
<source>The password is shorter than %1 characters</source>
<translation type="unfinished"/>
<translation>Lozinka je kraća od %1 znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="200"/>
<source>The password is too short</source>
<translation type="unfinished"/>
<translation>Lozinka je prekratka</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
<source>The password is just rotated old one</source>
<translation type="unfinished"/>
<translation>Lozinka je jednaka rotiranoj prethodnoj</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
<source>The password contains less than %1 character classes</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži manje od %1 razreda znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="206"/>
<source>The password does not contain enough character classes</source>
<translation type="unfinished"/>
<translation>Lozinka ne sadrži dovoljno razreda znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
<source>The password contains more than %1 same characters consecutively</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži više od %1 uzastopnih znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
<source>The password contains too many same characters consecutively</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži previše uzastopnih znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži više od %1 uzastopnih znakova iz istog razreda</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains too many characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži previše uzastopnih znakova iz istog razreda</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="217"/>
<source>The password contains monotonic sequence longer than %1 characters</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži monotonu sekvencu dužu od %1 znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="218"/>
<source>The password contains too long of a monotonic character sequence</source>
<translation type="unfinished"/>
<translation>Lozinka sadrži previše monotonu sekvencu znakova</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
<source>No password supplied</source>
<translation type="unfinished"/>
<translation>Nema isporučene lozinke</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="222"/>
<source>Cannot obtain random numbers from the RNG device</source>
<translation type="unfinished"/>
<translation>Ne mogu dobiti slučajne brojeve od RNG uređaja</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
<source>Password generation failed - required entropy too low for settings</source>
<translation type="unfinished"/>
<translation>Generiranje lozinke nije uspjelo - potrebna entropija je premala za postavke</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="229"/>
<source>The password fails the dictionary check - %1</source>
<translation type="unfinished"/>
<translation>Nije uspjela provjera rječnika za lozinku - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
<source>The password fails the dictionary check</source>
<translation type="unfinished"/>
<translation>Nije uspjela provjera rječnika za lozinku</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
<source>Unknown setting - %1</source>
<translation type="unfinished"/>
<translation>Nepoznate postavke - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="239"/>
<source>Unknown setting</source>
<translation type="unfinished"/>
<translation>Nepoznate postavke</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation>Loša cjelobrojna vrijednost postavke - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>
<source>Bad integer value</source>
<translation type="unfinished"/>
<translation>Loša cjelobrojna vrijednost</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="251"/>
<source>Setting %1 is not of integer type</source>
<translation type="unfinished"/>
<translation>Postavka %1 nije cjelobrojnog tipa</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="255"/>
<source>Setting is not of integer type</source>
<translation type="unfinished"/>
<translation>Postavka nije cjelobrojnog tipa</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="259"/>
<source>Setting %1 is not of string type</source>
<translation type="unfinished"/>
<translation>Postavka %1 nije tipa znakovnog niza</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="263"/>
<source>Setting is not of string type</source>
<translation type="unfinished"/>
<translation>Postavka nije tipa znakovnog niza</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>
<source>Opening the configuration file failed</source>
<translation type="unfinished"/>
<translation>Nije uspjelo otvaranje konfiguracijske datoteke</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="267"/>
<source>The configuration file is malformed</source>
<translation type="unfinished"/>
<translation>Konfiguracijska datoteka je oštećena</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="269"/>
<source>Fatal failure</source>
<translation type="unfinished"/>
<translation>Fatalna pogreška</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="271"/>
<source>Unknown error</source>
<translation type="unfinished"/>
<translation>Nepoznata greška</translation>
</message>
</context>
<context>
@ -1825,7 +1825,8 @@ Instalacijski program će izaći i sve promjene će biti izgubljene.</translatio
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="263"/>
<source>
There was no output from the command.</source>
<translation type="unfinished"/>
<translation>
Nema izlazne informacije od naredbe.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="264"/>

View File

@ -486,7 +486,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/contextualprocess/ContextualProcessJob.cpp" line="75"/>
<source>Contextual Processes Job</source>
<translation type="unfinished"/>
<translation></translation>
</message>
</context>
<context>
@ -1370,7 +1370,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains too many characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="217"/>
@ -2326,7 +2326,7 @@ Output:
<message>
<location filename="../src/modules/shellprocess/ShellProcessJob.cpp" line="51"/>
<source>Shell Processes Job</source>
<translation type="unfinished"/>
<translation></translation>
</message>
</context>
<context>
@ -2441,17 +2441,17 @@ Output:
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="45"/>
<source>By selecting this you will send information about your installation and hardware. This information will &lt;b&gt;only be sent once&lt;/b&gt; after the installation finishes.</source>
<translation type="unfinished"/>
<translation> &lt;b&gt; &lt;/b&gt; </translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="46"/>
<source>By selecting this you will &lt;b&gt;periodically&lt;/b&gt; send information about your installation, hardware and applications, to %1.</source>
<translation type="unfinished"/>
<translation>%1 </translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingPage.cpp" line="47"/>
<source>By selecting this you will &lt;b&gt;regularly&lt;/b&gt; send information about your installation, hardware, applications and usage patterns, to %1.</source>
<translation type="unfinished"/>
<translation>%1 使</translation>
</message>
</context>
<context>

View File

@ -749,7 +749,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="114"/>
<source>This is a &lt;strong&gt;loop&lt;/strong&gt; device.&lt;br&gt;&lt;br&gt;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.</source>
<translation>Este é um dispositivo de &lt;strong&gt;loop&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;Este é um pseudo-dispositivo sem tabela de partições que faz um arquivo acessível como um dispositivo de bloco. Este tipo de configuração normalmente contém apenas um único sistema de arquivos.</translation>
<translation>Este é um dispositivo de &lt;strong&gt;loop&lt;/strong&gt;.&lt;br&gt;&lt;br&gt;Esse é um pseudo-dispositivo sem tabela de partições que faz um arquivo acessível como um dispositivo de bloco. Esse tipo de configuração normalmente contém apenas um único sistema de arquivos.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/DeviceInfoWidget.cpp" line="121"/>
@ -1261,12 +1261,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="170"/>
<source>The password is a palindrome</source>
<translation type="unfinished"/>
<translation>A senha é um palíndromo</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="172"/>
<source>The password differs with case changes only</source>
<translation type="unfinished"/>
<translation>A senha difere apenas com mudanças entre maiúsculas ou minúsculas</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="174"/>
@ -1276,12 +1276,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
<source>The password contains the user name in some form</source>
<translation type="unfinished"/>
<translation>A senha contém o nome de usuário em alguma forma</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="178"/>
<source>The password contains words from the real name of the user in some form</source>
<translation type="unfinished"/>
<translation>A senha contém palavras do nome real do usuário em alguma forma</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
@ -1291,27 +1291,27 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="183"/>
<source>The password contains less than %1 digits</source>
<translation type="unfinished"/>
<translation>A senha contém menos de %1 dígitos</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="184"/>
<source>The password contains too few digits</source>
<translation type="unfinished"/>
<translation>A senha contém poucos dígitos</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="187"/>
<source>The password contains less than %1 uppercase letters</source>
<translation type="unfinished"/>
<translation>A senha contém menos que %1 letras maiúsculas</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="188"/>
<source>The password contains too few uppercase letters</source>
<translation type="unfinished"/>
<translation>A senha contém poucas letras maiúsculas</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="191"/>
<source>The password contains less than %1 lowercase letters</source>
<translation type="unfinished"/>
<translation>A senha contém menos que %1 letras minúsculas</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
@ -1321,7 +1321,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="195"/>
<source>The password contains less than %1 non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>A senha contém menos que %1 caracteres não alfanuméricos</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
@ -1331,7 +1331,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="199"/>
<source>The password is shorter than %1 characters</source>
<translation type="unfinished"/>
<translation>A senha é menor que %1 caracteres</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="200"/>
@ -1341,22 +1341,22 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
<source>The password is just rotated old one</source>
<translation type="unfinished"/>
<translation>A senha é apenas uma antiga modificada</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
<source>The password contains less than %1 character classes</source>
<translation type="unfinished"/>
<translation>A senha contém menos de %1 tipos de caracteres</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="206"/>
<source>The password does not contain enough character classes</source>
<translation type="unfinished"/>
<translation>A senha não contém tipos suficientes de caracteres</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
<source>The password contains more than %1 same characters consecutively</source>
<translation type="unfinished"/>
<translation>A senha contém mais que %1 caracteres iguais consecutivamente</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
@ -1366,7 +1366,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>A senha contém mais que %1 caracteres do mesmo tipo consecutivamente</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
@ -1376,12 +1376,12 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="217"/>
<source>The password contains monotonic sequence longer than %1 characters</source>
<translation type="unfinished"/>
<translation>A senha contém uma sequência monotônica com mais de %1 caracteres</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="218"/>
<source>The password contains too long of a monotonic character sequence</source>
<translation type="unfinished"/>
<translation>A senha contém uma sequência de caracteres monotônicos muito longa</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
@ -1396,22 +1396,22 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
<source>Password generation failed - required entropy too low for settings</source>
<translation type="unfinished"/>
<translation>A geração de senha falhou - a entropia requerida é muito baixa para as configurações</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="229"/>
<source>The password fails the dictionary check - %1</source>
<translation type="unfinished"/>
<translation> A senha falhou na verificação do dicionário - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
<source>The password fails the dictionary check</source>
<translation type="unfinished"/>
<translation>A senha falhou na verificação do dicionário</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
<source>Unknown setting - %1</source>
<translation type="unfinished"/>
<translation>Configuração desconhecida - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="239"/>
@ -1421,17 +1421,17 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation>Valor de número inteiro errado na configuração - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>
<source>Bad integer value</source>
<translation type="unfinished"/>
<translation>Valor de número inteiro errado</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="251"/>
<source>Setting %1 is not of integer type</source>
<translation type="unfinished"/>
<translation>A configuração %1 não é do tipo inteiro</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="255"/>
@ -1441,7 +1441,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="259"/>
<source>Setting %1 is not of string type</source>
<translation type="unfinished"/>
<translation>A configuração %1 não é do tipo string</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="263"/>
@ -1456,7 +1456,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="267"/>
<source>The configuration file is malformed</source>
<translation type="unfinished"/>
<translation>O arquivo de configuração está defeituoso</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="269"/>
@ -1778,7 +1778,7 @@ A instalação pode continuar, mas alguns recursos podem ser desativados.</trans
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="449"/>
<source>A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.&lt;br/&gt;&lt;br/&gt;There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.&lt;br/&gt;You may continue if you wish, but filesystem unlocking will happen later during system startup.&lt;br/&gt;To encrypt the boot partition, go back and recreate it, selecting &lt;strong&gt;Encrypt&lt;/strong&gt; in the partition creation window.</source>
<translation>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.&lt;br/&gt;&lt;br/&gt; preocupações de segurança quanto a este tipo de configuração, porque arquivos de sistema importantes são mantidos em uma partição não criptografada.&lt;br/&gt;Você pode continuar se quiser, mas o desbloqueio do sistema de arquivos acontecerá mais tarde durante a inicialização do sistema.&lt;br/&gt;Para criptografar a partição de inicialização, volte e recrie-a, selecionando &lt;strong&gt;Criptografar&lt;/strong&gt; na janela de criação da partição.</translation>
<translation>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.&lt;br/&gt;&lt;br/&gt; 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.&lt;br/&gt;Você pode continuar se quiser, mas o desbloqueio do sistema de arquivos acontecerá mais tarde durante a inicialização do sistema.&lt;br/&gt;Para criptografar a partição de inicialização, volte e recrie-a, selecionando &lt;strong&gt;Criptografar&lt;/strong&gt; na janela de criação da partição.</translation>
</message>
</context>
<context>

View File

@ -472,7 +472,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="113"/>
<source>Could not run command.</source>
<translation type="unfinished"/>
<translation>Не удалось выполнить команду.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CommandList.cpp" line="114"/>
@ -1388,7 +1388,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="222"/>
<source>Cannot obtain random numbers from the RNG device</source>
<translation type="unfinished"/>
<translation>Не удаётся получить случайные числа с устройства RNG</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
@ -1398,12 +1398,12 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="229"/>
<source>The password fails the dictionary check - %1</source>
<translation type="unfinished"/>
<translation>Пароль не прошёл проверку на использование словарных слов - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
<source>The password fails the dictionary check</source>
<translation type="unfinished"/>
<translation>Пароль не прошёл проверку на использование словарных слов</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
@ -1448,7 +1448,7 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>
<source>Opening the configuration file failed</source>
<translation type="unfinished"/>
<translation>Не удалось открыть конфигурационный файл</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="267"/>
@ -1836,12 +1836,12 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="267"/>
<source>External command crashed.</source>
<translation type="unfinished"/>
<translation>Сбой внешней команды.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="268"/>
<source>Command &lt;i&gt;%1&lt;/i&gt; crashed.</source>
<translation type="unfinished"/>
<translation>Сбой команды &lt;i&gt;%1&lt;/i&gt;.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="273"/>
@ -1881,7 +1881,7 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="290"/>
<source>Command &lt;i&gt;%1&lt;/i&gt; finished with exit code %2.</source>
<translation type="unfinished"/>
<translation>Команда &lt;i&gt;%1&lt;/i&gt; завершилась с кодом %2.</translation>
</message>
</context>
<context>

View File

@ -1249,7 +1249,7 @@ Inštalátor sa ukončí a všetky zmeny budú stratené.</translation>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="166"/>
<source>Memory allocation error</source>
<translation type="unfinished"/>
<translation>Chyba počas vyhradzovania pamäte</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="168"/>
@ -1274,12 +1274,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené.</translation>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
<source>The password contains the user name in some form</source>
<translation type="unfinished"/>
<translation>Heslo obsahuje v nejakom tvare používateľské meno</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="178"/>
<source>The password contains words from the real name of the user in some form</source>
<translation type="unfinished"/>
<translation>Heslo obsahuje v nejakom tvare slová zo skutočného mena používateľa</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
@ -1384,12 +1384,12 @@ Inštalátor sa ukončí a všetky zmeny budú stratené.</translation>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
<source>No password supplied</source>
<translation type="unfinished"/>
<translation>Nebolo poskytnuté žiadne heslo</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="222"/>
<source>Cannot obtain random numbers from the RNG device</source>
<translation type="unfinished"/>
<translation>Nedajú sa získať náhodné čísla zo zariadenia RNG</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
@ -1409,42 +1409,42 @@ Inštalátor sa ukončí a všetky zmeny budú stratené.</translation>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
<source>Unknown setting - %1</source>
<translation type="unfinished"/>
<translation>Neznáme nastavenie - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="239"/>
<source>Unknown setting</source>
<translation type="unfinished"/>
<translation>Neznáme nastavenie</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation>Nesprávna celočíselná hodnota nastavenia - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>
<source>Bad integer value</source>
<translation type="unfinished"/>
<translation>Nesprávna celočíselná hodnota</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="251"/>
<source>Setting %1 is not of integer type</source>
<translation type="unfinished"/>
<translation>Nastavenie %1 nie je celé číslo</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="255"/>
<source>Setting is not of integer type</source>
<translation type="unfinished"/>
<translation>Nastavenie nie je celé číslo</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="259"/>
<source>Setting %1 is not of string type</source>
<translation type="unfinished"/>
<translation>Nastavenie %1 nie je reťazec</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="263"/>
<source>Setting is not of string type</source>
<translation type="unfinished"/>
<translation>Nastavenie nie je reťazec</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>

View File

@ -1241,232 +1241,232 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="155"/>
<source>Password is too weak</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="162"/>
<source>Memory allocation error when setting &apos;%1&apos;</source>
<translation type="unfinished"/>
<translation>%1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="166"/>
<source>Memory allocation error</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="168"/>
<source>The password is the same as the old one</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="170"/>
<source>The password is a palindrome</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="172"/>
<source>The password differs with case changes only</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="174"/>
<source>The password is too similar to the old one</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="176"/>
<source>The password contains the user name in some form</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="178"/>
<source>The password contains words from the real name of the user in some form</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="180"/>
<source>The password contains forbidden words in some form</source>
<translation type="unfinished"/>
<translation>使</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="183"/>
<source>The password contains less than %1 digits</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="184"/>
<source>The password contains too few digits</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="187"/>
<source>The password contains less than %1 uppercase letters</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="188"/>
<source>The password contains too few uppercase letters</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="191"/>
<source>The password contains less than %1 lowercase letters</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
<source>The password contains too few lowercase letters</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="195"/>
<source>The password contains less than %1 non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation> %1 /</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
<source>The password contains too few non-alphanumeric characters</source>
<translation type="unfinished"/>
<translation>/</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="199"/>
<source>The password is shorter than %1 characters</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="200"/>
<source>The password is too short</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
<source>The password is just rotated old one</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
<source>The password contains less than %1 character classes</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="206"/>
<source>The password does not contain enough character classes</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
<source>The password contains more than %1 same characters consecutively</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
<source>The password contains too many same characters consecutively</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains too many characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="217"/>
<source>The password contains monotonic sequence longer than %1 characters</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="218"/>
<source>The password contains too long of a monotonic character sequence</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/>
<source>No password supplied</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="222"/>
<source>Cannot obtain random numbers from the RNG device</source>
<translation type="unfinished"/>
<translation> (RNG) </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
<source>Password generation failed - required entropy too low for settings</source>
<translation type="unfinished"/>
<translation> - </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="229"/>
<source>The password fails the dictionary check - %1</source>
<translation type="unfinished"/>
<translation> - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="231"/>
<source>The password fails the dictionary check</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="235"/>
<source>Unknown setting - %1</source>
<translation type="unfinished"/>
<translation> - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="239"/>
<source>Unknown setting</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="243"/>
<source>Bad integer value of setting - %1</source>
<translation type="unfinished"/>
<translation> - %1</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>
<source>Bad integer value</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="251"/>
<source>Setting %1 is not of integer type</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="255"/>
<source>Setting is not of integer type</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="259"/>
<source>Setting %1 is not of string type</source>
<translation type="unfinished"/>
<translation> %1 </translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="263"/>
<source>Setting is not of string type</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/>
<source>Opening the configuration file failed</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="267"/>
<source>The configuration file is malformed</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="269"/>
<source>Fatal failure</source>
<translation type="unfinished"/>
<translation></translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="271"/>
<source>Unknown error</source>
<translation type="unfinished"/>
<translation></translation>
</message>
</context>
<context>
@ -1827,7 +1827,8 @@ The installer will quit and all changes will be lost.</source>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="263"/>
<source>
There was no output from the command.</source>
<translation type="unfinished"/>
<translation>
</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="264"/>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -10,7 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-07 18:58+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Kristján Magnússon, 2017\n"
"Last-Translator: Krissi, 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"

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -7,11 +7,33 @@ 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*
repository.
## 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-<component name>_<language>.qm`.
according to the scheme `calamares-<component name>_<language>.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 +42,92 @@ file) should be enclosed in this form for translations
text: qsTr("This is an example text.")
```
## Examples
## Presentation
There are two examples of branding content:
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:
- `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.
```
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.
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.
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
...
```
- 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.

View File

@ -24,6 +24,7 @@ Presentation
id: presentation
Timer {
id: advanceTimer
interval: 5000
running: false
repeat: true
@ -48,7 +49,7 @@ Presentation
"To create a Calamares presentation in QML, import calamares.slideshow,<br/>"+
"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 +61,6 @@ Presentation
Slide {
centeredText: "This is a third Slide element."
}
Component.onCompleted: advanceTimer.running = true
}

View File

@ -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]

View File

@ -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
}
}

View File

@ -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]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -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"

Binary file not shown.

Before

Width:  |  Height:  |  Size: 149 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.8 KiB

View File

@ -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);
}

View File

@ -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]

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 262 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -83,6 +83,8 @@ add_library( calamares SHARED ${libSources} ${kdsagSources} ${utilsSources} )
set_target_properties( calamares
PROPERTIES
AUTOMOC TRUE
VERSION ${CALAMARES_VERSION_SHORT}
SOVERSION ${CALAMARES_VERSION_SHORT}
)
target_link_libraries( calamares
@ -92,10 +94,18 @@ target_link_libraries( calamares
install( TARGETS calamares
EXPORT CalamaresLibraryDepends
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
# Make symlink lib/calamares/libcalamares.so to lib/libcalamares.so.VERSION so
# lib/calamares can be used as module path for the Python interpreter.
install( CODE "
file( MAKE_DIRECTORY \"\$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}/calamares\" )
execute_process( COMMAND \"${CMAKE_COMMAND}\" -E create_symlink ../libcalamares.so.${CALAMARES_VERSION_SHORT} libcalamares.so WORKING_DIRECTORY \"\$ENV{DESTDIR}/${CMAKE_INSTALL_FULL_LIBDIR}/calamares\" )
")
# Install header files
file( GLOB rootHeaders "*.h" )
file( GLOB kdsingleapplicationguardHeaders "kdsingleapplicationguard/*.h" )

View File

@ -184,7 +184,7 @@ Branding::Branding( const QString& brandingFilePath,
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() )

View File

@ -78,5 +78,5 @@ calamares_add_library( calamaresui
Qt5::QuickWidgets
RESOURCES libcalamaresui.qrc
EXPORT CalamaresLibraryDepends
NO_VERSION
VERSION ${CALAMARES_VERSION_SHORT}
)

View File

@ -37,12 +37,13 @@ struct ValueCheck : public QPair<QString, CalamaresUtils::CommandList*>
{
}
~ValueCheck()
{
// We don't own the commandlist, the binding holding this valuecheck
// does, so don't delete. This is closely tied to (temporaries created
// by) pass-by-value in QList::append().
}
// ~ValueCheck()
//
// There is no destructor.
//
// We don't own the commandlist, the binding holding this valuecheck
// does, so don't delete. This is closely tied to (temporaries created
// by) pass-by-value in QList::append().
QString value() const { return first; }
CalamaresUtils::CommandList* commands() const { return second; }

Some files were not shown because too many files have changed in this diff Show More