Merge branch 'calamares' of https://github.com/calamares/calamares into development
This commit is contained in:
commit
ed29278fd0
26
CHANGES
26
CHANGES
@ -7,20 +7,40 @@ contributors are listed. Note that Calamares does not have a historical
|
|||||||
changelog -- this log starts with version 3.2.0. The release notes on the
|
changelog -- this log starts with version 3.2.0. The release notes on the
|
||||||
website will have to do for older versions.
|
website will have to do for older versions.
|
||||||
|
|
||||||
# 3.2.39 (unreleased) #
|
# 3.2.40 (unreleased) #
|
||||||
|
|
||||||
|
This release contains contributions from (alphabetically by first name):
|
||||||
|
- No external contributors yet
|
||||||
|
|
||||||
|
## Core ##
|
||||||
|
- No core changes yet
|
||||||
|
|
||||||
|
## Modules ##
|
||||||
|
- No module changes yet
|
||||||
|
|
||||||
|
|
||||||
|
# 3.2.39 (2021-03-19) #
|
||||||
|
|
||||||
This release contains contributions from (alphabetically by first name):
|
This release contains contributions from (alphabetically by first name):
|
||||||
- Matti Hyttinen
|
- Matti Hyttinen
|
||||||
|
|
||||||
## Core ##
|
## Core ##
|
||||||
- No core changes yet
|
- A *packages* service has been added to the core, for use by
|
||||||
|
*netinstall* module and any others that need to set up
|
||||||
|
package information for the *packages* module.
|
||||||
|
|
||||||
## Modules ##
|
## Modules ##
|
||||||
- The *mount* module has gained a configurable setup for btrfs volumes.
|
- The *mount* module has gained a configurable setup for btrfs volumes.
|
||||||
If your distro has a default-to-btrfs setup, it can skip the hard-
|
If your distro has a default-to-btrfs setup, it can skip the hard-
|
||||||
coded setup (which Calamares has had for a long time with @home
|
coded setup (which Calamares has had for a long time with @home
|
||||||
and similar) and introduce a custom btrfs configuration through the
|
and similar) and introduce a custom btrfs configuration through the
|
||||||
`mount.conf` file.
|
`mount.conf` file. See issues #1659 and #1661 for warnings about
|
||||||
|
using this in production.
|
||||||
|
- *netinstall* now supports fallbacks for the groups data.
|
||||||
|
Instead of a single URL, multiple URLs may be specified in
|
||||||
|
a list and Calamares goes through them until one is successfully
|
||||||
|
retrieved. Older configurations with a single string are
|
||||||
|
treated like a one-item list. #1579
|
||||||
- The *usersq* module now connects to the internal configuration
|
- The *usersq* module now connects to the internal configuration
|
||||||
object and may be usable for regular installations.
|
object and may be usable for regular installations.
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@
|
|||||||
# TODO:3.3: Require CMake 3.12
|
# TODO:3.3: Require CMake 3.12
|
||||||
cmake_minimum_required( VERSION 3.3 FATAL_ERROR )
|
cmake_minimum_required( VERSION 3.3 FATAL_ERROR )
|
||||||
project( CALAMARES
|
project( CALAMARES
|
||||||
VERSION 3.2.39
|
VERSION 3.2.40
|
||||||
LANGUAGES C CXX
|
LANGUAGES C CXX
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -36,7 +36,12 @@ test -x "$AS" || { echo "! $AS is not executable."; exit 1 ; }
|
|||||||
test -x "$CF" || { echo "! $CF is not executable."; exit 1 ; }
|
test -x "$CF" || { echo "! $CF is not executable."; exit 1 ; }
|
||||||
|
|
||||||
unmangle_clang_format=""
|
unmangle_clang_format=""
|
||||||
if expr `"$CF" --version | tr -dc '[^.0-9]' | cut -d . -f 1` '<' 10 > /dev/null ; then
|
format_version=`"$CF" --version | tr -dc '[^.0-9]' | cut -d . -f 1`
|
||||||
|
if expr "$format_version" '<' 8 > /dev/null ; then
|
||||||
|
echo "! Clang-format version 8+ required"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if expr "$format_version" '<' 10 > /dev/null ; then
|
||||||
:
|
:
|
||||||
else
|
else
|
||||||
unmangle_clang_format=$( dirname $0 )/../.clang-format
|
unmangle_clang_format=$( dirname $0 )/../.clang-format
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
||||||
<source>Manage auto-mount settings</source>
|
<source>Manage auto-mount settings</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Gestió dels paràmetres dels muntatges automàtics</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -318,7 +318,11 @@
|
|||||||
%1
|
%1
|
||||||
|
|
||||||
Link copied to clipboard</source>
|
Link copied to clipboard</source>
|
||||||
<translation type="unfinished"/>
|
<translation>El registre d'instal·lació s'ha penjat a
|
||||||
|
|
||||||
|
%1
|
||||||
|
|
||||||
|
L'enllaç s'ha copiat al porta-retalls.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
||||||
@ -854,12 +858,12 @@ L'instal·lador es tancarà i tots els canvis es perdran.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
||||||
<source>The setup of %1 did not complete successfully.</source>
|
<source>The setup of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>La configuració de %1 no s'ha completat correctament.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
||||||
<source>The installation of %1 did not complete successfully.</source>
|
<source>The installation of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>La instal·lació de %1 no s'ha completat correctament.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
||||||
@ -973,12 +977,12 @@ L'instal·lador es tancarà i tots els canvis es perdran.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Crea una partició nova de %1 MiB a %3 (%2) amb entrades %4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2).</source>
|
<source>Create new %1MiB partition on %3 (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Crea una partició nova de %1 MiB a %3 (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
||||||
@ -988,12 +992,12 @@ L'instal·lador es tancarà i tots els canvis es perdran.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Crea una partició nova de <strong>%1 MiB</strong> a <strong>%3</strong> (%2) amb entrades <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Crea una partició nova de <strong>%1 MiB</strong> a <strong>%3</strong> (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
||||||
@ -1341,7 +1345,7 @@ L'instal·lador es tancarà i tots els canvis es perdran.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
||||||
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
||||||
<translation type="unfinished"/>
|
<translation>Instal·la %1 a la partició de sistema <strong>nova</strong> %2 amb funcions <em>%3</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
||||||
@ -1351,27 +1355,27 @@ L'instal·lador es tancarà i tots els canvis es perdran.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Estableix la partició <strong>nova</strong> %2 amb el punt de muntatge <strong>%1</strong> i funcions <em>%3</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Estableix la partició <strong>nova</strong> %2 amb el punt de muntatge <strong>%1</strong> %3.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
||||||
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Instal·la %2 a la partició de sistema %3 <strong>%1</strong> amb funcions <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Estableix la partició %3 <strong>%1</strong> amb el punt de muntatge <strong>%2</strong> i funcions <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Estableix la partició %3 <strong>%1</strong> amb el punt de muntatge <strong>%2</strong> %4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
||||||
@ -3961,29 +3965,31 @@ La configuració pot continuar, però algunes característiques podrien estar in
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
||||||
<source>Installation Completed</source>
|
<source>Installation Completed</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Instal·lació acabada</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
||||||
<source>%1 has been installed on your computer.<br/>
|
<source>%1 has been installed on your computer.<br/>
|
||||||
You may now restart into your new system, or continue using the Live environment.</source>
|
You may now restart into your new system, or continue using the Live environment.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 s'ha instal·lat a l'ordinador. <br/>
|
||||||
|
Ara podeu reiniciar-lo per tal d'accedir al sistema operatiu nou o bé continuar usant l'entorn autònom.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
||||||
<source>Close Installer</source>
|
<source>Close Installer</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Tanca l'instal·lador</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
||||||
<source>Restart System</source>
|
<source>Restart System</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Reinicia el sistema</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
||||||
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
||||||
This log is copied to /var/log/installation.log of the target system.</p></source>
|
This log is copied to /var/log/installation.log of the target system.</p></source>
|
||||||
<translation type="unfinished"/>
|
<translation><p>Hi ha disponible un registre complet de la instal·lació com a installation.log al directori de l’usuari autònom.<br/>
|
||||||
|
Aquest registre es copia a /var/log/installation.log del sistema de destinació.</p></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -102,22 +102,42 @@
|
|||||||
<translation>Interface:</translation>
|
<translation>Interface:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/calamares/DebugWindow.ui" line="97"/>
|
<location filename="../src/calamares/DebugWindow.ui" line="102"/>
|
||||||
<source>Tools</source>
|
<source>Crashes Calamares, so that Dr. Konqui can look at it.</source>
|
||||||
<translation>Tools</translation>
|
<translation type="unfinished"/>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/calamares/DebugWindow.ui" line="110"/>
|
<location filename="../src/calamares/DebugWindow.ui" line="115"/>
|
||||||
|
<source>Reloads the stylesheet from the branding directory.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/calamares/DebugWindow.ui" line="141"/>
|
||||||
|
<source>Uploads the session log to the configured pastebin.</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/calamares/DebugWindow.ui" line="144"/>
|
||||||
|
<source>Send Session Log</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/calamares/DebugWindow.ui" line="118"/>
|
||||||
<source>Reload Stylesheet</source>
|
<source>Reload Stylesheet</source>
|
||||||
<translation>Reload Stylesheet</translation>
|
<translation>Reload Stylesheet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/calamares/DebugWindow.ui" line="117"/>
|
<location filename="../src/calamares/DebugWindow.ui" line="128"/>
|
||||||
|
<source>Displays the tree of widget names in the log (for stylesheet debugging).</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/calamares/DebugWindow.ui" line="131"/>
|
||||||
<source>Widget Tree</source>
|
<source>Widget Tree</source>
|
||||||
<translation>Widget Tree</translation>
|
<translation>Widget Tree</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/calamares/DebugWindow.cpp" line="216"/>
|
<location filename="../src/calamares/DebugWindow.cpp" line="221"/>
|
||||||
<source>Debug information</source>
|
<source>Debug information</source>
|
||||||
<translation>Debug information</translation>
|
<translation>Debug information</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -286,13 +306,13 @@
|
|||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="178"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="178"/>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="537"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="518"/>
|
||||||
<source>&Yes</source>
|
<source>&Yes</source>
|
||||||
<translation>&Yes</translation>
|
<translation>&Yes</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="179"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="179"/>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="538"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="519"/>
|
||||||
<source>&No</source>
|
<source>&No</source>
|
||||||
<translation>&No</translation>
|
<translation>&No</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -302,17 +322,17 @@
|
|||||||
<translation>&Close</translation>
|
<translation>&Close</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="212"/>
|
<location filename="../src/libcalamaresui/utils/Paste.cpp" line="160"/>
|
||||||
<source>Install Log Paste URL</source>
|
<source>Install Log Paste URL</source>
|
||||||
<translation>Install Log Paste URL</translation>
|
<translation>Install Log Paste URL</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="197"/>
|
<location filename="../src/libcalamaresui/utils/Paste.cpp" line="142"/>
|
||||||
<source>The upload was unsuccessful. No web-paste was done.</source>
|
<source>The upload was unsuccessful. No web-paste was done.</source>
|
||||||
<translation>The upload was unsuccessful. No web-paste was done.</translation>
|
<translation>The upload was unsuccessful. No web-paste was done.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="208"/>
|
<location filename="../src/libcalamaresui/utils/Paste.cpp" line="154"/>
|
||||||
<source>Install log posted to
|
<source>Install log posted to
|
||||||
|
|
||||||
%1
|
%1
|
||||||
@ -325,124 +345,124 @@ Link copied to clipboard</source>
|
|||||||
Link copied to clipboard</translation>
|
Link copied to clipboard</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="205"/>
|
||||||
<source>Calamares Initialization Failed</source>
|
<source>Calamares Initialization Failed</source>
|
||||||
<translation>Calamares Initialization Failed</translation>
|
<translation>Calamares Initialization Failed</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="225"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="206"/>
|
||||||
<source>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</source>
|
<source>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</source>
|
||||||
<translation>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</translation>
|
<translation>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="231"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="212"/>
|
||||||
<source><br/>The following modules could not be loaded:</source>
|
<source><br/>The following modules could not be loaded:</source>
|
||||||
<translation><br/>The following modules could not be loaded:</translation>
|
<translation><br/>The following modules could not be loaded:</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="345"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="326"/>
|
||||||
<source>Continue with setup?</source>
|
<source>Continue with setup?</source>
|
||||||
<translation>Continue with setup?</translation>
|
<translation>Continue with setup?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="345"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="326"/>
|
||||||
<source>Continue with installation?</source>
|
<source>Continue with installation?</source>
|
||||||
<translation>Continue with installation?</translation>
|
<translation>Continue with installation?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="347"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="328"/>
|
||||||
<source>The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong></source>
|
<source>The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong></source>
|
||||||
<translation>The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong></translation>
|
<translation>The %1 setup program is about to make changes to your disk in order to set up %2.<br/><strong>You will not be able to undo these changes.</strong></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="350"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="331"/>
|
||||||
<source>The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong></source>
|
<source>The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong></source>
|
||||||
<translation>The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong></translation>
|
<translation>The %1 installer is about to make changes to your disk in order to install %2.<br/><strong>You will not be able to undo these changes.</strong></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="353"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="334"/>
|
||||||
<source>&Set up now</source>
|
<source>&Set up now</source>
|
||||||
<translation>&Set up now</translation>
|
<translation>&Set up now</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="353"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="334"/>
|
||||||
<source>&Install now</source>
|
<source>&Install now</source>
|
||||||
<translation>&Install now</translation>
|
<translation>&Install now</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="361"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="342"/>
|
||||||
<source>Go &back</source>
|
<source>Go &back</source>
|
||||||
<translation>Go &back</translation>
|
<translation>Go &back</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="411"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="392"/>
|
||||||
<source>&Set up</source>
|
<source>&Set up</source>
|
||||||
<translation>&Set up</translation>
|
<translation>&Set up</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="411"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="392"/>
|
||||||
<source>&Install</source>
|
<source>&Install</source>
|
||||||
<translation>&Install</translation>
|
<translation>&Install</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="413"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="394"/>
|
||||||
<source>Setup is complete. Close the setup program.</source>
|
<source>Setup is complete. Close the setup program.</source>
|
||||||
<translation>Setup is complete. Close the setup program.</translation>
|
<translation>Setup is complete. Close the setup program.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="414"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="395"/>
|
||||||
<source>The installation is complete. Close the installer.</source>
|
<source>The installation is complete. Close the installer.</source>
|
||||||
<translation>The installation is complete. Close the installer.</translation>
|
<translation>The installation is complete. Close the installer.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="416"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="397"/>
|
||||||
<source>Cancel setup without changing the system.</source>
|
<source>Cancel setup without changing the system.</source>
|
||||||
<translation>Cancel setup without changing the system.</translation>
|
<translation>Cancel setup without changing the system.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="417"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="398"/>
|
||||||
<source>Cancel installation without changing the system.</source>
|
<source>Cancel installation without changing the system.</source>
|
||||||
<translation>Cancel installation without changing the system.</translation>
|
<translation>Cancel installation without changing the system.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="427"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="408"/>
|
||||||
<source>&Next</source>
|
<source>&Next</source>
|
||||||
<translation>&Next</translation>
|
<translation>&Next</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="432"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="413"/>
|
||||||
<source>&Back</source>
|
<source>&Back</source>
|
||||||
<translation>&Back</translation>
|
<translation>&Back</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="438"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="419"/>
|
||||||
<source>&Done</source>
|
<source>&Done</source>
|
||||||
<translation>&Done</translation>
|
<translation>&Done</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="457"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="438"/>
|
||||||
<source>&Cancel</source>
|
<source>&Cancel</source>
|
||||||
<translation>&Cancel</translation>
|
<translation>&Cancel</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="530"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="511"/>
|
||||||
<source>Cancel setup?</source>
|
<source>Cancel setup?</source>
|
||||||
<translation>Cancel setup?</translation>
|
<translation>Cancel setup?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="530"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="511"/>
|
||||||
<source>Cancel installation?</source>
|
<source>Cancel installation?</source>
|
||||||
<translation>Cancel installation?</translation>
|
<translation>Cancel installation?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="531"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="512"/>
|
||||||
<source>Do you really want to cancel the current setup process?
|
<source>Do you really want to cancel the current setup process?
|
||||||
The setup program will quit and all changes will be lost.</source>
|
The setup program will quit and all changes will be lost.</source>
|
||||||
<translation>Do you really want to cancel the current setup process?
|
<translation>Do you really want to cancel the current setup process?
|
||||||
The setup program will quit and all changes will be lost.</translation>
|
The setup program will quit and all changes will be lost.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="533"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="514"/>
|
||||||
<source>Do you really want to cancel the current install process?
|
<source>Do you really want to cancel the current install process?
|
||||||
The installer will quit and all changes will be lost.</source>
|
The installer will quit and all changes will be lost.</source>
|
||||||
<translation>Do you really want to cancel the current install process?
|
<translation>Do you really want to cancel the current install process?
|
||||||
@ -475,12 +495,12 @@ The installer will quit and all changes will be lost.</translation>
|
|||||||
<context>
|
<context>
|
||||||
<name>CalamaresWindow</name>
|
<name>CalamaresWindow</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="367"/>
|
<location filename="../src/calamares/CalamaresWindow.cpp" line="368"/>
|
||||||
<source>%1 Setup Program</source>
|
<source>%1 Setup Program</source>
|
||||||
<translation>%1 Setup Program</translation>
|
<translation>%1 Setup Program</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/calamares/CalamaresWindow.cpp" line="368"/>
|
<location filename="../src/calamares/CalamaresWindow.cpp" line="369"/>
|
||||||
<source>%1 Installer</source>
|
<source>%1 Installer</source>
|
||||||
<translation>%1 Installer</translation>
|
<translation>%1 Installer</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -488,7 +508,7 @@ The installer will quit and all changes will be lost.</translation>
|
|||||||
<context>
|
<context>
|
||||||
<name>CheckerContainer</name>
|
<name>CheckerContainer</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/CheckerContainer.cpp" line="37"/>
|
<location filename="../src/modules/welcome/checker/CheckerContainer.cpp" line="38"/>
|
||||||
<source>Gathering system information...</source>
|
<source>Gathering system information...</source>
|
||||||
<translation>Gathering system information...</translation>
|
<translation>Gathering system information...</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -736,22 +756,32 @@ The installer will quit and all changes will be lost.</translation>
|
|||||||
<translation>The numbers and dates locale will be set to %1.</translation>
|
<translation>The numbers and dates locale will be set to %1.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/Config.cpp" line="38"/>
|
<location filename="../src/modules/netinstall/Config.cpp" line="53"/>
|
||||||
<source>Network Installation. (Disabled: Incorrect configuration)</source>
|
<source>Network Installation. (Disabled: Incorrect configuration)</source>
|
||||||
<translation>Network Installation. (Disabled: Incorrect configuration)</translation>
|
<translation>Network Installation. (Disabled: Incorrect configuration)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/Config.cpp" line="40"/>
|
<location filename="../src/modules/netinstall/Config.cpp" line="55"/>
|
||||||
<source>Network Installation. (Disabled: Received invalid groups data)</source>
|
<source>Network Installation. (Disabled: Received invalid groups data)</source>
|
||||||
<translation>Network Installation. (Disabled: Received invalid groups data)</translation>
|
<translation>Network Installation. (Disabled: Received invalid groups data)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/Config.cpp" line="42"/>
|
<location filename="../src/modules/netinstall/Config.cpp" line="57"/>
|
||||||
<source>Network Installation. (Disabled: internal error)</source>
|
<source>Network Installation. (Disabled: Internal error)</source>
|
||||||
<translation>Network Installation. (Disabled: internal error)</translation>
|
<translation type="unfinished"/>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/Config.cpp" line="44"/>
|
<location filename="../src/modules/netinstall/Config.cpp" line="61"/>
|
||||||
|
<source>Network Installation. (Disabled: No package list)</source>
|
||||||
|
<translation type="unfinished"/>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/modules/netinstall/Config.cpp" line="77"/>
|
||||||
|
<source>Package selection</source>
|
||||||
|
<translation type="unfinished">Package selection</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<location filename="../src/modules/netinstall/Config.cpp" line="59"/>
|
||||||
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
|
<source>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</source>
|
||||||
<translation>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</translation>
|
<translation>Network Installation. (Disabled: Unable to fetch package lists, check your network connection)</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -846,42 +876,42 @@ The installer will quit and all changes will be lost.</translation>
|
|||||||
<translation>Your passwords do not match!</translation>
|
<translation>Your passwords do not match!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="143"/>
|
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
||||||
<source>Setup Failed</source>
|
<source>Setup Failed</source>
|
||||||
<translation>Setup Failed</translation>
|
<translation>Setup Failed</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="143"/>
|
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
||||||
<source>Installation Failed</source>
|
<source>Installation Failed</source>
|
||||||
<translation>Installation Failed</translation>
|
<translation>Installation Failed</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
<location filename="../src/modules/finished/Config.cpp" line="147"/>
|
||||||
<source>The setup of %1 did not complete successfully.</source>
|
<source>The setup of %1 did not complete successfully.</source>
|
||||||
<translation>The setup of %1 did not complete successfully.</translation>
|
<translation>The setup of %1 did not complete successfully.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
<location filename="../src/modules/finished/Config.cpp" line="148"/>
|
||||||
<source>The installation of %1 did not complete successfully.</source>
|
<source>The installation of %1 did not complete successfully.</source>
|
||||||
<translation>The installation of %1 did not complete successfully.</translation>
|
<translation>The installation of %1 did not complete successfully.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
<location filename="../src/modules/finished/Config.cpp" line="152"/>
|
||||||
<source>Setup Complete</source>
|
<source>Setup Complete</source>
|
||||||
<translation>Setup Complete</translation>
|
<translation>Setup Complete</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="151"/>
|
<location filename="../src/modules/finished/Config.cpp" line="153"/>
|
||||||
<source>Installation Complete</source>
|
<source>Installation Complete</source>
|
||||||
<translation>Installation Complete</translation>
|
<translation>Installation Complete</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="152"/>
|
<location filename="../src/modules/finished/Config.cpp" line="154"/>
|
||||||
<source>The setup of %1 is complete.</source>
|
<source>The setup of %1 is complete.</source>
|
||||||
<translation>The setup of %1 is complete.</translation>
|
<translation>The setup of %1 is complete.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="153"/>
|
<location filename="../src/modules/finished/Config.cpp" line="155"/>
|
||||||
<source>The installation of %1 is complete.</source>
|
<source>The installation of %1 is complete.</source>
|
||||||
<translation>The installation of %1 is complete.</translation>
|
<translation>The installation of %1 is complete.</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1478,72 +1508,72 @@ The installer will quit and all changes will be lost.</translation>
|
|||||||
<context>
|
<context>
|
||||||
<name>GeneralRequirements</name>
|
<name>GeneralRequirements</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="149"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="155"/>
|
||||||
<source>has at least %1 GiB available drive space</source>
|
<source>has at least %1 GiB available drive space</source>
|
||||||
<translation>has at least %1 GiB available drive space</translation>
|
<translation>has at least %1 GiB available drive space</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="151"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="157"/>
|
||||||
<source>There is not enough drive space. At least %1 GiB is required.</source>
|
<source>There is not enough drive space. At least %1 GiB is required.</source>
|
||||||
<translation>There is not enough drive space. At least %1 GiB is required.</translation>
|
<translation>There is not enough drive space. At least %1 GiB is required.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="160"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="166"/>
|
||||||
<source>has at least %1 GiB working memory</source>
|
<source>has at least %1 GiB working memory</source>
|
||||||
<translation>has at least %1 GiB working memory</translation>
|
<translation>has at least %1 GiB working memory</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="162"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="168"/>
|
||||||
<source>The system does not have enough working memory. At least %1 GiB is required.</source>
|
<source>The system does not have enough working memory. At least %1 GiB is required.</source>
|
||||||
<translation>The system does not have enough working memory. At least %1 GiB is required.</translation>
|
<translation>The system does not have enough working memory. At least %1 GiB is required.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="171"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="177"/>
|
||||||
<source>is plugged in to a power source</source>
|
<source>is plugged in to a power source</source>
|
||||||
<translation>is plugged in to a power source</translation>
|
<translation>is plugged in to a power source</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="172"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="178"/>
|
||||||
<source>The system is not plugged in to a power source.</source>
|
<source>The system is not plugged in to a power source.</source>
|
||||||
<translation>The system is not plugged in to a power source.</translation>
|
<translation>The system is not plugged in to a power source.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="179"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="185"/>
|
||||||
<source>is connected to the Internet</source>
|
<source>is connected to the Internet</source>
|
||||||
<translation>is connected to the Internet</translation>
|
<translation>is connected to the Internet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="180"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="186"/>
|
||||||
<source>The system is not connected to the Internet.</source>
|
<source>The system is not connected to the Internet.</source>
|
||||||
<translation>The system is not connected to the Internet.</translation>
|
<translation>The system is not connected to the Internet.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="187"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="193"/>
|
||||||
<source>is running the installer as an administrator (root)</source>
|
<source>is running the installer as an administrator (root)</source>
|
||||||
<translation>is running the installer as an administrator (root)</translation>
|
<translation>is running the installer as an administrator (root)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="190"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="196"/>
|
||||||
<source>The setup program is not running with administrator rights.</source>
|
<source>The setup program is not running with administrator rights.</source>
|
||||||
<translation>The setup program is not running with administrator rights.</translation>
|
<translation>The setup program is not running with administrator rights.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="191"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="197"/>
|
||||||
<source>The installer is not running with administrator rights.</source>
|
<source>The installer is not running with administrator rights.</source>
|
||||||
<translation>The installer is not running with administrator rights.</translation>
|
<translation>The installer is not running with administrator rights.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="199"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="205"/>
|
||||||
<source>has a screen large enough to show the whole installer</source>
|
<source>has a screen large enough to show the whole installer</source>
|
||||||
<translation>has a screen large enough to show the whole installer</translation>
|
<translation>has a screen large enough to show the whole installer</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="202"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="208"/>
|
||||||
<source>The screen is too small to display the setup program.</source>
|
<source>The screen is too small to display the setup program.</source>
|
||||||
<translation>The screen is too small to display the setup program.</translation>
|
<translation>The screen is too small to display the setup program.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="203"/>
|
<location filename="../src/modules/welcome/checker/GeneralRequirements.cpp" line="209"/>
|
||||||
<source>The screen is too small to display the installer.</source>
|
<source>The screen is too small to display the installer.</source>
|
||||||
<translation>The screen is too small to display the installer.</translation>
|
<translation>The screen is too small to display the installer.</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1611,7 +1641,7 @@ The installer will quit and all changes will be lost.</translation>
|
|||||||
<translation>Please install KDE Konsole and try again!</translation>
|
<translation>Please install KDE Konsole and try again!</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="102"/>
|
<location filename="../src/modules/interactiveterminal/InteractiveTerminalPage.cpp" line="103"/>
|
||||||
<source>Executing script: &nbsp;<code>%1</code></source>
|
<source>Executing script: &nbsp;<code>%1</code></source>
|
||||||
<translation>Executing script: &nbsp;<code>%1</code></translation>
|
<translation>Executing script: &nbsp;<code>%1</code></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -1883,98 +1913,97 @@ The installer will quit and all changes will be lost.</translation>
|
|||||||
<context>
|
<context>
|
||||||
<name>NetInstallViewStep</name>
|
<name>NetInstallViewStep</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="47"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="49"/>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="54"/>
|
|
||||||
<source>Package selection</source>
|
<source>Package selection</source>
|
||||||
<translation>Package selection</translation>
|
<translation>Package selection</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="55"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="50"/>
|
||||||
<source>Office software</source>
|
<source>Office software</source>
|
||||||
<translation>Office software</translation>
|
<translation>Office software</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="56"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="51"/>
|
||||||
<source>Office package</source>
|
<source>Office package</source>
|
||||||
<translation>Office package</translation>
|
<translation>Office package</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="57"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="52"/>
|
||||||
<source>Browser software</source>
|
<source>Browser software</source>
|
||||||
<translation>Browser software</translation>
|
<translation>Browser software</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="58"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="53"/>
|
||||||
<source>Browser package</source>
|
<source>Browser package</source>
|
||||||
<translation>Browser package</translation>
|
<translation>Browser package</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="59"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="54"/>
|
||||||
<source>Web browser</source>
|
<source>Web browser</source>
|
||||||
<translation>Web browser</translation>
|
<translation>Web browser</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="60"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="55"/>
|
||||||
<source>Kernel</source>
|
<source>Kernel</source>
|
||||||
<translation>Kernel</translation>
|
<translation>Kernel</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="61"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="56"/>
|
||||||
<source>Services</source>
|
<source>Services</source>
|
||||||
<translation>Services</translation>
|
<translation>Services</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="62"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="57"/>
|
||||||
<source>Login</source>
|
<source>Login</source>
|
||||||
<translation>Login</translation>
|
<translation>Login</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="63"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="58"/>
|
||||||
<source>Desktop</source>
|
<source>Desktop</source>
|
||||||
<translation>Desktop</translation>
|
<translation>Desktop</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="64"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="59"/>
|
||||||
<source>Applications</source>
|
<source>Applications</source>
|
||||||
<translation>Applications</translation>
|
<translation>Applications</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="65"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="60"/>
|
||||||
<source>Communication</source>
|
<source>Communication</source>
|
||||||
<translation>Communication</translation>
|
<translation>Communication</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="66"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="61"/>
|
||||||
<source>Development</source>
|
<source>Development</source>
|
||||||
<translation>Development</translation>
|
<translation>Development</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="67"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="62"/>
|
||||||
<source>Office</source>
|
<source>Office</source>
|
||||||
<translation>Office</translation>
|
<translation>Office</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="68"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="63"/>
|
||||||
<source>Multimedia</source>
|
<source>Multimedia</source>
|
||||||
<translation>Multimedia</translation>
|
<translation>Multimedia</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="69"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="64"/>
|
||||||
<source>Internet</source>
|
<source>Internet</source>
|
||||||
<translation>Internet</translation>
|
<translation>Internet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="70"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="65"/>
|
||||||
<source>Theming</source>
|
<source>Theming</source>
|
||||||
<translation>Theming</translation>
|
<translation>Theming</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="71"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="66"/>
|
||||||
<source>Gaming</source>
|
<source>Gaming</source>
|
||||||
<translation>Gaming</translation>
|
<translation>Gaming</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="72"/>
|
<location filename="../src/modules/netinstall/NetInstallViewStep.cpp" line="67"/>
|
||||||
<source>Utilities</source>
|
<source>Utilities</source>
|
||||||
<translation>Utilities</translation>
|
<translation>Utilities</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -3708,12 +3737,12 @@ Output:
|
|||||||
<context>
|
<context>
|
||||||
<name>UsersPage</name>
|
<name>UsersPage</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/UsersPage.cpp" line="163"/>
|
<location filename="../src/modules/users/UsersPage.cpp" line="167"/>
|
||||||
<source><small>If more than one person will use this computer, you can create multiple accounts after setup.</small></source>
|
<source><small>If more than one person will use this computer, you can create multiple accounts after setup.</small></source>
|
||||||
<translation><small>If more than one person will use this computer, you can create multiple accounts after setup.</small></translation>
|
<translation><small>If more than one person will use this computer, you can create multiple accounts after setup.</small></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/users/UsersPage.cpp" line="169"/>
|
<location filename="../src/modules/users/UsersPage.cpp" line="173"/>
|
||||||
<source><small>If more than one person will use this computer, you can create multiple accounts after installation.</small></source>
|
<source><small>If more than one person will use this computer, you can create multiple accounts after installation.</small></source>
|
||||||
<translation><small>If more than one person will use this computer, you can create multiple accounts after installation.</small></translation>
|
<translation><small>If more than one person will use this computer, you can create multiple accounts after installation.</small></translation>
|
||||||
</message>
|
</message>
|
||||||
@ -3721,7 +3750,7 @@ Output:
|
|||||||
<context>
|
<context>
|
||||||
<name>UsersQmlViewStep</name>
|
<name>UsersQmlViewStep</name>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/UsersQmlViewStep.cpp" line="39"/>
|
<location filename="../src/modules/usersq/UsersQmlViewStep.cpp" line="35"/>
|
||||||
<source>Users</source>
|
<source>Users</source>
|
||||||
<translation>Users</translation>
|
<translation>Users</translation>
|
||||||
</message>
|
</message>
|
||||||
@ -4141,102 +4170,102 @@ Output:
|
|||||||
<translation>What is your name?</translation>
|
<translation>What is your name?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="59"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="60"/>
|
||||||
<source>Your Full Name</source>
|
<source>Your Full Name</source>
|
||||||
<translation>Your Full Name</translation>
|
<translation>Your Full Name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="80"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="82"/>
|
||||||
<source>What name do you want to use to log in?</source>
|
<source>What name do you want to use to log in?</source>
|
||||||
<translation>What name do you want to use to log in?</translation>
|
<translation>What name do you want to use to log in?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="87"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="90"/>
|
||||||
<source>Login Name</source>
|
<source>Login Name</source>
|
||||||
<translation>Login Name</translation>
|
<translation>Login Name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="103"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="106"/>
|
||||||
<source>If more than one person will use this computer, you can create multiple accounts after installation.</source>
|
<source>If more than one person will use this computer, you can create multiple accounts after installation.</source>
|
||||||
<translation>If more than one person will use this computer, you can create multiple accounts after installation.</translation>
|
<translation>If more than one person will use this computer, you can create multiple accounts after installation.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="118"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="121"/>
|
||||||
<source>What is the name of this computer?</source>
|
<source>What is the name of this computer?</source>
|
||||||
<translation>What is the name of this computer?</translation>
|
<translation>What is the name of this computer?</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="125"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="128"/>
|
||||||
<source>Computer Name</source>
|
<source>Computer Name</source>
|
||||||
<translation>Computer Name</translation>
|
<translation>Computer Name</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="140"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="144"/>
|
||||||
<source>This name will be used if you make the computer visible to others on a network.</source>
|
<source>This name will be used if you make the computer visible to others on a network.</source>
|
||||||
<translation>This name will be used if you make the computer visible to others on a network.</translation>
|
<translation>This name will be used if you make the computer visible to others on a network.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="155"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="159"/>
|
||||||
<source>Choose a password to keep your account safe.</source>
|
<source>Choose a password to keep your account safe.</source>
|
||||||
<translation>Choose a password to keep your account safe.</translation>
|
<translation>Choose a password to keep your account safe.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="166"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="170"/>
|
||||||
<source>Password</source>
|
<source>Password</source>
|
||||||
<translation>Password</translation>
|
<translation>Password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="185"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="191"/>
|
||||||
<source>Repeat Password</source>
|
<source>Repeat Password</source>
|
||||||
<translation>Repeat Password</translation>
|
<translation>Repeat Password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="204"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="212"/>
|
||||||
<source>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</source>
|
<source>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</source>
|
||||||
<translation>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</translation>
|
<translation>Enter the same password twice, so that it can be checked for typing errors. A good password will contain a mixture of letters, numbers and punctuation, should be at least eight characters long, and should be changed at regular intervals.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="216"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="223"/>
|
||||||
<source>Validate passwords quality</source>
|
<source>Validate passwords quality</source>
|
||||||
<translation>Validate passwords quality</translation>
|
<translation>Validate passwords quality</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="226"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="231"/>
|
||||||
<source>When this box is checked, password-strength checking is done and you will not be able to use a weak password.</source>
|
<source>When this box is checked, password-strength checking is done and you will not be able to use a weak password.</source>
|
||||||
<translation>When this box is checked, password-strength checking is done and you will not be able to use a weak password.</translation>
|
<translation>When this box is checked, password-strength checking is done and you will not be able to use a weak password.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="234"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="238"/>
|
||||||
<source>Log in automatically without asking for the password</source>
|
<source>Log in automatically without asking for the password</source>
|
||||||
<translation>Log in automatically without asking for the password</translation>
|
<translation>Log in automatically without asking for the password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="243"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="246"/>
|
||||||
<source>Reuse user password as root password</source>
|
<source>Reuse user password as root password</source>
|
||||||
<translation>Reuse user password as root password</translation>
|
<translation>Reuse user password as root password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="253"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="254"/>
|
||||||
<source>Use the same password for the administrator account.</source>
|
<source>Use the same password for the administrator account.</source>
|
||||||
<translation>Use the same password for the administrator account.</translation>
|
<translation>Use the same password for the administrator account.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="268"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="269"/>
|
||||||
<source>Choose a root password to keep your account safe.</source>
|
<source>Choose a root password to keep your account safe.</source>
|
||||||
<translation>Choose a root password to keep your account safe.</translation>
|
<translation>Choose a root password to keep your account safe.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="279"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="280"/>
|
||||||
<source>Root Password</source>
|
<source>Root Password</source>
|
||||||
<translation>Root Password</translation>
|
<translation>Root Password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="298"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="301"/>
|
||||||
<source>Repeat Root Password</source>
|
<source>Repeat Root Password</source>
|
||||||
<translation>Repeat Root Password</translation>
|
<translation>Repeat Root Password</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/usersq/usersq.qml" line="318"/>
|
<location filename="../src/modules/usersq/usersq.qml" line="323"/>
|
||||||
<source>Enter the same password twice, so that it can be checked for typing errors.</source>
|
<source>Enter the same password twice, so that it can be checked for typing errors.</source>
|
||||||
<translation>Enter the same password twice, so that it can be checked for typing errors.</translation>
|
<translation>Enter the same password twice, so that it can be checked for typing errors.</translation>
|
||||||
</message>
|
</message>
|
||||||
|
@ -304,12 +304,12 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="212"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="212"/>
|
||||||
<source>Install Log Paste URL</source>
|
<source>Install Log Paste URL</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Retadreso de la alglua servilo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="197"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="197"/>
|
||||||
<source>The upload was unsuccessful. No web-paste was done.</source>
|
<source>The upload was unsuccessful. No web-paste was done.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Alŝuto malsukcesinta. Neniu transpoŝigis al la reto.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="208"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="208"/>
|
||||||
@ -318,7 +318,11 @@
|
|||||||
%1
|
%1
|
||||||
|
|
||||||
Link copied to clipboard</source>
|
Link copied to clipboard</source>
|
||||||
<translation type="unfinished"/>
|
<translation>La protokolo de instalado estis enpoŝtita al:
|
||||||
|
|
||||||
|
%1
|
||||||
|
|
||||||
|
La retadreso estis copiita al vian tondujon.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
||||||
<source>Manage auto-mount settings</source>
|
<source>Manage auto-mount settings</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Hallitse 'auto-mount' asetuksia</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -318,7 +318,11 @@
|
|||||||
%1
|
%1
|
||||||
|
|
||||||
Link copied to clipboard</source>
|
Link copied to clipboard</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asennuksen loki on lähetetty
|
||||||
|
|
||||||
|
%1
|
||||||
|
|
||||||
|
Linkki kopioitu leikepöydälle</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
||||||
@ -855,12 +859,12 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</tra
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
||||||
<source>The setup of %1 did not complete successfully.</source>
|
<source>The setup of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Määrityksen %1 asennus ei onnistunut.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
||||||
<source>The installation of %1 did not complete successfully.</source>
|
<source>The installation of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asennus %1 ei onnistunut.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
||||||
@ -974,12 +978,12 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</tra
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Luo uusi %1MiB osio kohteeseen %3 (%2), jossa on %4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2).</source>
|
<source>Create new %1MiB partition on %3 (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Luo uusi %1MiB osio kohteeseen %3 (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
||||||
@ -989,12 +993,12 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</tra
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Luo uusi <strong>%1MiB</strong> osio kohteeseen <strong>%3</strong> (%2) jossa on <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Luo uusi <strong>%1MiB</strong> osio kohteeseen <strong>%3</strong> (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
||||||
@ -1342,7 +1346,7 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</tra
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
||||||
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asenna %1 <strong>uusi</strong> %2 järjestelmäosio ominaisuuksilla <em>%3</em></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
||||||
@ -1352,27 +1356,27 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</tra
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Määritä <strong>uusi</strong> %2 osio liitospisteellä <strong>%1</strong> ja ominaisuuksilla <em>%3</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Määritä <strong>uusi</strong> %2 osio liitospisteellä <strong>%1</strong>%3.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
||||||
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asenna %2 - %3 järjestelmäosio <strong>%1</strong> ominaisuuksilla <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Määritä %3 osio <strong>%1</strong> liitospisteellä <strong>%2</strong> ja ominaisuuksilla <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Määritä %3 osio <strong>%1</strong> liitospisteellä <strong>%2</strong>%4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
||||||
@ -3963,29 +3967,31 @@ Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</tra
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
||||||
<source>Installation Completed</source>
|
<source>Installation Completed</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Asennus suoritettu</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
||||||
<source>%1 has been installed on your computer.<br/>
|
<source>%1 has been installed on your computer.<br/>
|
||||||
You may now restart into your new system, or continue using the Live environment.</source>
|
You may now restart into your new system, or continue using the Live environment.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 on asennettu tietokoneellesi.<br/>
|
||||||
|
Voit käynnistää nyt uuden järjestelmän tai jatkaa Live-ympäristön käyttöä. </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
||||||
<source>Close Installer</source>
|
<source>Close Installer</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Sulje asennusohjelma</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
||||||
<source>Restart System</source>
|
<source>Restart System</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Käynnistä järjestelmä</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
||||||
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
||||||
This log is copied to /var/log/installation.log of the target system.</p></source>
|
This log is copied to /var/log/installation.log of the target system.</p></source>
|
||||||
<translation type="unfinished"/>
|
<translation><p>Täydellinen loki asennuksesta on saatavana nimellä install.log Live-käyttäjän kotihakemistossa.<br/>
|
||||||
|
Tämä loki on kopioitu /var/log/installation.log tiedostoon.</p></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
||||||
<source>Manage auto-mount settings</source>
|
<source>Manage auto-mount settings</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Tvarkyti automatinio prijungimo nustatymus</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -322,7 +322,11 @@
|
|||||||
%1
|
%1
|
||||||
|
|
||||||
Link copied to clipboard</source>
|
Link copied to clipboard</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Diegimo žurnalas paskelbtas į
|
||||||
|
|
||||||
|
%1
|
||||||
|
|
||||||
|
Nuoroda nukopijuota į iškarpinę</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
||||||
@ -858,12 +862,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
||||||
<source>The setup of %1 did not complete successfully.</source>
|
<source>The setup of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 sąranka nebuvo užbaigta sėkmingai.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
||||||
<source>The installation of %1 did not complete successfully.</source>
|
<source>The installation of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 nebuvo užbaigtas sėkmingai.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
||||||
@ -977,12 +981,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Sukurti naują %1MiB skaidinį ties %3 (%2) su įrašais %4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2).</source>
|
<source>Create new %1MiB partition on %3 (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Sukurti naują %1MiB skaidinį ties %3 (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
||||||
@ -992,12 +996,12 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Sukurti naują <strong>%1MiB</strong> skaidinį ties <strong>%3</strong> (%2) su įrašais <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Sukurti naują <strong>%1MiB</strong> skaidinį ties <strong>%3</strong> (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
||||||
@ -1345,7 +1349,7 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
||||||
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
||||||
<translation type="unfinished"/>
|
<translation>Įdiegti %1 <strong>naujame</strong> %2 sistemos skaidinyje su ypatybėmis <em>%3</em></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
||||||
@ -1355,27 +1359,27 @@ Diegimo programa užbaigs darbą ir visi pakeitimai bus prarasti.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Nustatyti <strong>naują</strong> %2 skaidinį su prijungimo tašku <strong>%1</strong> ir ypatybėmis <em>%3</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Nustatyti <strong>naują</strong> %2 skaidinį su prijungimo tašku <strong>%1</strong>%3.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
||||||
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Įdiegti %2 sistemą %3 sistemos skaidinyje <strong>%1</strong> su ypatybėmis <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Nustatyti %3 skaidinį <strong>%1</strong> su prijungimo tašku <strong>%2</strong> ir ypatybėmis <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Nustatyti %3 skaidinį <strong>%1</strong> su prijungimo tašku <strong>%2</strong>%4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
||||||
@ -3983,29 +3987,31 @@ Išvestis:
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
||||||
<source>Installation Completed</source>
|
<source>Installation Completed</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Diegimas užbaigtas</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
||||||
<source>%1 has been installed on your computer.<br/>
|
<source>%1 has been installed on your computer.<br/>
|
||||||
You may now restart into your new system, or continue using the Live environment.</source>
|
You may now restart into your new system, or continue using the Live environment.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 įdiegta jūsų kompiuteryje.<br/>
|
||||||
|
Galite iš naujo paleisti kompiuterį dabar ir naudotis savo naująja sistema; arba galite ir toliau naudotis demonstracine aplinka.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
||||||
<source>Close Installer</source>
|
<source>Close Installer</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Užverti diegimo programą</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
||||||
<source>Restart System</source>
|
<source>Restart System</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Paleisti sistemą iš naujo</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
||||||
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
||||||
This log is copied to /var/log/installation.log of the target system.</p></source>
|
This log is copied to /var/log/installation.log of the target system.</p></source>
|
||||||
<translation type="unfinished"/>
|
<translation><p>Pilnas diegimo žurnalas yra prieinamas kaip installation.log failas, esantis demonstracinio naudotojo namų kataloge.<br/>
|
||||||
|
Šis žurnalas yra nukopijuotas paskirties sistemoje į failą /var/log/installation.log.</p></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
||||||
<source>Manage auto-mount settings</source>
|
<source>Manage auto-mount settings</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Gerir definições de montagem automática</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -318,7 +318,11 @@
|
|||||||
%1
|
%1
|
||||||
|
|
||||||
Link copied to clipboard</source>
|
Link copied to clipboard</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Registo de instalação publicado em
|
||||||
|
|
||||||
|
%1
|
||||||
|
|
||||||
|
Ligação copiada para a área de transferência</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
||||||
@ -854,12 +858,12 @@ O instalador será encerrado e todas as alterações serão perdidas.</translati
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
||||||
<source>The setup of %1 did not complete successfully.</source>
|
<source>The setup of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>A configuração de %1 não foi concluída com sucesso.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
||||||
<source>The installation of %1 did not complete successfully.</source>
|
<source>The installation of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>A instalação de %1 não foi concluída com sucesso.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
||||||
@ -973,12 +977,12 @@ O instalador será encerrado e todas as alterações serão perdidas.</translati
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Criar nova partição de %1MiB em %3 (%2) com entradas %4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2).</source>
|
<source>Create new %1MiB partition on %3 (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Criar nova partição de %1MiB em %3 (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
||||||
@ -988,12 +992,12 @@ O instalador será encerrado e todas as alterações serão perdidas.</translati
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Criar nova partição de <strong>%1MiB</strong> em <strong>%3</strong> (%2) com entradas <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Criar nova partição de <strong>%1MiB</strong> em <strong>%3</strong> (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
||||||
@ -1341,7 +1345,7 @@ O instalador será encerrado e todas as alterações serão perdidas.</translati
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
||||||
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
||||||
<translation type="unfinished"/>
|
<translation>Instalar %1 na <strong>nova</strong> partição do sistema %2 com funcionalidades <em>%3</em></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
||||||
@ -1351,27 +1355,27 @@ O instalador será encerrado e todas as alterações serão perdidas.</translati
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Configurar <strong>nova</strong> partição %2 com ponto de montagem <strong>%1</strong> e funcionalidades <em>%3</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Configurar <strong>nova</strong> partição %2 com ponto de montagem <strong>%1</strong>%3.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
||||||
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Instalar %2 em %3 partição do sistema <strong>%1</strong> com funcionalidades <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Configurar %3 partição <strong>%1</strong> com ponto de montagem <strong>%2</strong> e funcionalidades <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Configurar %3 partição <strong>%1</strong> com ponto de montagem <strong>%2</strong>%4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
||||||
@ -3961,29 +3965,31 @@ Saída de Dados:
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
||||||
<source>Installation Completed</source>
|
<source>Installation Completed</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Instalação Concluída</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
||||||
<source>%1 has been installed on your computer.<br/>
|
<source>%1 has been installed on your computer.<br/>
|
||||||
You may now restart into your new system, or continue using the Live environment.</source>
|
You may now restart into your new system, or continue using the Live environment.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 foi instalado no seu computador.<br/>
|
||||||
|
Pode agora reiniciar no seu novo sistema, ou continuar a utilizar o ambiente Live.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
||||||
<source>Close Installer</source>
|
<source>Close Installer</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Fechar Instalador</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
||||||
<source>Restart System</source>
|
<source>Restart System</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Reiniciar Sistema</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
||||||
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
||||||
This log is copied to /var/log/installation.log of the target system.</p></source>
|
This log is copied to /var/log/installation.log of the target system.</p></source>
|
||||||
<translation type="unfinished"/>
|
<translation><p>Um registo completo da instalação está disponível como installation.log no diretório home do utilizador Live.<br/>
|
||||||
|
Este registo é copiado para /var/log/installation.log do sistema de destino.</p></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="146"/>
|
<location filename="../src/modules/partition/core/BootLoaderModel.cpp" line="146"/>
|
||||||
<source>%1 (%2)</source>
|
<source>%1 (%2)</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 (%2)</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -2888,7 +2888,7 @@ Output:
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamares/locale/Label.cpp" line="29"/>
|
<location filename="../src/libcalamares/locale/Label.cpp" line="29"/>
|
||||||
<source>%1 (%2)</source>
|
<source>%1 (%2)</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 (%2)</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamares/partition/FileSystem.cpp" line="28"/>
|
<location filename="../src/libcalamares/partition/FileSystem.cpp" line="28"/>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
<location filename="../src/modules/partition/jobs/AutoMountManagementJob.cpp" line="22"/>
|
||||||
<source>Manage auto-mount settings</source>
|
<source>Manage auto-mount settings</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Hantera inställningar för automatisk montering</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
@ -318,7 +318,11 @@
|
|||||||
%1
|
%1
|
||||||
|
|
||||||
Link copied to clipboard</source>
|
Link copied to clipboard</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Installationslogg postad till
|
||||||
|
|
||||||
|
%1
|
||||||
|
|
||||||
|
Länken kopierades till urklipp</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
<location filename="../src/libcalamaresui/ViewManager.cpp" line="224"/>
|
||||||
@ -853,12 +857,12 @@ Alla ändringar kommer att gå förlorade.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
<location filename="../src/modules/finished/Config.cpp" line="145"/>
|
||||||
<source>The setup of %1 did not complete successfully.</source>
|
<source>The setup of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Installationen av %1 slutfördes inte korrekt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
<location filename="../src/modules/finished/Config.cpp" line="146"/>
|
||||||
<source>The installation of %1 did not complete successfully.</source>
|
<source>The installation of %1 did not complete successfully.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Installationen av %1 slutfördes inte korrekt.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
<location filename="../src/modules/finished/Config.cpp" line="150"/>
|
||||||
@ -972,12 +976,12 @@ Alla ändringar kommer att gå förlorade.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="117"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
<source>Create new %1MiB partition on %3 (%2) with entries %4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa ny %1MiB partition på %3 (%2) med poster %4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="125"/>
|
||||||
<source>Create new %1MiB partition on %3 (%2).</source>
|
<source>Create new %1MiB partition on %3 (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa ny %1MiB partition på %3 (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="132"/>
|
||||||
@ -987,12 +991,12 @@ Alla ändringar kommer att gå förlorade.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="149"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2) with entries <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa ny <strong>%1MiB</strong> partition på <strong>%3</strong> (%2) med poster <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="157"/>
|
||||||
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
<source>Create new <strong>%1MiB</strong> partition on <strong>%3</strong> (%2).</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa ny <strong>%1MiB</strong> partition på <strong>%3</strong> (%2).</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="164"/>
|
||||||
@ -1340,7 +1344,7 @@ Alla ändringar kommer att gå förlorade.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="195"/>
|
||||||
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
<source>Install %1 on <strong>new</strong> %2 system partition with features <em>%3</em></source>
|
||||||
<translation type="unfinished"/>
|
<translation>Installera %1 på <strong>ny</strong> %2 system partition med funktioner <em>%3</em></translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="203"/>
|
||||||
@ -1350,27 +1354,27 @@ Alla ändringar kommer att gå förlorade.</translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="212"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong> and features <em>%3</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa <strong>ny</strong>%2 partition med monteringspunkt <strong>%1</strong> och funktioner <em>%3</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="220"/>
|
||||||
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
<source>Set up <strong>new</strong> %2 partition with mount point <strong>%1</strong>%3.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa <strong>ny</strong> %2 partition med monteringspunkt <strong>%1</strong>%3.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="234"/>
|
||||||
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
<source>Install %2 on %3 system partition <strong>%1</strong> with features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Installera %2 på %3 system partition <strong>%1</strong> med funktioner <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="253"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong> and features <em>%4</em>.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa %3 partition <strong>%1</strong>med monteringspunkt <strong>%2</strong>och funktioner <em>%4</em>.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="262"/>
|
||||||
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
<source>Set up %3 partition <strong>%1</strong> with mount point <strong>%2</strong>%4.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Skapa %3 partition <strong>%1</strong> med monteringspunkt <strong>%2</strong> %4.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="243"/>
|
||||||
@ -3961,29 +3965,31 @@ Installationen kan inte fortsätta.</p></translation>
|
|||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="36"/>
|
||||||
<source>Installation Completed</source>
|
<source>Installation Completed</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Installationen är klar</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="43"/>
|
||||||
<source>%1 has been installed on your computer.<br/>
|
<source>%1 has been installed on your computer.<br/>
|
||||||
You may now restart into your new system, or continue using the Live environment.</source>
|
You may now restart into your new system, or continue using the Live environment.</source>
|
||||||
<translation type="unfinished"/>
|
<translation>%1 har installerats på din dator. <br/>
|
||||||
|
Du kan nu starta om i ditt nya system eller fortsätta använda Live-miljön. </translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="65"/>
|
||||||
<source>Close Installer</source>
|
<source>Close Installer</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Stäng installationsprogrammet</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="71"/>
|
||||||
<source>Restart System</source>
|
<source>Restart System</source>
|
||||||
<translation type="unfinished"/>
|
<translation>Starta om System</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
<location filename="../src/modules/finishedq/finishedq.qml" line="89"/>
|
||||||
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
<source><p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
|
||||||
This log is copied to /var/log/installation.log of the target system.</p></source>
|
This log is copied to /var/log/installation.log of the target system.</p></source>
|
||||||
<translation type="unfinished"/>
|
<translation><p>En fullständig logg över installationen är tillgänglig som installation.log i hemkatalogen av Live användaren.<br/>
|
||||||
|
Denna logg är kopierad till /var/log/installation.log på målsystemet.</p></translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
169
lang/python.pot
169
lang/python.pot
@ -8,355 +8,340 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-03-14 16:14+0100\n"
|
"POT-Creation-Date: 2021-03-19 14:27+0100\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
"Language: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Language: \n"
|
|
||||||
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||||
|
|
||||||
#: src/modules/grubcfg/main.py:28
|
#: src/modules/grubcfg/main.py:28
|
||||||
msgid "Configure GRUB."
|
msgid "Configure GRUB."
|
||||||
msgstr "Configure GRUB."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/mount/main.py:30
|
#: src/modules/mount/main.py:30
|
||||||
msgid "Mounting partitions."
|
msgid "Mounting partitions."
|
||||||
msgstr "Mounting partitions."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/mount/main.py:145 src/modules/initcpiocfg/main.py:198
|
#: src/modules/mount/main.py:125 src/modules/initcpiocfg/main.py:198
|
||||||
#: src/modules/initcpiocfg/main.py:202
|
#: src/modules/initcpiocfg/main.py:202
|
||||||
#: src/modules/luksopenswaphookcfg/main.py:86
|
#: src/modules/luksopenswaphookcfg/main.py:86
|
||||||
#: src/modules/luksopenswaphookcfg/main.py:90 src/modules/rawfs/main.py:164
|
#: src/modules/luksopenswaphookcfg/main.py:90 src/modules/rawfs/main.py:164
|
||||||
#: src/modules/initramfscfg/main.py:85 src/modules/initramfscfg/main.py:89
|
#: src/modules/initramfscfg/main.py:85 src/modules/initramfscfg/main.py:89
|
||||||
#: src/modules/openrcdmcryptcfg/main.py:72
|
#: src/modules/openrcdmcryptcfg/main.py:72
|
||||||
#: src/modules/openrcdmcryptcfg/main.py:76 src/modules/fstab/main.py:373
|
#: src/modules/openrcdmcryptcfg/main.py:76 src/modules/fstab/main.py:355
|
||||||
#: src/modules/fstab/main.py:379 src/modules/localecfg/main.py:135
|
#: src/modules/fstab/main.py:361 src/modules/localecfg/main.py:135
|
||||||
#: src/modules/networkcfg/main.py:39
|
#: src/modules/networkcfg/main.py:39
|
||||||
msgid "Configuration Error"
|
msgid "Configuration Error"
|
||||||
msgstr "Configuration Error"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/mount/main.py:146 src/modules/initcpiocfg/main.py:199
|
#: src/modules/mount/main.py:126 src/modules/initcpiocfg/main.py:199
|
||||||
#: src/modules/luksopenswaphookcfg/main.py:87 src/modules/rawfs/main.py:165
|
#: src/modules/luksopenswaphookcfg/main.py:87 src/modules/rawfs/main.py:165
|
||||||
#: src/modules/initramfscfg/main.py:86 src/modules/openrcdmcryptcfg/main.py:73
|
#: src/modules/initramfscfg/main.py:86 src/modules/openrcdmcryptcfg/main.py:73
|
||||||
#: src/modules/fstab/main.py:374
|
#: src/modules/fstab/main.py:356
|
||||||
msgid "No partitions are defined for <pre>{!s}</pre> to use."
|
msgid "No partitions are defined for <pre>{!s}</pre> to use."
|
||||||
msgstr "No partitions are defined for <pre>{!s}</pre> to use."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:26
|
#: src/modules/services-systemd/main.py:26
|
||||||
msgid "Configure systemd services"
|
msgid "Configure systemd services"
|
||||||
msgstr "Configure systemd services"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:59
|
#: src/modules/services-systemd/main.py:59
|
||||||
#: src/modules/services-openrc/main.py:93
|
#: src/modules/services-openrc/main.py:93
|
||||||
msgid "Cannot modify service"
|
msgid "Cannot modify service"
|
||||||
msgstr "Cannot modify service"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:60
|
#: src/modules/services-systemd/main.py:60
|
||||||
msgid ""
|
msgid ""
|
||||||
"<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}."
|
"<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}."
|
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:63
|
#: src/modules/services-systemd/main.py:63
|
||||||
#: src/modules/services-systemd/main.py:67
|
#: src/modules/services-systemd/main.py:67
|
||||||
msgid "Cannot enable systemd service <code>{name!s}</code>."
|
msgid "Cannot enable systemd service <code>{name!s}</code>."
|
||||||
msgstr "Cannot enable systemd service <code>{name!s}</code>."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:65
|
#: src/modules/services-systemd/main.py:65
|
||||||
msgid "Cannot enable systemd target <code>{name!s}</code>."
|
msgid "Cannot enable systemd target <code>{name!s}</code>."
|
||||||
msgstr "Cannot enable systemd target <code>{name!s}</code>."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:69
|
#: src/modules/services-systemd/main.py:69
|
||||||
msgid "Cannot disable systemd target <code>{name!s}</code>."
|
msgid "Cannot disable systemd target <code>{name!s}</code>."
|
||||||
msgstr "Cannot disable systemd target <code>{name!s}</code>."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:71
|
#: src/modules/services-systemd/main.py:71
|
||||||
msgid "Cannot mask systemd unit <code>{name!s}</code>."
|
msgid "Cannot mask systemd unit <code>{name!s}</code>."
|
||||||
msgstr "Cannot mask systemd unit <code>{name!s}</code>."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-systemd/main.py:73
|
#: src/modules/services-systemd/main.py:73
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unknown systemd commands <code>{command!s}</code> and "
|
"Unknown systemd commands <code>{command!s}</code> and <code>{suffix!s}</"
|
||||||
"<code>{suffix!s}</code> for unit {name!s}."
|
"code> for unit {name!s}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Unknown systemd commands <code>{command!s}</code> and "
|
|
||||||
"<code>{suffix!s}</code> for unit {name!s}."
|
|
||||||
|
|
||||||
#: src/modules/umount/main.py:31
|
#: src/modules/umount/main.py:31
|
||||||
msgid "Unmount file systems."
|
msgid "Unmount file systems."
|
||||||
msgstr "Unmount file systems."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:35
|
#: src/modules/unpackfs/main.py:35
|
||||||
msgid "Filling up filesystems."
|
msgid "Filling up filesystems."
|
||||||
msgstr "Filling up filesystems."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:255
|
#: src/modules/unpackfs/main.py:255
|
||||||
msgid "rsync failed with error code {}."
|
msgid "rsync failed with error code {}."
|
||||||
msgstr "rsync failed with error code {}."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:300
|
#: src/modules/unpackfs/main.py:300
|
||||||
msgid "Unpacking image {}/{}, file {}/{}"
|
msgid "Unpacking image {}/{}, file {}/{}"
|
||||||
msgstr "Unpacking image {}/{}, file {}/{}"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:315
|
#: src/modules/unpackfs/main.py:315
|
||||||
msgid "Starting to unpack {}"
|
msgid "Starting to unpack {}"
|
||||||
msgstr "Starting to unpack {}"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:324 src/modules/unpackfs/main.py:464
|
#: src/modules/unpackfs/main.py:324 src/modules/unpackfs/main.py:464
|
||||||
msgid "Failed to unpack image \"{}\""
|
msgid "Failed to unpack image \"{}\""
|
||||||
msgstr "Failed to unpack image \"{}\""
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:431
|
#: src/modules/unpackfs/main.py:431
|
||||||
msgid "No mount point for root partition"
|
msgid "No mount point for root partition"
|
||||||
msgstr "No mount point for root partition"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:432
|
#: src/modules/unpackfs/main.py:432
|
||||||
msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing"
|
msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing"
|
||||||
msgstr "globalstorage does not contain a \"rootMountPoint\" key, doing nothing"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:437
|
#: src/modules/unpackfs/main.py:437
|
||||||
msgid "Bad mount point for root partition"
|
msgid "Bad mount point for root partition"
|
||||||
msgstr "Bad mount point for root partition"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:438
|
#: src/modules/unpackfs/main.py:438
|
||||||
msgid "rootMountPoint is \"{}\", which does not exist, doing nothing"
|
msgid "rootMountPoint is \"{}\", which does not exist, doing nothing"
|
||||||
msgstr "rootMountPoint is \"{}\", which does not exist, doing nothing"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:454 src/modules/unpackfs/main.py:458
|
#: src/modules/unpackfs/main.py:454 src/modules/unpackfs/main.py:458
|
||||||
#: src/modules/unpackfs/main.py:478
|
#: src/modules/unpackfs/main.py:478
|
||||||
msgid "Bad unsquash configuration"
|
msgid "Bad unsquash configuration"
|
||||||
msgstr "Bad unsquash configuration"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:455
|
#: src/modules/unpackfs/main.py:455
|
||||||
msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel"
|
msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel"
|
||||||
msgstr "The filesystem for \"{}\" ({}) is not supported by your current kernel"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:459
|
#: src/modules/unpackfs/main.py:459
|
||||||
msgid "The source filesystem \"{}\" does not exist"
|
msgid "The source filesystem \"{}\" does not exist"
|
||||||
msgstr "The source filesystem \"{}\" does not exist"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:465
|
#: src/modules/unpackfs/main.py:465
|
||||||
msgid ""
|
msgid ""
|
||||||
"Failed to find unsquashfs, make sure you have the squashfs-tools package "
|
"Failed to find unsquashfs, make sure you have the squashfs-tools package "
|
||||||
"installed"
|
"installed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Failed to find unsquashfs, make sure you have the squashfs-tools package "
|
|
||||||
"installed"
|
|
||||||
|
|
||||||
#: src/modules/unpackfs/main.py:479
|
#: src/modules/unpackfs/main.py:479
|
||||||
msgid "The destination \"{}\" in the target system is not a directory"
|
msgid "The destination \"{}\" in the target system is not a directory"
|
||||||
msgstr "The destination \"{}\" in the target system is not a directory"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:514
|
#: src/modules/displaymanager/main.py:514
|
||||||
msgid "Cannot write KDM configuration file"
|
msgid "Cannot write KDM configuration file"
|
||||||
msgstr "Cannot write KDM configuration file"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:515
|
#: src/modules/displaymanager/main.py:515
|
||||||
msgid "KDM config file {!s} does not exist"
|
msgid "KDM config file {!s} does not exist"
|
||||||
msgstr "KDM config file {!s} does not exist"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:576
|
#: src/modules/displaymanager/main.py:576
|
||||||
msgid "Cannot write LXDM configuration file"
|
msgid "Cannot write LXDM configuration file"
|
||||||
msgstr "Cannot write LXDM configuration file"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:577
|
#: src/modules/displaymanager/main.py:577
|
||||||
msgid "LXDM config file {!s} does not exist"
|
msgid "LXDM config file {!s} does not exist"
|
||||||
msgstr "LXDM config file {!s} does not exist"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:660
|
#: src/modules/displaymanager/main.py:660
|
||||||
msgid "Cannot write LightDM configuration file"
|
msgid "Cannot write LightDM configuration file"
|
||||||
msgstr "Cannot write LightDM configuration file"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:661
|
#: src/modules/displaymanager/main.py:661
|
||||||
msgid "LightDM config file {!s} does not exist"
|
msgid "LightDM config file {!s} does not exist"
|
||||||
msgstr "LightDM config file {!s} does not exist"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:735
|
#: src/modules/displaymanager/main.py:735
|
||||||
msgid "Cannot configure LightDM"
|
msgid "Cannot configure LightDM"
|
||||||
msgstr "Cannot configure LightDM"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:736
|
#: src/modules/displaymanager/main.py:736
|
||||||
msgid "No LightDM greeter installed."
|
msgid "No LightDM greeter installed."
|
||||||
msgstr "No LightDM greeter installed."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:767
|
#: src/modules/displaymanager/main.py:767
|
||||||
msgid "Cannot write SLIM configuration file"
|
msgid "Cannot write SLIM configuration file"
|
||||||
msgstr "Cannot write SLIM configuration file"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:768
|
#: src/modules/displaymanager/main.py:768
|
||||||
msgid "SLIM config file {!s} does not exist"
|
msgid "SLIM config file {!s} does not exist"
|
||||||
msgstr "SLIM config file {!s} does not exist"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:894
|
#: src/modules/displaymanager/main.py:894
|
||||||
msgid "No display managers selected for the displaymanager module."
|
msgid "No display managers selected for the displaymanager module."
|
||||||
msgstr "No display managers selected for the displaymanager module."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:895
|
#: src/modules/displaymanager/main.py:895
|
||||||
msgid ""
|
msgid ""
|
||||||
"The displaymanagers list is empty or undefined in both globalstorage and "
|
"The displaymanagers list is empty or undefined in both globalstorage and "
|
||||||
"displaymanager.conf."
|
"displaymanager.conf."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"The displaymanagers list is empty or undefined in both globalstorage and "
|
|
||||||
"displaymanager.conf."
|
|
||||||
|
|
||||||
#: src/modules/displaymanager/main.py:977
|
#: src/modules/displaymanager/main.py:977
|
||||||
msgid "Display manager configuration was incomplete"
|
msgid "Display manager configuration was incomplete"
|
||||||
msgstr "Display manager configuration was incomplete"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/initcpiocfg/main.py:28
|
#: src/modules/initcpiocfg/main.py:28
|
||||||
msgid "Configuring mkinitcpio."
|
msgid "Configuring mkinitcpio."
|
||||||
msgstr "Configuring mkinitcpio."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/initcpiocfg/main.py:203
|
#: src/modules/initcpiocfg/main.py:203
|
||||||
#: src/modules/luksopenswaphookcfg/main.py:91
|
#: src/modules/luksopenswaphookcfg/main.py:91
|
||||||
#: src/modules/initramfscfg/main.py:90 src/modules/openrcdmcryptcfg/main.py:77
|
#: src/modules/initramfscfg/main.py:90 src/modules/openrcdmcryptcfg/main.py:77
|
||||||
#: src/modules/fstab/main.py:380 src/modules/localecfg/main.py:136
|
#: src/modules/fstab/main.py:362 src/modules/localecfg/main.py:136
|
||||||
#: src/modules/networkcfg/main.py:40
|
#: src/modules/networkcfg/main.py:40
|
||||||
msgid "No root mount point is given for <pre>{!s}</pre> to use."
|
msgid "No root mount point is given for <pre>{!s}</pre> to use."
|
||||||
msgstr "No root mount point is given for <pre>{!s}</pre> to use."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/luksopenswaphookcfg/main.py:26
|
#: src/modules/luksopenswaphookcfg/main.py:26
|
||||||
msgid "Configuring encrypted swap."
|
msgid "Configuring encrypted swap."
|
||||||
msgstr "Configuring encrypted swap."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/rawfs/main.py:26
|
#: src/modules/rawfs/main.py:26
|
||||||
msgid "Installing data."
|
msgid "Installing data."
|
||||||
msgstr "Installing data."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:29
|
#: src/modules/services-openrc/main.py:29
|
||||||
msgid "Configure OpenRC services"
|
msgid "Configure OpenRC services"
|
||||||
msgstr "Configure OpenRC services"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:57
|
#: src/modules/services-openrc/main.py:57
|
||||||
msgid "Cannot add service {name!s} to run-level {level!s}."
|
msgid "Cannot add service {name!s} to run-level {level!s}."
|
||||||
msgstr "Cannot add service {name!s} to run-level {level!s}."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:59
|
#: src/modules/services-openrc/main.py:59
|
||||||
msgid "Cannot remove service {name!s} from run-level {level!s}."
|
msgid "Cannot remove service {name!s} from run-level {level!s}."
|
||||||
msgstr "Cannot remove service {name!s} from run-level {level!s}."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:61
|
#: src/modules/services-openrc/main.py:61
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unknown service-action <code>{arg!s}</code> for service {name!s} in run-"
|
"Unknown service-action <code>{arg!s}</code> for service {name!s} in run-"
|
||||||
"level {level!s}."
|
"level {level!s}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Unknown service-action <code>{arg!s}</code> for service {name!s} in run-"
|
|
||||||
"level {level!s}."
|
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:94
|
#: src/modules/services-openrc/main.py:94
|
||||||
msgid ""
|
msgid ""
|
||||||
"<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}."
|
"<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}."
|
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:101
|
#: src/modules/services-openrc/main.py:101
|
||||||
msgid "Target runlevel does not exist"
|
msgid "Target runlevel does not exist"
|
||||||
msgstr "Target runlevel does not exist"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:102
|
#: src/modules/services-openrc/main.py:102
|
||||||
msgid ""
|
msgid ""
|
||||||
"The path for runlevel {level!s} is <code>{path!s}</code>, which does not "
|
"The path for runlevel {level!s} is <code>{path!s}</code>, which does not "
|
||||||
"exist."
|
"exist."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"The path for runlevel {level!s} is <code>{path!s}</code>, which does not "
|
|
||||||
"exist."
|
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:110
|
#: src/modules/services-openrc/main.py:110
|
||||||
msgid "Target service does not exist"
|
msgid "Target service does not exist"
|
||||||
msgstr "Target service does not exist"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/services-openrc/main.py:111
|
#: src/modules/services-openrc/main.py:111
|
||||||
msgid ""
|
msgid ""
|
||||||
"The path for service {name!s} is <code>{path!s}</code>, which does not "
|
"The path for service {name!s} is <code>{path!s}</code>, which does not exist."
|
||||||
"exist."
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"The path for service {name!s} is <code>{path!s}</code>, which does not "
|
|
||||||
"exist."
|
|
||||||
|
|
||||||
#: src/modules/plymouthcfg/main.py:27
|
#: src/modules/plymouthcfg/main.py:27
|
||||||
msgid "Configure Plymouth theme"
|
msgid "Configure Plymouth theme"
|
||||||
msgstr "Configure Plymouth theme"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/packages/main.py:50 src/modules/packages/main.py:59
|
#: src/modules/packages/main.py:50 src/modules/packages/main.py:59
|
||||||
#: src/modules/packages/main.py:69
|
#: src/modules/packages/main.py:69
|
||||||
msgid "Install packages."
|
msgid "Install packages."
|
||||||
msgstr "Install packages."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/packages/main.py:57
|
#: src/modules/packages/main.py:57
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Processing packages (%(count)d / %(total)d)"
|
msgid "Processing packages (%(count)d / %(total)d)"
|
||||||
msgstr "Processing packages (%(count)d / %(total)d)"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/packages/main.py:62
|
#: src/modules/packages/main.py:62
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Installing one package."
|
msgid "Installing one package."
|
||||||
msgid_plural "Installing %(num)d packages."
|
msgid_plural "Installing %(num)d packages."
|
||||||
msgstr[0] "Installing one package."
|
msgstr[0] ""
|
||||||
msgstr[1] "Installing %(num)d packages."
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/modules/packages/main.py:65
|
#: src/modules/packages/main.py:65
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Removing one package."
|
msgid "Removing one package."
|
||||||
msgid_plural "Removing %(num)d packages."
|
msgid_plural "Removing %(num)d packages."
|
||||||
msgstr[0] "Removing one package."
|
msgstr[0] ""
|
||||||
msgstr[1] "Removing %(num)d packages."
|
msgstr[1] ""
|
||||||
|
|
||||||
#: src/modules/bootloader/main.py:43
|
#: src/modules/bootloader/main.py:43
|
||||||
msgid "Install bootloader."
|
msgid "Install bootloader."
|
||||||
msgstr "Install bootloader."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/hwclock/main.py:26
|
#: src/modules/hwclock/main.py:26
|
||||||
msgid "Setting hardware clock."
|
msgid "Setting hardware clock."
|
||||||
msgstr "Setting hardware clock."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/mkinitfs/main.py:27
|
#: src/modules/mkinitfs/main.py:27
|
||||||
msgid "Creating initramfs with mkinitfs."
|
msgid "Creating initramfs with mkinitfs."
|
||||||
msgstr "Creating initramfs with mkinitfs."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/mkinitfs/main.py:49
|
#: src/modules/mkinitfs/main.py:49
|
||||||
msgid "Failed to run mkinitfs on the target"
|
msgid "Failed to run mkinitfs on the target"
|
||||||
msgstr "Failed to run mkinitfs on the target"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50
|
#: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50
|
||||||
msgid "The exit code was {}"
|
msgid "The exit code was {}"
|
||||||
msgstr "The exit code was {}"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/dracut/main.py:27
|
#: src/modules/dracut/main.py:27
|
||||||
msgid "Creating initramfs with dracut."
|
msgid "Creating initramfs with dracut."
|
||||||
msgstr "Creating initramfs with dracut."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/dracut/main.py:49
|
#: src/modules/dracut/main.py:49
|
||||||
msgid "Failed to run dracut on the target"
|
msgid "Failed to run dracut on the target"
|
||||||
msgstr "Failed to run dracut on the target"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/initramfscfg/main.py:32
|
#: src/modules/initramfscfg/main.py:32
|
||||||
msgid "Configuring initramfs."
|
msgid "Configuring initramfs."
|
||||||
msgstr "Configuring initramfs."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/openrcdmcryptcfg/main.py:26
|
#: src/modules/openrcdmcryptcfg/main.py:26
|
||||||
msgid "Configuring OpenRC dmcrypt service."
|
msgid "Configuring OpenRC dmcrypt service."
|
||||||
msgstr "Configuring OpenRC dmcrypt service."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/fstab/main.py:29
|
#: src/modules/fstab/main.py:29
|
||||||
msgid "Writing fstab."
|
msgid "Writing fstab."
|
||||||
msgstr "Writing fstab."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/dummypython/main.py:35
|
#: src/modules/dummypython/main.py:35
|
||||||
msgid "Dummy python job."
|
msgid "Dummy python job."
|
||||||
msgstr "Dummy python job."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93
|
#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93
|
||||||
#: src/modules/dummypython/main.py:94
|
#: src/modules/dummypython/main.py:94
|
||||||
msgid "Dummy python step {}"
|
msgid "Dummy python step {}"
|
||||||
msgstr "Dummy python step {}"
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/localecfg/main.py:30
|
#: src/modules/localecfg/main.py:30
|
||||||
msgid "Configuring locales."
|
msgid "Configuring locales."
|
||||||
msgstr "Configuring locales."
|
msgstr ""
|
||||||
|
|
||||||
#: src/modules/networkcfg/main.py:28
|
#: src/modules/networkcfg/main.py:28
|
||||||
msgid "Saving network configuration."
|
msgid "Saving network configuration."
|
||||||
msgstr "Saving network configuration."
|
msgstr ""
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# xxmn77 <xxmn77@gmail.com>, 2020
|
# Xəyyam Qocayev <xxmn77@gmail.com>, 2020
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -13,7 +13,7 @@ msgstr ""
|
|||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-03-14 16:14+0100\n"
|
"POT-Creation-Date: 2021-03-14 16:14+0100\n"
|
||||||
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
||||||
"Last-Translator: xxmn77 <xxmn77@gmail.com>, 2020\n"
|
"Last-Translator: Xəyyam Qocayev <xxmn77@gmail.com>, 2020\n"
|
||||||
"Language-Team: Azerbaijani (https://www.transifex.com/calamares/teams/20061/az/)\n"
|
"Language-Team: Azerbaijani (https://www.transifex.com/calamares/teams/20061/az/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
#
|
#
|
||||||
# Translators:
|
# Translators:
|
||||||
# xxmn77 <xxmn77@gmail.com>, 2020
|
# Xəyyam Qocayev <xxmn77@gmail.com>, 2020
|
||||||
#
|
#
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid ""
|
msgid ""
|
||||||
@ -13,7 +13,7 @@ msgstr ""
|
|||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2021-03-14 16:14+0100\n"
|
"POT-Creation-Date: 2021-03-14 16:14+0100\n"
|
||||||
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
||||||
"Last-Translator: xxmn77 <xxmn77@gmail.com>, 2020\n"
|
"Last-Translator: Xəyyam Qocayev <xxmn77@gmail.com>, 2020\n"
|
||||||
"Language-Team: Azerbaijani (Azerbaijan) (https://www.transifex.com/calamares/teams/20061/az_AZ/)\n"
|
"Language-Team: Azerbaijani (Azerbaijan) (https://www.transifex.com/calamares/teams/20061/az_AZ/)\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
@ -134,9 +134,10 @@ getWidgetSidebar( Calamares::DebugWindowManager* debug,
|
|||||||
{
|
{
|
||||||
QPushButton* debugWindowBtn = new QPushButton;
|
QPushButton* debugWindowBtn = new QPushButton;
|
||||||
debugWindowBtn->setObjectName( "debugButton" );
|
debugWindowBtn->setObjectName( "debugButton" );
|
||||||
CALAMARES_RETRANSLATE_WIDGET( debugWindowBtn,
|
CALAMARES_RETRANSLATE_WIDGET(
|
||||||
debugWindowBtn->setText( QCoreApplication::translate(
|
debugWindowBtn,
|
||||||
CalamaresWindow::staticMetaObject.className(), "Show debug information" ) ); )
|
debugWindowBtn->setText( QCoreApplication::translate( CalamaresWindow::staticMetaObject.className(),
|
||||||
|
"Show debug information" ) ); );
|
||||||
sideLayout->addWidget( debugWindowBtn );
|
sideLayout->addWidget( debugWindowBtn );
|
||||||
debugWindowBtn->setFlat( true );
|
debugWindowBtn->setFlat( true );
|
||||||
debugWindowBtn->setCheckable( true );
|
debugWindowBtn->setCheckable( true );
|
||||||
@ -365,7 +366,7 @@ CalamaresWindow::CalamaresWindow( QWidget* parent )
|
|||||||
CALAMARES_RETRANSLATE( const auto* branding = Calamares::Branding::instance();
|
CALAMARES_RETRANSLATE( const auto* branding = Calamares::Branding::instance();
|
||||||
setWindowTitle( Calamares::Settings::instance()->isSetupMode()
|
setWindowTitle( Calamares::Settings::instance()->isSetupMode()
|
||||||
? tr( "%1 Setup Program" ).arg( branding->productName() )
|
? tr( "%1 Setup Program" ).arg( branding->productName() )
|
||||||
: tr( "%1 Installer" ).arg( branding->productName() ) ); )
|
: tr( "%1 Installer" ).arg( branding->productName() ) ); );
|
||||||
|
|
||||||
const Calamares::Branding* const branding = Calamares::Branding::instance();
|
const Calamares::Branding* const branding = Calamares::Branding::instance();
|
||||||
using ImageEntry = Calamares::Branding::ImageEntry;
|
using ImageEntry = Calamares::Branding::ImageEntry;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "modulesystem/Module.h"
|
#include "modulesystem/Module.h"
|
||||||
#include "modulesystem/ModuleManager.h"
|
#include "modulesystem/ModuleManager.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
|
#include "utils/Paste.h"
|
||||||
#include "utils/Retranslator.h"
|
#include "utils/Retranslator.h"
|
||||||
|
|
||||||
#ifdef WITH_PYTHONQT
|
#ifdef WITH_PYTHONQT
|
||||||
@ -213,7 +214,11 @@ DebugWindow::DebugWindow()
|
|||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); setWindowTitle( tr( "Debug information" ) ); )
|
// Send Log button only if it would be useful
|
||||||
|
m_ui->sendLogButton->setVisible( CalamaresUtils::Paste::isEnabled() );
|
||||||
|
connect( m_ui->sendLogButton, &QPushButton::clicked, [this]() { CalamaresUtils::Paste::doLogUploadUI( this ); } );
|
||||||
|
|
||||||
|
CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); setWindowTitle( tr( "Debug information" ) ); );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
<item>
|
<item>
|
||||||
<widget class="QTabWidget" name="tabWidget">
|
<widget class="QTabWidget" name="tabWidget">
|
||||||
<property name="currentIndex">
|
<property name="currentIndex">
|
||||||
<number>2</number>
|
<number>0</number>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QWidget" name="globalStorageTab">
|
<widget class="QWidget" name="globalStorageTab">
|
||||||
<attribute name="title">
|
<attribute name="title">
|
||||||
@ -92,48 +92,63 @@ SPDX-License-Identifier: GPL-3.0-or-later
|
|||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
<widget class="QWidget" name="toolsTab">
|
</widget>
|
||||||
<attribute name="title">
|
</item>
|
||||||
<string>Tools</string>
|
<item>
|
||||||
</attribute>
|
<layout class="QHBoxLayout" name="horizontalLayout_2">
|
||||||
<layout class="QVBoxLayout" name="verticalLayout_4">
|
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="crashButton">
|
<widget class="QPushButton" name="crashButton">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Crashes Calamares, so that Dr. Konqui can look at it.</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string notr="true">Crash now</string>
|
<string notr="true">Crash now</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="data-error"/>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="reloadStylesheetButton">
|
<widget class="QPushButton" name="reloadStylesheetButton">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Reloads the stylesheet from the branding directory.</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Reload Stylesheet</string>
|
<string>Reload Stylesheet</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="preferences-web-browser-stylesheets"/>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="widgetTreeButton">
|
<widget class="QPushButton" name="widgetTreeButton">
|
||||||
|
<property name="toolTip">
|
||||||
|
<string>Displays the tree of widget names in the log (for stylesheet debugging).</string>
|
||||||
|
</property>
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Widget Tree</string>
|
<string>Widget Tree</string>
|
||||||
</property>
|
</property>
|
||||||
|
<property name="icon">
|
||||||
|
<iconset theme="view-list-tree"/>
|
||||||
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<spacer name="verticalSpacer">
|
<widget class="QPushButton" name="sendLogButton">
|
||||||
<property name="orientation">
|
<property name="toolTip">
|
||||||
<enum>Qt::Vertical</enum>
|
<string>Uploads the session log to the configured pastebin.</string>
|
||||||
</property>
|
</property>
|
||||||
<property name="sizeHint" stdset="0">
|
<property name="text">
|
||||||
<size>
|
<string>Send Session Log</string>
|
||||||
<width>20</width>
|
|
||||||
<height>40</height>
|
|
||||||
</size>
|
|
||||||
</property>
|
</property>
|
||||||
</spacer>
|
<property name="icon">
|
||||||
|
<iconset theme="upload-media"/>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
|
||||||
</widget>
|
|
||||||
</item>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</widget>
|
</widget>
|
||||||
|
@ -59,6 +59,9 @@ set( libSources
|
|||||||
# Network service
|
# Network service
|
||||||
network/Manager.cpp
|
network/Manager.cpp
|
||||||
|
|
||||||
|
# Packages service
|
||||||
|
packages/Globals.cpp
|
||||||
|
|
||||||
# Partition service
|
# Partition service
|
||||||
partition/Mount.cpp
|
partition/Mount.cpp
|
||||||
partition/PartitionSize.cpp
|
partition/PartitionSize.cpp
|
||||||
@ -228,6 +231,12 @@ calamares_add_test(
|
|||||||
network/Tests.cpp
|
network/Tests.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
calamares_add_test(
|
||||||
|
libcalamarespackagestest
|
||||||
|
SOURCES
|
||||||
|
packages/Tests.cpp
|
||||||
|
)
|
||||||
|
|
||||||
calamares_add_test(
|
calamares_add_test(
|
||||||
libcalamarespartitiontest
|
libcalamarespartitiontest
|
||||||
SOURCES
|
SOURCES
|
||||||
|
@ -94,16 +94,25 @@ Config::ApplyPresets::apply( const char* fieldName )
|
|||||||
if ( !prop.isValid() )
|
if ( !prop.isValid() )
|
||||||
{
|
{
|
||||||
cWarning() << "Applying invalid property" << fieldName;
|
cWarning() << "Applying invalid property" << fieldName;
|
||||||
|
return *this;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
const QString key( fieldName );
|
const QString key( fieldName );
|
||||||
if ( !key.isEmpty() && m_c.d->m_presets->find( key ).isValid() )
|
if ( key.isEmpty() )
|
||||||
|
{
|
||||||
|
cWarning() << "Applying empty field";
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( m_c.d->m_presets->find( key ).isValid() )
|
||||||
{
|
{
|
||||||
cWarning() << "Applying duplicate property" << fieldName;
|
cWarning() << "Applying duplicate property" << fieldName;
|
||||||
|
return *this;
|
||||||
}
|
}
|
||||||
else if ( !key.isEmpty() && m_map.contains( key ) )
|
|
||||||
|
if ( m_map.contains( key ) )
|
||||||
{
|
{
|
||||||
|
// Key has an explicit setting
|
||||||
QVariantMap m = CalamaresUtils::getSubMap( m_map, key, m_bogus );
|
QVariantMap m = CalamaresUtils::getSubMap( m_map, key, m_bogus );
|
||||||
QVariant value = m[ "value" ];
|
QVariant value = m[ "value" ];
|
||||||
bool editable = CalamaresUtils::getBool( m, "editable", true );
|
bool editable = CalamaresUtils::getBool( m, "editable", true );
|
||||||
@ -114,6 +123,12 @@ Config::ApplyPresets::apply( const char* fieldName )
|
|||||||
}
|
}
|
||||||
m_c.d->m_presets->append( PresetField { key, value, editable } );
|
m_c.d->m_presets->append( PresetField { key, value, editable } );
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// There is no setting, but since we apply() this field,
|
||||||
|
// we do know about it; put in a preset so that looking
|
||||||
|
// it up won't complani.
|
||||||
|
m_c.d->m_presets->append( PresetField { key, QVariant(), true } );
|
||||||
}
|
}
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
@ -85,9 +85,9 @@ void
|
|||||||
RequirementsChecker::addCheckedRequirements( Module* m )
|
RequirementsChecker::addCheckedRequirements( Module* m )
|
||||||
{
|
{
|
||||||
RequirementsList l = m->checkRequirements();
|
RequirementsList l = m->checkRequirements();
|
||||||
cDebug() << "Got" << l.count() << "requirement results from" << m->name();
|
|
||||||
if ( l.count() > 0 )
|
if ( l.count() > 0 )
|
||||||
{
|
{
|
||||||
|
cDebug() << "Got" << l.count() << "requirement results from" << m->name();
|
||||||
m_model->addRequirementsList( l );
|
m_model->addRequirementsList( l );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
68
src/libcalamares/packages/Globals.cpp
Normal file
68
src/libcalamares/packages/Globals.cpp
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||||
|
*
|
||||||
|
* SPDX-FileCopyrightText: 2021 Adriaan de Groot <groot@kde.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*
|
||||||
|
* Calamares is Free Software: see the License-Identifier above.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Globals.h"
|
||||||
|
|
||||||
|
#include "GlobalStorage.h"
|
||||||
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
|
bool
|
||||||
|
CalamaresUtils::Packages::setGSPackageAdditions( Calamares::GlobalStorage* gs,
|
||||||
|
const Calamares::ModuleSystem::InstanceKey& module,
|
||||||
|
const QVariantList& installPackages,
|
||||||
|
const QVariantList& tryInstallPackages )
|
||||||
|
{
|
||||||
|
static const char PACKAGEOP[] = "packageOperations";
|
||||||
|
|
||||||
|
// Check if there's already a PACAKGEOP entry in GS, and if so we'll
|
||||||
|
// extend that one (overwriting the value in GS at the end of this method)
|
||||||
|
QVariantList packageOperations = gs->contains( PACKAGEOP ) ? gs->value( PACKAGEOP ).toList() : QVariantList();
|
||||||
|
cDebug() << "Existing package operations length" << packageOperations.length();
|
||||||
|
|
||||||
|
const QString key = module.toString();
|
||||||
|
|
||||||
|
// Clear out existing operations for this module, going backwards:
|
||||||
|
// Sometimes we remove an item, and we don't want the index to
|
||||||
|
// fall off the end of the list.
|
||||||
|
bool somethingRemoved = false;
|
||||||
|
for ( int index = packageOperations.length() - 1; 0 <= index; index-- )
|
||||||
|
{
|
||||||
|
const QVariantMap op = packageOperations.at( index ).toMap();
|
||||||
|
if ( op.contains( "source" ) && op.value( "source" ).toString() == key )
|
||||||
|
{
|
||||||
|
cDebug() << Logger::SubEntry << "Removing existing operations for" << key;
|
||||||
|
packageOperations.removeAt( index );
|
||||||
|
somethingRemoved = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( !installPackages.empty() )
|
||||||
|
{
|
||||||
|
QVariantMap op;
|
||||||
|
op.insert( "install", QVariant( installPackages ) );
|
||||||
|
op.insert( "source", key );
|
||||||
|
packageOperations.append( op );
|
||||||
|
cDebug() << Logger::SubEntry << installPackages.length() << "critical packages.";
|
||||||
|
}
|
||||||
|
if ( !tryInstallPackages.empty() )
|
||||||
|
{
|
||||||
|
QVariantMap op;
|
||||||
|
op.insert( "try_install", QVariant( tryInstallPackages ) );
|
||||||
|
op.insert( "source", key );
|
||||||
|
packageOperations.append( op );
|
||||||
|
cDebug() << Logger::SubEntry << tryInstallPackages.length() << "non-critical packages.";
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( somethingRemoved || !packageOperations.isEmpty() )
|
||||||
|
{
|
||||||
|
gs->insert( PACKAGEOP, packageOperations );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
36
src/libcalamares/packages/Globals.h
Normal file
36
src/libcalamares/packages/Globals.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||||
|
*
|
||||||
|
* SPDX-FileCopyrightText: 2021 Adriaan de Groot <groot@kde.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*
|
||||||
|
* Calamares is Free Software: see the License-Identifier above.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef LIBCALAMARES_PACKAGES_GLOBALS_H
|
||||||
|
#define LIBCALAMARES_PACKAGES_GLOBALS_H
|
||||||
|
|
||||||
|
#include "GlobalStorage.h"
|
||||||
|
#include "modulesystem/InstanceKey.h"
|
||||||
|
|
||||||
|
namespace CalamaresUtils
|
||||||
|
{
|
||||||
|
namespace Packages
|
||||||
|
{
|
||||||
|
/** @brief Sets the install-packages GS keys for the given module
|
||||||
|
*
|
||||||
|
* This replaces previously-set install-packages lists for the
|
||||||
|
* given module by the two new lists.
|
||||||
|
*
|
||||||
|
* Returns @c true if anything was changed, @c false otherwise.
|
||||||
|
*/
|
||||||
|
bool setGSPackageAdditions( Calamares::GlobalStorage* gs,
|
||||||
|
const Calamares::ModuleSystem::InstanceKey& module,
|
||||||
|
const QVariantList& installPackages,
|
||||||
|
const QVariantList& tryInstallPackages );
|
||||||
|
// void setGSPackageRemovals( const Calamares::ModuleSystem::InstanceKey& key, const QVariantList& removePackages );
|
||||||
|
} // namespace Packages
|
||||||
|
} // namespace CalamaresUtils
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
88
src/libcalamares/packages/Tests.cpp
Normal file
88
src/libcalamares/packages/Tests.cpp
Normal file
@ -0,0 +1,88 @@
|
|||||||
|
/* === This file is part of Calamares - <https://calamares.io> ===
|
||||||
|
*
|
||||||
|
* SPDX-FileCopyrightText: 2021 Adriaan de Groot <groot@kde.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*
|
||||||
|
* Calamares is Free Software: see the License-Identifier above.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "Globals.h"
|
||||||
|
|
||||||
|
#include "GlobalStorage.h"
|
||||||
|
#include "utils/Logger.h"
|
||||||
|
|
||||||
|
#include <QtTest/QtTest>
|
||||||
|
|
||||||
|
class PackagesTests : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
PackagesTests() {}
|
||||||
|
~PackagesTests() override {}
|
||||||
|
private Q_SLOTS:
|
||||||
|
void initTestCase();
|
||||||
|
|
||||||
|
void testEmpty();
|
||||||
|
void testAdd();
|
||||||
|
};
|
||||||
|
|
||||||
|
void
|
||||||
|
PackagesTests::initTestCase()
|
||||||
|
{
|
||||||
|
Logger::setupLogLevel( Logger::LOGDEBUG );
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PackagesTests::testEmpty()
|
||||||
|
{
|
||||||
|
Calamares::GlobalStorage gs;
|
||||||
|
const QString topKey( "packageOperations" );
|
||||||
|
Calamares::ModuleSystem::InstanceKey k( "this", "that" );
|
||||||
|
|
||||||
|
QVERIFY( !gs.contains( topKey ) );
|
||||||
|
QCOMPARE( k.toString(), "this@that" );
|
||||||
|
|
||||||
|
// Adding nothing at all does nothing
|
||||||
|
QVERIFY( !CalamaresUtils::Packages::setGSPackageAdditions( &gs, k, QVariantList(), QVariantList() ) );
|
||||||
|
QVERIFY( !gs.contains( topKey ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
PackagesTests::testAdd()
|
||||||
|
{
|
||||||
|
Calamares::GlobalStorage gs;
|
||||||
|
const QString topKey( "packageOperations" );
|
||||||
|
Calamares::ModuleSystem::InstanceKey k( "this", "that" );
|
||||||
|
|
||||||
|
QVERIFY( !gs.contains( topKey ) );
|
||||||
|
QVERIFY(
|
||||||
|
CalamaresUtils::Packages::setGSPackageAdditions( &gs, k, QVariantList { QString( "vim" ) }, QVariantList() ) );
|
||||||
|
QVERIFY( gs.contains( topKey ) );
|
||||||
|
auto actionList = gs.value( topKey ).toList();
|
||||||
|
QCOMPARE( actionList.length(), 1 );
|
||||||
|
auto action = actionList[ 0 ].toMap();
|
||||||
|
QVERIFY( action.contains( "install" ) );
|
||||||
|
auto op = action[ "install" ].toList();
|
||||||
|
QCOMPARE( op.length(), 1 );
|
||||||
|
cDebug() << op;
|
||||||
|
|
||||||
|
QVERIFY( CalamaresUtils::Packages::setGSPackageAdditions(
|
||||||
|
&gs, k, QVariantList { QString( "vim" ), QString( "emacs" ) }, QVariantList() ) );
|
||||||
|
QVERIFY( gs.contains( topKey ) );
|
||||||
|
actionList = gs.value( topKey ).toList();
|
||||||
|
QCOMPARE( actionList.length(), 1 );
|
||||||
|
action = actionList[ 0 ].toMap();
|
||||||
|
QVERIFY( action.contains( "install" ) );
|
||||||
|
op = action[ "install" ].toList();
|
||||||
|
QCOMPARE( op.length(), 2 );
|
||||||
|
QCOMPARE( action[ "source" ].toString(), k.toString() );
|
||||||
|
cDebug() << op;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
QTEST_GUILESS_MAIN( PackagesTests )
|
||||||
|
|
||||||
|
#include "utils/moc-warnings.h"
|
||||||
|
|
||||||
|
#include "Tests.moc"
|
@ -22,6 +22,8 @@
|
|||||||
|
|
||||||
namespace Logger
|
namespace Logger
|
||||||
{
|
{
|
||||||
|
class Once;
|
||||||
|
|
||||||
struct FuncSuppressor
|
struct FuncSuppressor
|
||||||
{
|
{
|
||||||
explicit constexpr FuncSuppressor( const char[] );
|
explicit constexpr FuncSuppressor( const char[] );
|
||||||
@ -57,7 +59,8 @@ public:
|
|||||||
explicit CDebug( unsigned int debugLevel = LOGDEBUG, const char* func = nullptr );
|
explicit CDebug( unsigned int debugLevel = LOGDEBUG, const char* func = nullptr );
|
||||||
virtual ~CDebug();
|
virtual ~CDebug();
|
||||||
|
|
||||||
friend QDebug& operator<<( CDebug&&, const FuncSuppressor& );
|
friend CDebug& operator<<( CDebug&&, const FuncSuppressor& );
|
||||||
|
friend CDebug& operator<<( CDebug&&, Once& );
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QString m_msg;
|
QString m_msg;
|
||||||
@ -65,11 +68,12 @@ private:
|
|||||||
const char* m_funcinfo = nullptr;
|
const char* m_funcinfo = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
inline QDebug&
|
inline CDebug&
|
||||||
operator<<( CDebug&& s, const FuncSuppressor& f )
|
operator<<( CDebug&& s, const FuncSuppressor& f )
|
||||||
{
|
{
|
||||||
s.m_funcinfo = nullptr;
|
s.m_funcinfo = nullptr;
|
||||||
return s << f.m_s;
|
s << f.m_s;
|
||||||
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QDebug&
|
inline QDebug&
|
||||||
@ -285,6 +289,33 @@ operator<<( QDebug& s, const Pointer& p )
|
|||||||
s << '@' << p.ptr << Quote;
|
s << '@' << p.ptr << Quote;
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class Once
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
Once()
|
||||||
|
: m( true )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
friend CDebug& operator<<( CDebug&&, Once& );
|
||||||
|
|
||||||
|
private:
|
||||||
|
bool m = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
inline CDebug&
|
||||||
|
operator<<( CDebug&& s, Once& o )
|
||||||
|
{
|
||||||
|
if ( o.m )
|
||||||
|
{
|
||||||
|
o.m = false;
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
s.m_funcinfo = nullptr;
|
||||||
|
s << SubEntry;
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Logger
|
} // namespace Logger
|
||||||
|
|
||||||
#define cDebug() Logger::CDebug( Logger::LOGDEBUG, Q_FUNC_INFO )
|
#define cDebug() Logger::CDebug( Logger::LOGDEBUG, Q_FUNC_INFO )
|
||||||
|
@ -91,15 +91,16 @@ private:
|
|||||||
|
|
||||||
} // namespace CalamaresUtils
|
} // namespace CalamaresUtils
|
||||||
|
|
||||||
#define CALAMARES_RETRANSLATE( body ) CalamaresUtils::Retranslator::attachRetranslator( this, [=] { body } );
|
#define CALAMARES_RETRANSLATE( body ) CalamaresUtils::Retranslator::attachRetranslator( this, [=] { body } )
|
||||||
#define CALAMARES_RETRANSLATE_WIDGET( widget, body ) \
|
#define CALAMARES_RETRANSLATE_WIDGET( widget, body ) \
|
||||||
CalamaresUtils::Retranslator::attachRetranslator( widget, [=] { body } );
|
CalamaresUtils::Retranslator::attachRetranslator( widget, [=] { body } )
|
||||||
#define CALAMARES_RETRANSLATE_SLOT( slotfunc ) \
|
#define CALAMARES_RETRANSLATE_SLOT( slotfunc ) \
|
||||||
|
do \
|
||||||
{ \
|
{ \
|
||||||
this->connect( CalamaresUtils::Retranslator::retranslatorFor( this ), \
|
this->connect( CalamaresUtils::Retranslator::retranslatorFor( this ), \
|
||||||
&CalamaresUtils::Retranslator::languageChange, \
|
&CalamaresUtils::Retranslator::languageChange, \
|
||||||
this, \
|
this, \
|
||||||
slotfunc ); \
|
slotfunc ); \
|
||||||
}
|
} while ( 0 )
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -81,7 +81,7 @@ ViewManager::ViewManager( QObject* parent )
|
|||||||
connect( JobQueue::instance(), &JobQueue::failed, this, &ViewManager::onInstallationFailed );
|
connect( JobQueue::instance(), &JobQueue::failed, this, &ViewManager::onInstallationFailed );
|
||||||
connect( JobQueue::instance(), &JobQueue::finished, this, &ViewManager::next );
|
connect( JobQueue::instance(), &JobQueue::finished, this, &ViewManager::next );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &ViewManager::updateButtonLabels )
|
CALAMARES_RETRANSLATE_SLOT( &ViewManager::updateButtonLabels );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -190,26 +190,7 @@ ViewManager::onInstallationFailed( const QString& message, const QString& detail
|
|||||||
connect( msgBox, &QMessageBox::buttonClicked, [msgBox]( QAbstractButton* button ) {
|
connect( msgBox, &QMessageBox::buttonClicked, [msgBox]( QAbstractButton* button ) {
|
||||||
if ( msgBox->buttonRole( button ) == QMessageBox::ButtonRole::YesRole )
|
if ( msgBox->buttonRole( button ) == QMessageBox::ButtonRole::YesRole )
|
||||||
{
|
{
|
||||||
QString pasteUrl = CalamaresUtils::Paste::doLogUpload( msgBox );
|
CalamaresUtils::Paste::doLogUploadUI( msgBox );
|
||||||
QString pasteUrlMessage;
|
|
||||||
if ( pasteUrl.isEmpty() )
|
|
||||||
{
|
|
||||||
pasteUrlMessage = tr( "The upload was unsuccessful. No web-paste was done." );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
QClipboard* clipboard = QApplication::clipboard();
|
|
||||||
clipboard->setText( pasteUrl, QClipboard::Clipboard );
|
|
||||||
|
|
||||||
if ( clipboard->supportsSelection() )
|
|
||||||
{
|
|
||||||
clipboard->setText( pasteUrl, QClipboard::Selection );
|
|
||||||
}
|
|
||||||
QString pasteUrlFmt = tr( "Install log posted to\n\n%1\n\nLink copied to clipboard" );
|
|
||||||
pasteUrlMessage = pasteUrlFmt.arg( pasteUrl );
|
|
||||||
}
|
|
||||||
|
|
||||||
QMessageBox::critical( nullptr, tr( "Install Log Paste URL" ), pasteUrlMessage );
|
|
||||||
}
|
}
|
||||||
QApplication::quit();
|
QApplication::quit();
|
||||||
} );
|
} );
|
||||||
|
@ -61,7 +61,6 @@ ModuleManager::init()
|
|||||||
QTimer::singleShot( 0, this, &ModuleManager::doInit );
|
QTimer::singleShot( 0, this, &ModuleManager::doInit );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
ModuleManager::doInit()
|
ModuleManager::doInit()
|
||||||
{
|
{
|
||||||
@ -72,6 +71,7 @@ ModuleManager::doInit()
|
|||||||
// the module name, and must contain a settings file named module.desc.
|
// the module name, and must contain a settings file named module.desc.
|
||||||
// If at any time the module loading procedure finds something unexpected, it
|
// If at any time the module loading procedure finds something unexpected, it
|
||||||
// silently skips to the next module or search path. --Teo 6/2014
|
// silently skips to the next module or search path. --Teo 6/2014
|
||||||
|
Logger::Once deb;
|
||||||
for ( const QString& path : m_paths )
|
for ( const QString& path : m_paths )
|
||||||
{
|
{
|
||||||
QDir currentDir( path );
|
QDir currentDir( path );
|
||||||
@ -88,12 +88,12 @@ ModuleManager::doInit()
|
|||||||
QFileInfo descriptorFileInfo( currentDir.absoluteFilePath( QLatin1String( "module.desc" ) ) );
|
QFileInfo descriptorFileInfo( currentDir.absoluteFilePath( QLatin1String( "module.desc" ) ) );
|
||||||
if ( !descriptorFileInfo.exists() )
|
if ( !descriptorFileInfo.exists() )
|
||||||
{
|
{
|
||||||
cDebug() << bad_descriptor << descriptorFileInfo.absoluteFilePath() << "(missing)";
|
cDebug() << deb << bad_descriptor << descriptorFileInfo.absoluteFilePath() << "(missing)";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ( !descriptorFileInfo.isReadable() )
|
if ( !descriptorFileInfo.isReadable() )
|
||||||
{
|
{
|
||||||
cDebug() << bad_descriptor << descriptorFileInfo.absoluteFilePath() << "(unreadable)";
|
cDebug() << deb << bad_descriptor << descriptorFileInfo.absoluteFilePath() << "(unreadable)";
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,12 +118,12 @@ ModuleManager::doInit()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cDebug() << "ModuleManager module search path does not exist:" << path;
|
cDebug() << deb << "ModuleManager module search path does not exist:" << path;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// At this point m_availableDescriptorsByModuleName is filled with
|
// At this point m_availableDescriptorsByModuleName is filled with
|
||||||
// the modules that were found in the search paths.
|
// the modules that were found in the search paths.
|
||||||
cDebug() << "Found" << m_availableDescriptorsByModuleName.count() << "modules";
|
cDebug() << deb << "Found" << m_availableDescriptorsByModuleName.count() << "modules";
|
||||||
QTimer::singleShot( 10, this, &ModuleManager::initDone );
|
QTimer::singleShot( 10, this, &ModuleManager::initDone );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,10 +14,14 @@
|
|||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
#include "utils/Units.h"
|
#include "utils/Units.h"
|
||||||
|
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QClipboard>
|
||||||
#include <QFile>
|
#include <QFile>
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
|
#include <QMessageBox>
|
||||||
#include <QTcpSocket>
|
#include <QTcpSocket>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
|
#include <QWidget>
|
||||||
|
|
||||||
using namespace CalamaresUtils::Units;
|
using namespace CalamaresUtils::Units;
|
||||||
|
|
||||||
@ -126,3 +130,41 @@ CalamaresUtils::Paste::doLogUpload( QObject* parent )
|
|||||||
}
|
}
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString
|
||||||
|
CalamaresUtils::Paste::doLogUploadUI( QWidget* parent )
|
||||||
|
{
|
||||||
|
// These strings originated in the ViewManager class
|
||||||
|
QString pasteUrl = CalamaresUtils::Paste::doLogUpload( parent );
|
||||||
|
QString pasteUrlMessage;
|
||||||
|
if ( pasteUrl.isEmpty() )
|
||||||
|
{
|
||||||
|
pasteUrlMessage = QCoreApplication::translate( "Calamares::ViewManager",
|
||||||
|
"The upload was unsuccessful. No web-paste was done." );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
QClipboard* clipboard = QApplication::clipboard();
|
||||||
|
clipboard->setText( pasteUrl, QClipboard::Clipboard );
|
||||||
|
|
||||||
|
if ( clipboard->supportsSelection() )
|
||||||
|
{
|
||||||
|
clipboard->setText( pasteUrl, QClipboard::Selection );
|
||||||
|
}
|
||||||
|
QString pasteUrlFmt = QCoreApplication::translate( "Calamares::ViewManager",
|
||||||
|
"Install log posted to\n\n%1\n\nLink copied to clipboard" );
|
||||||
|
pasteUrlMessage = pasteUrlFmt.arg( pasteUrl );
|
||||||
|
}
|
||||||
|
|
||||||
|
QMessageBox::critical(
|
||||||
|
nullptr, QCoreApplication::translate( "Calamares::ViewManager", "Install Log Paste URL" ), pasteUrlMessage );
|
||||||
|
return pasteUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool
|
||||||
|
CalamaresUtils::Paste::isEnabled()
|
||||||
|
{
|
||||||
|
auto [ type, serverUrl ] = Calamares::Branding::instance()->uploadServer();
|
||||||
|
return type != Calamares::Branding::UploadServerType::None;
|
||||||
|
}
|
||||||
|
@ -13,17 +13,30 @@
|
|||||||
#include <QString>
|
#include <QString>
|
||||||
|
|
||||||
class QObject;
|
class QObject;
|
||||||
|
class QWidget;
|
||||||
|
|
||||||
namespace CalamaresUtils
|
namespace CalamaresUtils
|
||||||
{
|
{
|
||||||
namespace Paste
|
namespace Paste
|
||||||
{
|
{
|
||||||
|
|
||||||
/** @brief Send the current log file to a pastebin
|
/** @brief Send the current log file to a pastebin
|
||||||
*
|
*
|
||||||
* Returns the (string) URL that the pastebin gives us.
|
* Returns the (string) URL that the pastebin gives us.
|
||||||
*/
|
*/
|
||||||
QString doLogUpload( QObject* parent );
|
QString doLogUpload( QObject* parent );
|
||||||
|
|
||||||
|
/** @brief Send the current log file to a pastebin
|
||||||
|
*
|
||||||
|
* As doLogUpload(), but also sets the clipboard and displays
|
||||||
|
* a message saying it's been done.
|
||||||
|
*/
|
||||||
|
QString doLogUploadUI( QWidget* parent );
|
||||||
|
|
||||||
|
/** @brief Is paste enabled?
|
||||||
|
*
|
||||||
|
* Checks the branding instance if paste can be done.
|
||||||
|
*/
|
||||||
|
bool isEnabled();
|
||||||
} // namespace Paste
|
} // namespace Paste
|
||||||
|
|
||||||
} // namespace CalamaresUtils
|
} // namespace CalamaresUtils
|
||||||
|
@ -168,7 +168,7 @@ QmlViewStep::loadComplete()
|
|||||||
}
|
}
|
||||||
if ( m_qmlComponent->isReady() && !m_qmlObject )
|
if ( m_qmlComponent->isReady() && !m_qmlObject )
|
||||||
{
|
{
|
||||||
cDebug() << "QML component complete" << m_qmlFileName;
|
cDebug() << Logger::SubEntry << "QML component complete" << m_qmlFileName << "creating object";
|
||||||
// Don't do this again
|
// Don't do this again
|
||||||
disconnect( m_qmlComponent, &QQmlComponent::statusChanged, this, &QmlViewStep::loadComplete );
|
disconnect( m_qmlComponent, &QQmlComponent::statusChanged, this, &QmlViewStep::loadComplete );
|
||||||
|
|
||||||
@ -196,7 +196,7 @@ QmlViewStep::showQml()
|
|||||||
{
|
{
|
||||||
if ( !m_qmlWidget || !m_qmlObject )
|
if ( !m_qmlWidget || !m_qmlObject )
|
||||||
{
|
{
|
||||||
cDebug() << "showQml() called but no QML object";
|
cWarning() << "showQml() called but no QML object";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if ( m_spinner )
|
if ( m_spinner )
|
||||||
@ -208,7 +208,7 @@ QmlViewStep::showQml()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cDebug() << "showQml() called twice";
|
cWarning() << "showQml() called twice";
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ViewManager::instance()->currentStep() == this )
|
if ( ViewManager::instance()->currentStep() == this )
|
||||||
@ -228,7 +228,7 @@ QmlViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
|||||||
= CalamaresUtils::qmlSearchNames().find( CalamaresUtils::getString( configurationMap, "qmlSearch" ), ok );
|
= CalamaresUtils::qmlSearchNames().find( CalamaresUtils::getString( configurationMap, "qmlSearch" ), ok );
|
||||||
if ( !ok )
|
if ( !ok )
|
||||||
{
|
{
|
||||||
cDebug() << "Bad QML search mode.";
|
cWarning() << "Bad QML search mode set for" << moduleInstanceKey();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString qmlFile = CalamaresUtils::getString( configurationMap, "qmlFilename" );
|
QString qmlFile = CalamaresUtils::getString( configurationMap, "qmlFilename" );
|
||||||
@ -253,7 +253,7 @@ QmlViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cWarning() << "QML configuration set after component has loaded.";
|
cWarning() << "QML configuration set after component" << moduleInstanceKey() << "has loaded.";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ SlideshowQML::SlideshowQML( QWidget* parent )
|
|||||||
|
|
||||||
cDebug() << "QML import paths:" << Logger::DebugList( m_qmlShow->engine()->importPathList() );
|
cDebug() << "QML import paths:" << Logger::DebugList( m_qmlShow->engine()->importPathList() );
|
||||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 10, 0 )
|
#if QT_VERSION >= QT_VERSION_CHECK( 5, 10, 0 )
|
||||||
CALAMARES_RETRANSLATE( if ( m_qmlShow ) { m_qmlShow->engine()->retranslate(); } )
|
CALAMARES_RETRANSLATE( if ( m_qmlShow ) { m_qmlShow->engine()->retranslate(); } );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( Branding::instance()->slideshowAPI() == 2 )
|
if ( Branding::instance()->slideshowAPI() == 2 )
|
||||||
|
@ -111,8 +111,8 @@ Config::onInstallationFailed( const QString& message, const QString& details )
|
|||||||
void
|
void
|
||||||
Config::doRestart( bool restartAnyway )
|
Config::doRestart( bool restartAnyway )
|
||||||
{
|
{
|
||||||
cDebug() << "mode=" << restartModes().find( restartNowMode() ) << " user?" << restartNowWanted() << "arg?"
|
cDebug() << "mode=" << restartModes().find( restartNowMode() ) << " user wants restart?" << restartNowWanted()
|
||||||
<< restartAnyway;
|
<< "force restart?" << restartAnyway;
|
||||||
if ( restartNowMode() != RestartMode::Never && restartAnyway )
|
if ( restartNowMode() != RestartMode::Never && restartAnyway )
|
||||||
{
|
{
|
||||||
cDebug() << Logger::SubEntry << "Running restart command" << m_restartNowCommand;
|
cDebug() << Logger::SubEntry << "Running restart command" << m_restartNowCommand;
|
||||||
@ -124,9 +124,11 @@ Config::doRestart( bool restartAnyway )
|
|||||||
void
|
void
|
||||||
Config::doNotify( bool hasFailed, bool sendAnyway )
|
Config::doNotify( bool hasFailed, bool sendAnyway )
|
||||||
{
|
{
|
||||||
|
const char* const failName = hasFailed ? "failed" : "succeeded";
|
||||||
|
|
||||||
if ( !sendAnyway )
|
if ( !sendAnyway )
|
||||||
{
|
{
|
||||||
cDebug() << "Notification failed?" << hasFailed << "not sent.";
|
cDebug() << "Notification not sent; completion:" << failName;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -134,7 +136,7 @@ Config::doNotify( bool hasFailed, bool sendAnyway )
|
|||||||
"org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications" );
|
"org.freedesktop.Notifications", "/org/freedesktop/Notifications", "org.freedesktop.Notifications" );
|
||||||
if ( notify.isValid() )
|
if ( notify.isValid() )
|
||||||
{
|
{
|
||||||
cDebug() << "Sending notification of completion. Failed?" << hasFailed;
|
cDebug() << "Sending notification of completion:" << failName;
|
||||||
|
|
||||||
QString title;
|
QString title;
|
||||||
QString message;
|
QString message;
|
||||||
|
@ -99,5 +99,6 @@ void
|
|||||||
InteractiveTerminalPage::setCommand( const QString& command )
|
InteractiveTerminalPage::setCommand( const QString& command )
|
||||||
{
|
{
|
||||||
m_command = command;
|
m_command = command;
|
||||||
CALAMARES_RETRANSLATE( m_headerLabel->setText( tr( "Executing script: <code>%1</code>" ).arg( m_command ) ); )
|
CALAMARES_RETRANSLATE(
|
||||||
|
m_headerLabel->setText( tr( "Executing script: <code>%1</code>" ).arg( m_command ) ); );
|
||||||
}
|
}
|
||||||
|
@ -70,9 +70,8 @@ KeyboardPage::KeyboardPage( Config* config, QWidget* parent )
|
|||||||
cDebug() << "Variants now" << model->rowCount() << model->currentIndex();
|
cDebug() << "Variants now" << model->rowCount() << model->currentIndex();
|
||||||
}
|
}
|
||||||
|
|
||||||
connect( ui->buttonRestore, &QPushButton::clicked, [ config = config ] {
|
connect(
|
||||||
config->keyboardModels()->setCurrentIndex();
|
ui->buttonRestore, &QPushButton::clicked, [config = config] { config->keyboardModels()->setCurrentIndex(); } );
|
||||||
} );
|
|
||||||
|
|
||||||
connect( ui->physicalModelSelector,
|
connect( ui->physicalModelSelector,
|
||||||
QOverload< int >::of( &QComboBox::currentIndexChanged ),
|
QOverload< int >::of( &QComboBox::currentIndexChanged ),
|
||||||
@ -83,25 +82,24 @@ KeyboardPage::KeyboardPage( Config* config, QWidget* parent )
|
|||||||
ui->physicalModelSelector,
|
ui->physicalModelSelector,
|
||||||
&QComboBox::setCurrentIndex );
|
&QComboBox::setCurrentIndex );
|
||||||
|
|
||||||
connect(
|
connect( ui->layoutSelector->selectionModel(),
|
||||||
ui->layoutSelector->selectionModel(),
|
|
||||||
&QItemSelectionModel::currentChanged,
|
&QItemSelectionModel::currentChanged,
|
||||||
[this]( const QModelIndex& current ) { m_config->keyboardLayouts()->setCurrentIndex( current.row() ); } );
|
[this]( const QModelIndex& current ) { m_config->keyboardLayouts()->setCurrentIndex( current.row() ); } );
|
||||||
connect( config->keyboardLayouts(), &KeyboardLayoutModel::currentIndexChanged, [this]( int index ) {
|
connect( config->keyboardLayouts(), &KeyboardLayoutModel::currentIndexChanged, [this]( int index ) {
|
||||||
ui->layoutSelector->setCurrentIndex( m_config->keyboardLayouts()->index( index ) );
|
ui->layoutSelector->setCurrentIndex( m_config->keyboardLayouts()->index( index ) );
|
||||||
m_keyboardPreview->setLayout( m_config->keyboardLayouts()->key( index ) );
|
m_keyboardPreview->setLayout( m_config->keyboardLayouts()->key( index ) );
|
||||||
m_keyboardPreview->setVariant( m_config->keyboardVariants()->key( m_config->keyboardVariants()->currentIndex() ) );
|
m_keyboardPreview->setVariant(
|
||||||
|
m_config->keyboardVariants()->key( m_config->keyboardVariants()->currentIndex() ) );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
connect(
|
connect( ui->variantSelector->selectionModel(),
|
||||||
ui->variantSelector->selectionModel(),
|
|
||||||
&QItemSelectionModel::currentChanged,
|
&QItemSelectionModel::currentChanged,
|
||||||
[this]( const QModelIndex& current ) { m_config->keyboardVariants()->setCurrentIndex( current.row() ); } );
|
[this]( const QModelIndex& current ) { m_config->keyboardVariants()->setCurrentIndex( current.row() ); } );
|
||||||
connect( config->keyboardVariants(), &KeyboardVariantsModel::currentIndexChanged, [this]( int index ) {
|
connect( config->keyboardVariants(), &KeyboardVariantsModel::currentIndexChanged, [this]( int index ) {
|
||||||
ui->variantSelector->setCurrentIndex( m_config->keyboardVariants()->index( index ) );
|
ui->variantSelector->setCurrentIndex( m_config->keyboardVariants()->index( index ) );
|
||||||
m_keyboardPreview->setVariant( m_config->keyboardVariants()->key( index ) );
|
m_keyboardPreview->setVariant( m_config->keyboardVariants()->key( index ) );
|
||||||
} );
|
} );
|
||||||
CALAMARES_RETRANSLATE_SLOT( &KeyboardPage::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &KeyboardPage::retranslate );
|
||||||
}
|
}
|
||||||
|
|
||||||
KeyboardPage::~KeyboardPage()
|
KeyboardPage::~KeyboardPage()
|
||||||
|
@ -105,7 +105,7 @@ LicensePage::LicensePage( QWidget* parent )
|
|||||||
|
|
||||||
connect( ui->acceptCheckBox, &QCheckBox::toggled, this, &LicensePage::checkAcceptance );
|
connect( ui->acceptCheckBox, &QCheckBox::toggled, this, &LicensePage::checkAcceptance );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &LicensePage::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &LicensePage::retranslate );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -117,7 +117,7 @@ LocalePage::LocalePage( Config* config, QWidget* parent )
|
|||||||
connect( m_localeChangeButton, &QPushButton::clicked, this, &LocalePage::changeLocale );
|
connect( m_localeChangeButton, &QPushButton::clicked, this, &LocalePage::changeLocale );
|
||||||
connect( m_formatsChangeButton, &QPushButton::clicked, this, &LocalePage::changeFormats );
|
connect( m_formatsChangeButton, &QPushButton::clicked, this, &LocalePage::changeFormats );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &LocalePage::updateLocaleLabels )
|
CALAMARES_RETRANSLATE_SLOT( &LocalePage::updateLocaleLabels );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -8,6 +8,7 @@ calamares_add_plugin( netinstall
|
|||||||
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
EXPORT_MACRO PLUGINDLLEXPORT_PRO
|
||||||
SOURCES
|
SOURCES
|
||||||
Config.cpp
|
Config.cpp
|
||||||
|
LoaderQueue.cpp
|
||||||
NetInstallViewStep.cpp
|
NetInstallViewStep.cpp
|
||||||
NetInstallPage.cpp
|
NetInstallPage.cpp
|
||||||
PackageTreeItem.cpp
|
PackageTreeItem.cpp
|
||||||
|
@ -12,10 +12,15 @@
|
|||||||
|
|
||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
|
|
||||||
|
#include "LoaderQueue.h"
|
||||||
|
|
||||||
|
#include "GlobalStorage.h"
|
||||||
|
#include "JobQueue.h"
|
||||||
#include "network/Manager.h"
|
#include "network/Manager.h"
|
||||||
|
#include "packages/Globals.h"
|
||||||
#include "utils/Logger.h"
|
#include "utils/Logger.h"
|
||||||
#include "utils/RAII.h"
|
#include "utils/Retranslator.h"
|
||||||
#include "utils/Yaml.h"
|
#include "utils/Variant.h"
|
||||||
|
|
||||||
#include <QNetworkReply>
|
#include <QNetworkReply>
|
||||||
|
|
||||||
@ -23,10 +28,20 @@ Config::Config( QObject* parent )
|
|||||||
: QObject( parent )
|
: QObject( parent )
|
||||||
, m_model( new PackageModel( this ) )
|
, m_model( new PackageModel( this ) )
|
||||||
{
|
{
|
||||||
|
CALAMARES_RETRANSLATE_SLOT( &Config::retranslate );
|
||||||
}
|
}
|
||||||
|
|
||||||
Config::~Config() {}
|
Config::~Config() {}
|
||||||
|
|
||||||
|
void
|
||||||
|
Config::retranslate()
|
||||||
|
{
|
||||||
|
emit statusChanged( status() );
|
||||||
|
emit sidebarLabelChanged( sidebarLabel() );
|
||||||
|
emit titleLabelChanged( titleLabel() );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QString
|
QString
|
||||||
Config::status() const
|
Config::status() const
|
||||||
{
|
{
|
||||||
@ -39,9 +54,11 @@ Config::status() const
|
|||||||
case Status::FailedBadData:
|
case Status::FailedBadData:
|
||||||
return tr( "Network Installation. (Disabled: Received invalid groups data)" );
|
return tr( "Network Installation. (Disabled: Received invalid groups data)" );
|
||||||
case Status::FailedInternalError:
|
case Status::FailedInternalError:
|
||||||
return tr( "Network Installation. (Disabled: internal error)" );
|
return tr( "Network Installation. (Disabled: Internal error)" );
|
||||||
case Status::FailedNetworkError:
|
case Status::FailedNetworkError:
|
||||||
return tr( "Network Installation. (Disabled: Unable to fetch package lists, check your network connection)" );
|
return tr( "Network Installation. (Disabled: Unable to fetch package lists, check your network connection)" );
|
||||||
|
case Status::FailedNoData:
|
||||||
|
return tr( "Network Installation. (Disabled: No package list)" );
|
||||||
}
|
}
|
||||||
__builtin_unreachable();
|
__builtin_unreachable();
|
||||||
}
|
}
|
||||||
@ -54,92 +71,114 @@ Config::setStatus( Status s )
|
|||||||
emit statusChanged( status() );
|
emit statusChanged( status() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString
|
||||||
|
Config::sidebarLabel() const
|
||||||
|
{
|
||||||
|
return m_sidebarLabel ? m_sidebarLabel->get() : tr( "Package selection" );
|
||||||
|
}
|
||||||
|
|
||||||
|
QString
|
||||||
|
Config::titleLabel() const
|
||||||
|
{
|
||||||
|
return m_titleLabel ? m_titleLabel->get() : QString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
Config::loadGroupList( const QVariantList& groupData )
|
Config::loadGroupList( const QVariantList& groupData )
|
||||||
{
|
{
|
||||||
m_model->setupModelData( groupData );
|
m_model->setupModelData( groupData );
|
||||||
|
if ( m_model->rowCount() < 1 )
|
||||||
|
{
|
||||||
|
cWarning() << "NetInstall groups data was empty.";
|
||||||
|
setStatus( Status::FailedNoData );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
setStatus( Status::Ok );
|
||||||
|
}
|
||||||
emit statusReady();
|
emit statusReady();
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Config::loadGroupList( const QUrl& url )
|
Config::loadingDone()
|
||||||
{
|
{
|
||||||
if ( !url.isValid() )
|
if ( m_queue )
|
||||||
{
|
{
|
||||||
setStatus( Status::FailedBadConfiguration );
|
m_queue->deleteLater();
|
||||||
|
m_queue = nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
using namespace CalamaresUtils::Network;
|
|
||||||
|
|
||||||
cDebug() << "NetInstall loading groups from" << url;
|
void
|
||||||
QNetworkReply* reply = Manager::instance().asynchronousGet(
|
Config::setConfigurationMap( const QVariantMap& configurationMap )
|
||||||
url,
|
|
||||||
RequestOptions( RequestOptions::FakeUserAgent | RequestOptions::FollowRedirect, std::chrono::seconds( 30 ) ) );
|
|
||||||
|
|
||||||
if ( !reply )
|
|
||||||
{
|
{
|
||||||
cDebug() << Logger::Continuation << "request failed immediately.";
|
setRequired( CalamaresUtils::getBool( configurationMap, "required", false ) );
|
||||||
setStatus( Status::FailedBadConfiguration );
|
|
||||||
|
// Get the translations, if any
|
||||||
|
bool bogus = false;
|
||||||
|
auto label = CalamaresUtils::getSubMap( configurationMap, "label", bogus );
|
||||||
|
// Use a different class name for translation lookup because the
|
||||||
|
// .. table of strings lives in NetInstallViewStep.cpp and moving them
|
||||||
|
// .. around is annoying for translators.
|
||||||
|
static const char className[] = "NetInstallViewStep";
|
||||||
|
|
||||||
|
if ( label.contains( "sidebar" ) )
|
||||||
|
{
|
||||||
|
m_sidebarLabel = new CalamaresUtils::Locale::TranslatedString( label, "sidebar", className );
|
||||||
}
|
}
|
||||||
else
|
if ( label.contains( "title" ) )
|
||||||
{
|
{
|
||||||
m_reply = reply;
|
m_titleLabel = new CalamaresUtils::Locale::TranslatedString( label, "title", className );
|
||||||
connect( reply, &QNetworkReply::finished, this, &Config::receivedGroupData );
|
}
|
||||||
|
|
||||||
|
// Lastly, load the groups data
|
||||||
|
const QString key = QStringLiteral( "groupsUrl" );
|
||||||
|
const auto& groupsUrlVariant = configurationMap.value( key );
|
||||||
|
if ( groupsUrlVariant.type() == QVariant::String )
|
||||||
|
{
|
||||||
|
m_queue = new LoaderQueue( this );
|
||||||
|
m_queue->append( SourceItem::makeSourceItem( groupsUrlVariant.toString(), configurationMap ) );
|
||||||
|
}
|
||||||
|
else if ( groupsUrlVariant.type() == QVariant::List )
|
||||||
|
{
|
||||||
|
m_queue = new LoaderQueue( this );
|
||||||
|
for ( const auto& s : groupsUrlVariant.toStringList() )
|
||||||
|
{
|
||||||
|
m_queue->append( SourceItem::makeSourceItem( s, configurationMap ) );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ( m_queue && m_queue->count() > 0 )
|
||||||
|
{
|
||||||
|
cDebug() << "Loading netinstall from" << m_queue->count() << "alternate sources.";
|
||||||
|
connect( m_queue, &LoaderQueue::done, this, &Config::loadingDone );
|
||||||
|
m_queue->load();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Config::receivedGroupData()
|
Config::finalizeGlobalStorage( const Calamares::ModuleSystem::InstanceKey& key )
|
||||||
{
|
{
|
||||||
if ( !m_reply || !m_reply->isFinished() )
|
auto packages = model()->getPackages();
|
||||||
{
|
|
||||||
cWarning() << "NetInstall data called too early.";
|
|
||||||
setStatus( Status::FailedInternalError );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
cDebug() << "NetInstall group data received" << m_reply->size() << "bytes from" << m_reply->url();
|
// This netinstall module may add two sub-steps to the packageOperations,
|
||||||
|
// one for installing and one for try-installing.
|
||||||
|
QVariantList installPackages;
|
||||||
|
QVariantList tryInstallPackages;
|
||||||
|
|
||||||
cqDeleter< QNetworkReply > d { m_reply };
|
for ( const auto& package : packages )
|
||||||
|
|
||||||
// If m_required is *false* then we still say we're ready
|
|
||||||
// even if the reply is corrupt or missing.
|
|
||||||
if ( m_reply->error() != QNetworkReply::NoError )
|
|
||||||
{
|
{
|
||||||
cWarning() << "unable to fetch netinstall package lists.";
|
if ( package->isCritical() )
|
||||||
cDebug() << Logger::SubEntry << "Netinstall reply error: " << m_reply->error();
|
|
||||||
cDebug() << Logger::SubEntry << "Request for url: " << m_reply->url().toString()
|
|
||||||
<< " failed with: " << m_reply->errorString();
|
|
||||||
setStatus( Status::FailedNetworkError );
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
QByteArray yamlData = m_reply->readAll();
|
|
||||||
try
|
|
||||||
{
|
{
|
||||||
YAML::Node groups = YAML::Load( yamlData.constData() );
|
installPackages.append( package->toOperation() );
|
||||||
|
|
||||||
if ( groups.IsSequence() )
|
|
||||||
{
|
|
||||||
loadGroupList( CalamaresUtils::yamlSequenceToVariant( groups ) );
|
|
||||||
}
|
|
||||||
else if ( groups.IsMap() )
|
|
||||||
{
|
|
||||||
auto map = CalamaresUtils::yamlMapToVariant( groups );
|
|
||||||
loadGroupList( map.value( "groups" ).toList() );
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cWarning() << "NetInstall groups data does not form a sequence.";
|
tryInstallPackages.append( package->toOperation() );
|
||||||
}
|
|
||||||
if ( m_model->rowCount() < 1 )
|
|
||||||
{
|
|
||||||
cWarning() << "NetInstall groups data was empty.";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch ( YAML::Exception& e )
|
|
||||||
{
|
CalamaresUtils::Packages::setGSPackageAdditions(
|
||||||
CalamaresUtils::explainYamlException( e, yamlData, "netinstall groups data" );
|
Calamares::JobQueue::instance()->globalStorage(), key, installPackages, tryInstallPackages );
|
||||||
setStatus( Status::FailedBadData );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -14,10 +14,15 @@
|
|||||||
|
|
||||||
#include "PackageModel.h"
|
#include "PackageModel.h"
|
||||||
|
|
||||||
#include <QObject>
|
#include "locale/TranslatableConfiguration.h"
|
||||||
#include <QUrl>
|
#include "modulesystem/InstanceKey.h"
|
||||||
|
|
||||||
class QNetworkReply;
|
#include <QObject>
|
||||||
|
#include <QVariantMap>
|
||||||
|
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
|
class LoaderQueue;
|
||||||
|
|
||||||
class Config : public QObject
|
class Config : public QObject
|
||||||
{
|
{
|
||||||
@ -26,17 +31,25 @@ class Config : public QObject
|
|||||||
Q_PROPERTY( PackageModel* packageModel MEMBER m_model FINAL )
|
Q_PROPERTY( PackageModel* packageModel MEMBER m_model FINAL )
|
||||||
Q_PROPERTY( QString status READ status NOTIFY statusChanged FINAL )
|
Q_PROPERTY( QString status READ status NOTIFY statusChanged FINAL )
|
||||||
|
|
||||||
|
// Translations, of the module name (for sidebar) and above the list
|
||||||
|
Q_PROPERTY( QString sidebarLabel READ sidebarLabel NOTIFY sidebarLabelChanged FINAL )
|
||||||
|
Q_PROPERTY( QString titleLabel READ titleLabel NOTIFY titleLabelChanged FINAL )
|
||||||
|
|
||||||
public:
|
public:
|
||||||
Config( QObject* parent = nullptr );
|
Config( QObject* parent = nullptr );
|
||||||
~Config() override;
|
~Config() override;
|
||||||
|
|
||||||
|
void setConfigurationMap( const QVariantMap& configurationMap );
|
||||||
|
|
||||||
enum class Status
|
enum class Status
|
||||||
{
|
{
|
||||||
Ok,
|
Ok,
|
||||||
FailedBadConfiguration,
|
FailedBadConfiguration,
|
||||||
FailedInternalError,
|
FailedInternalError,
|
||||||
FailedNetworkError,
|
FailedNetworkError,
|
||||||
FailedBadData
|
FailedBadData,
|
||||||
|
FailedNoData
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
QString status() const;
|
QString status() const;
|
||||||
@ -45,12 +58,10 @@ public:
|
|||||||
bool required() const { return m_required; }
|
bool required() const { return m_required; }
|
||||||
void setRequired( bool r ) { m_required = r; }
|
void setRequired( bool r ) { m_required = r; }
|
||||||
|
|
||||||
/** @brief Retrieves the groups, with name, description and packages
|
PackageModel* model() const { return m_model; }
|
||||||
*
|
|
||||||
* Loads data from the given URL. Once done, the data is parsed
|
QString sidebarLabel() const;
|
||||||
* and passed on to the other loadGroupList() method.
|
QString titleLabel() const;
|
||||||
*/
|
|
||||||
void loadGroupList( const QUrl& url );
|
|
||||||
|
|
||||||
/** @brief Fill model from parsed data.
|
/** @brief Fill model from parsed data.
|
||||||
*
|
*
|
||||||
@ -59,18 +70,28 @@ public:
|
|||||||
*/
|
*/
|
||||||
void loadGroupList( const QVariantList& groupData );
|
void loadGroupList( const QVariantList& groupData );
|
||||||
|
|
||||||
PackageModel* model() const { return m_model; }
|
/** @brief Write the selected package lists to global storage
|
||||||
|
*
|
||||||
|
* Since the config doesn't know what module it is for,
|
||||||
|
* pass in an instance key.
|
||||||
|
*/
|
||||||
|
void finalizeGlobalStorage( const Calamares::ModuleSystem::InstanceKey& key );
|
||||||
|
|
||||||
signals:
|
Q_SIGNALS:
|
||||||
void statusChanged( QString status ); ///< Something changed
|
void statusChanged( QString status ); ///< Something changed
|
||||||
|
void sidebarLabelChanged( QString label );
|
||||||
|
void titleLabelChanged( QString label );
|
||||||
void statusReady(); ///< Loading groups is complete
|
void statusReady(); ///< Loading groups is complete
|
||||||
|
|
||||||
private slots:
|
private Q_SLOTS:
|
||||||
void receivedGroupData(); ///< From async-loading group data
|
void retranslate();
|
||||||
|
void loadingDone();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
CalamaresUtils::Locale::TranslatedString* m_sidebarLabel = nullptr; // As it appears in the sidebar
|
||||||
|
CalamaresUtils::Locale::TranslatedString* m_titleLabel = nullptr;
|
||||||
PackageModel* m_model = nullptr;
|
PackageModel* m_model = nullptr;
|
||||||
QNetworkReply* m_reply = nullptr; // For fetching data
|
LoaderQueue* m_queue = nullptr;
|
||||||
Status m_status = Status::Ok;
|
Status m_status = Status::Ok;
|
||||||
bool m_required = false;
|
bool m_required = false;
|
||||||
};
|
};
|
||||||
|
194
src/modules/netinstall/LoaderQueue.cpp
Normal file
194
src/modules/netinstall/LoaderQueue.cpp
Normal file
@ -0,0 +1,194 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2016 Luca Giambonini <almack@chakraos.org>
|
||||||
|
* SPDX-FileCopyrightText: 2016 Lisa Vitolo <shainer@chakraos.org>
|
||||||
|
* SPDX-FileCopyrightText: 2017 Kyle Robbertze <krobbertze@gmail.com>
|
||||||
|
* SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot <groot@kde.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*
|
||||||
|
* Calamares is Free Software: see the License-Identifier above.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "LoaderQueue.h"
|
||||||
|
|
||||||
|
#include "Config.h"
|
||||||
|
#include "network/Manager.h"
|
||||||
|
#include "utils/Logger.h"
|
||||||
|
#include "utils/RAII.h"
|
||||||
|
#include "utils/Yaml.h"
|
||||||
|
|
||||||
|
#include <QNetworkReply>
|
||||||
|
#include <QTimer>
|
||||||
|
|
||||||
|
/** @brief Call fetchNext() on the queue if it can
|
||||||
|
*
|
||||||
|
* On destruction, a new call to fetchNext() is queued, so that
|
||||||
|
* the queue continues loading. Calling release() before the
|
||||||
|
* destructor skips the fetchNext(), ending the queue-loading.
|
||||||
|
*/
|
||||||
|
class FetchNextUnless
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
FetchNextUnless( LoaderQueue* q )
|
||||||
|
: m_q( q )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
~FetchNextUnless()
|
||||||
|
{
|
||||||
|
if ( m_q )
|
||||||
|
{
|
||||||
|
QMetaObject::invokeMethod( m_q, "fetchNext", Qt::QueuedConnection );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
void release() { m_q = nullptr; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
LoaderQueue* m_q = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
SourceItem
|
||||||
|
SourceItem::makeSourceItem( const QString& groupsUrl, const QVariantMap& configurationMap )
|
||||||
|
{
|
||||||
|
if ( groupsUrl == QStringLiteral( "local" ) )
|
||||||
|
{
|
||||||
|
return SourceItem { QUrl(), configurationMap.value( "groups" ).toList() };
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return SourceItem { QUrl { groupsUrl }, QVariantList() };
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
LoaderQueue::LoaderQueue( Config* parent )
|
||||||
|
: QObject( parent )
|
||||||
|
, m_config( parent )
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LoaderQueue::append( SourceItem&& i )
|
||||||
|
{
|
||||||
|
m_queue.append( std::move( i ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LoaderQueue::load()
|
||||||
|
{
|
||||||
|
QMetaObject::invokeMethod( this, "fetchNext", Qt::QueuedConnection );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
LoaderQueue::fetchNext()
|
||||||
|
{
|
||||||
|
if ( m_queue.isEmpty() )
|
||||||
|
{
|
||||||
|
m_config->setStatus( Config::Status::FailedBadData );
|
||||||
|
emit done();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
auto source = m_queue.takeFirst();
|
||||||
|
if ( source.isLocal() )
|
||||||
|
{
|
||||||
|
m_config->loadGroupList( source.data );
|
||||||
|
emit done();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fetch( source.url );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LoaderQueue::fetch( const QUrl& url )
|
||||||
|
{
|
||||||
|
FetchNextUnless next( this );
|
||||||
|
|
||||||
|
if ( !url.isValid() )
|
||||||
|
{
|
||||||
|
m_config->setStatus( Config::Status::FailedBadConfiguration );
|
||||||
|
cDebug() << "Invalid URL" << url;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
using namespace CalamaresUtils::Network;
|
||||||
|
|
||||||
|
cDebug() << "NetInstall loading groups from" << url;
|
||||||
|
QNetworkReply* reply = Manager::instance().asynchronousGet(
|
||||||
|
url,
|
||||||
|
RequestOptions( RequestOptions::FakeUserAgent | RequestOptions::FollowRedirect, std::chrono::seconds( 30 ) ) );
|
||||||
|
|
||||||
|
if ( !reply )
|
||||||
|
{
|
||||||
|
cDebug() << Logger::SubEntry << "Request failed immediately.";
|
||||||
|
// If nobody sets a different status, this will remain
|
||||||
|
m_config->setStatus( Config::Status::FailedBadConfiguration );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// When the network request is done, **then** we might
|
||||||
|
// do the next item from the queue, so don't call fetchNext() now.
|
||||||
|
next.release();
|
||||||
|
m_reply = reply;
|
||||||
|
connect( reply, &QNetworkReply::finished, this, &LoaderQueue::dataArrived );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
LoaderQueue::dataArrived()
|
||||||
|
{
|
||||||
|
FetchNextUnless finished( this );
|
||||||
|
|
||||||
|
if ( !m_reply || !m_reply->isFinished() )
|
||||||
|
{
|
||||||
|
cWarning() << "NetInstall data called too early.";
|
||||||
|
m_config->setStatus( Config::Status::FailedInternalError );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
cDebug() << "NetInstall group data received" << m_reply->size() << "bytes from" << m_reply->url();
|
||||||
|
|
||||||
|
cqDeleter< QNetworkReply > d { m_reply };
|
||||||
|
|
||||||
|
// If m_required is *false* then we still say we're ready
|
||||||
|
// even if the reply is corrupt or missing.
|
||||||
|
if ( m_reply->error() != QNetworkReply::NoError )
|
||||||
|
{
|
||||||
|
cWarning() << "unable to fetch netinstall package lists.";
|
||||||
|
cDebug() << Logger::SubEntry << "Netinstall reply error: " << m_reply->error();
|
||||||
|
cDebug() << Logger::SubEntry << "Request for url: " << m_reply->url().toString()
|
||||||
|
<< " failed with: " << m_reply->errorString();
|
||||||
|
m_config->setStatus( Config::Status::FailedNetworkError );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
QByteArray yamlData = m_reply->readAll();
|
||||||
|
try
|
||||||
|
{
|
||||||
|
YAML::Node groups = YAML::Load( yamlData.constData() );
|
||||||
|
|
||||||
|
if ( groups.IsSequence() )
|
||||||
|
{
|
||||||
|
finished.release();
|
||||||
|
m_config->loadGroupList( CalamaresUtils::yamlSequenceToVariant( groups ) );
|
||||||
|
emit done();
|
||||||
|
}
|
||||||
|
else if ( groups.IsMap() )
|
||||||
|
{
|
||||||
|
finished.release();
|
||||||
|
auto map = CalamaresUtils::yamlMapToVariant( groups );
|
||||||
|
m_config->loadGroupList( map.value( "groups" ).toList() );
|
||||||
|
emit done();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
cWarning() << "NetInstall groups data does not form a sequence.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch ( YAML::Exception& e )
|
||||||
|
{
|
||||||
|
CalamaresUtils::explainYamlException( e, yamlData, "netinstall groups data" );
|
||||||
|
m_config->setStatus( Config::Status::FailedBadData );
|
||||||
|
}
|
||||||
|
}
|
77
src/modules/netinstall/LoaderQueue.h
Normal file
77
src/modules/netinstall/LoaderQueue.h
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
/*
|
||||||
|
* SPDX-FileCopyrightText: 2016 Luca Giambonini <almack@chakraos.org>
|
||||||
|
* SPDX-FileCopyrightText: 2016 Lisa Vitolo <shainer@chakraos.org>
|
||||||
|
* SPDX-FileCopyrightText: 2017 Kyle Robbertze <krobbertze@gmail.com>
|
||||||
|
* SPDX-FileCopyrightText: 2017-2018 2020, Adriaan de Groot <groot@kde.org>
|
||||||
|
* SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
*
|
||||||
|
* Calamares is Free Software: see the License-Identifier above.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef NETINSTALL_LOADERQUEUE_H
|
||||||
|
#define NETINSTALL_LOADERQUEUE_H
|
||||||
|
|
||||||
|
#include <QQueue>
|
||||||
|
#include <QUrl>
|
||||||
|
#include <QVariantList>
|
||||||
|
|
||||||
|
class Config;
|
||||||
|
class QNetworkReply;
|
||||||
|
|
||||||
|
/** @brief Data about an entry in *groupsUrl*
|
||||||
|
*
|
||||||
|
* This can be a specific URL, or "local" which uses data stored
|
||||||
|
* in the configuration file itself.
|
||||||
|
*/
|
||||||
|
struct SourceItem
|
||||||
|
{
|
||||||
|
QUrl url;
|
||||||
|
QVariantList data;
|
||||||
|
|
||||||
|
bool isUrl() const { return url.isValid(); }
|
||||||
|
bool isLocal() const { return !data.isEmpty(); }
|
||||||
|
bool isValid() const { return isUrl() || isLocal(); }
|
||||||
|
/** @brief Create a SourceItem
|
||||||
|
*
|
||||||
|
* If the @p groupsUrl is @c "local" then the *groups* key in
|
||||||
|
* the @p configurationMap is used as the source; otherwise the
|
||||||
|
* string is used as an actual URL.
|
||||||
|
*/
|
||||||
|
static SourceItem makeSourceItem( const QString& groupsUrl, const QVariantMap& configurationMap );
|
||||||
|
};
|
||||||
|
|
||||||
|
/** @brief Queue of source items to load
|
||||||
|
*
|
||||||
|
* Queue things up by calling append() and then kick things off
|
||||||
|
* by calling load(). This will try to load the items, in order;
|
||||||
|
* the first one that succeeds will end the loading process.
|
||||||
|
*
|
||||||
|
* Signal done() is emitted when done (also when all of the items fail).
|
||||||
|
*/
|
||||||
|
class LoaderQueue : public QObject
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
LoaderQueue( Config* parent );
|
||||||
|
|
||||||
|
void append( SourceItem&& i );
|
||||||
|
int count() const { return m_queue.count(); }
|
||||||
|
|
||||||
|
public Q_SLOTS:
|
||||||
|
void load();
|
||||||
|
|
||||||
|
void fetchNext();
|
||||||
|
void fetch( const QUrl& url );
|
||||||
|
void dataArrived();
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
void done();
|
||||||
|
|
||||||
|
private:
|
||||||
|
QQueue< SourceItem > m_queue;
|
||||||
|
Config* m_config = nullptr;
|
||||||
|
QNetworkReply* m_reply = nullptr;
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
@ -33,40 +33,16 @@ NetInstallPage::NetInstallPage( Config* c, QWidget* parent )
|
|||||||
ui->setupUi( this );
|
ui->setupUi( this );
|
||||||
ui->groupswidget->header()->setSectionResizeMode( QHeaderView::ResizeToContents );
|
ui->groupswidget->header()->setSectionResizeMode( QHeaderView::ResizeToContents );
|
||||||
ui->groupswidget->setModel( c->model() );
|
ui->groupswidget->setModel( c->model() );
|
||||||
connect( c, &Config::statusChanged, this, &NetInstallPage::setStatus );
|
connect( c, &Config::statusChanged, ui->netinst_status, &QLabel::setText );
|
||||||
|
connect( c, &Config::titleLabelChanged, [ui = this->ui]( const QString title ) {
|
||||||
|
ui->label->setVisible( !title.isEmpty() );
|
||||||
|
ui->label->setText( title );
|
||||||
|
} );
|
||||||
connect( c, &Config::statusReady, this, &NetInstallPage::expandGroups );
|
connect( c, &Config::statusReady, this, &NetInstallPage::expandGroups );
|
||||||
|
|
||||||
setPageTitle( nullptr );
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &NetInstallPage::retranslate )
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NetInstallPage::~NetInstallPage() {}
|
NetInstallPage::~NetInstallPage() {}
|
||||||
|
|
||||||
void
|
|
||||||
NetInstallPage::setPageTitle( CalamaresUtils::Locale::TranslatedString* t )
|
|
||||||
{
|
|
||||||
m_title.reset( t );
|
|
||||||
if ( !m_title )
|
|
||||||
{
|
|
||||||
ui->label->hide();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
ui->label->show();
|
|
||||||
}
|
|
||||||
retranslate();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
NetInstallPage::retranslate()
|
|
||||||
{
|
|
||||||
if ( m_title )
|
|
||||||
{
|
|
||||||
ui->label->setText( m_title->get() ); // That's get() on the TranslatedString
|
|
||||||
}
|
|
||||||
ui->netinst_status->setText( m_config->status() );
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NetInstallPage::expandGroups()
|
NetInstallPage::expandGroups()
|
||||||
{
|
{
|
||||||
@ -82,12 +58,6 @@ NetInstallPage::expandGroups()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
NetInstallPage::setStatus( QString s )
|
|
||||||
{
|
|
||||||
ui->netinst_status->setText( s );
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
NetInstallPage::onActivate()
|
NetInstallPage::onActivate()
|
||||||
{
|
{
|
||||||
|
@ -37,23 +37,8 @@ public:
|
|||||||
NetInstallPage( Config* config, QWidget* parent = nullptr );
|
NetInstallPage( Config* config, QWidget* parent = nullptr );
|
||||||
~NetInstallPage() override;
|
~NetInstallPage() override;
|
||||||
|
|
||||||
/** @brief Sets the page title
|
|
||||||
*
|
|
||||||
* In situations where there is more than one netinstall page,
|
|
||||||
* or you want some explanatory title above the treeview,
|
|
||||||
* set the page title. This page takes ownership of the
|
|
||||||
* TranslatedString object.
|
|
||||||
*
|
|
||||||
* Set to nullptr to remove the title.
|
|
||||||
*/
|
|
||||||
void setPageTitle( CalamaresUtils::Locale::TranslatedString* );
|
|
||||||
|
|
||||||
void onActivate();
|
void onActivate();
|
||||||
|
|
||||||
public slots:
|
|
||||||
void retranslate();
|
|
||||||
void setStatus( QString s );
|
|
||||||
|
|
||||||
/** @brief Expand entries that should be pre-expanded.
|
/** @brief Expand entries that should be pre-expanded.
|
||||||
*
|
*
|
||||||
* Follows the *expanded* key / the startExpanded field in the
|
* Follows the *expanded* key / the startExpanded field in the
|
||||||
@ -64,8 +49,6 @@ public slots:
|
|||||||
private:
|
private:
|
||||||
Config* m_config;
|
Config* m_config;
|
||||||
Ui::Page_NetInst* ui;
|
Ui::Page_NetInst* ui;
|
||||||
|
|
||||||
std::unique_ptr< CalamaresUtils::Locale::TranslatedString > m_title; // Above the treeview
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // NETINSTALLPAGE_H
|
#endif // NETINSTALLPAGE_H
|
||||||
|
@ -11,12 +11,6 @@
|
|||||||
|
|
||||||
#include "NetInstallViewStep.h"
|
#include "NetInstallViewStep.h"
|
||||||
|
|
||||||
#include "GlobalStorage.h"
|
|
||||||
#include "JobQueue.h"
|
|
||||||
|
|
||||||
#include "utils/Logger.h"
|
|
||||||
#include "utils/Variant.h"
|
|
||||||
|
|
||||||
#include "NetInstallPage.h"
|
#include "NetInstallPage.h"
|
||||||
|
|
||||||
CALAMARES_PLUGIN_FACTORY_DEFINITION( NetInstallViewStepFactory, registerPlugin< NetInstallViewStep >(); )
|
CALAMARES_PLUGIN_FACTORY_DEFINITION( NetInstallViewStepFactory, registerPlugin< NetInstallViewStep >(); )
|
||||||
@ -24,7 +18,6 @@ CALAMARES_PLUGIN_FACTORY_DEFINITION( NetInstallViewStepFactory, registerPlugin<
|
|||||||
NetInstallViewStep::NetInstallViewStep( QObject* parent )
|
NetInstallViewStep::NetInstallViewStep( QObject* parent )
|
||||||
: Calamares::ViewStep( parent )
|
: Calamares::ViewStep( parent )
|
||||||
, m_widget( new NetInstallPage( &m_config ) )
|
, m_widget( new NetInstallPage( &m_config ) )
|
||||||
, m_sidebarLabel( nullptr )
|
|
||||||
, m_nextEnabled( false )
|
, m_nextEnabled( false )
|
||||||
{
|
{
|
||||||
connect( &m_config, &Config::statusReady, this, &NetInstallViewStep::nextIsReady );
|
connect( &m_config, &Config::statusReady, this, &NetInstallViewStep::nextIsReady );
|
||||||
@ -37,20 +30,22 @@ NetInstallViewStep::~NetInstallViewStep()
|
|||||||
{
|
{
|
||||||
m_widget->deleteLater();
|
m_widget->deleteLater();
|
||||||
}
|
}
|
||||||
delete m_sidebarLabel;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
QString
|
QString
|
||||||
NetInstallViewStep::prettyName() const
|
NetInstallViewStep::prettyName() const
|
||||||
{
|
{
|
||||||
return m_sidebarLabel ? m_sidebarLabel->get() : tr( "Package selection" );
|
return m_config.sidebarLabel();
|
||||||
|
|
||||||
#if defined( TABLE_OF_TRANSLATIONS )
|
#if defined( TABLE_OF_TRANSLATIONS )
|
||||||
__builtin_unreachable();
|
__builtin_unreachable();
|
||||||
// This is a table of "standard" labels for this module. If you use them
|
// This is a table of "standard" labels for this module. If you use them
|
||||||
// in the label: sidebar: section of the config file, the existing
|
// in the label: sidebar: section of the config file, the existing
|
||||||
// translations can be used.
|
// translations can be used.
|
||||||
|
//
|
||||||
|
// These translations still live here, even though the lookup
|
||||||
|
// code is in the Config class.
|
||||||
tr( "Package selection" );
|
tr( "Package selection" );
|
||||||
tr( "Office software" );
|
tr( "Office software" );
|
||||||
tr( "Office package" );
|
tr( "Office package" );
|
||||||
@ -125,70 +120,7 @@ NetInstallViewStep::onActivate()
|
|||||||
void
|
void
|
||||||
NetInstallViewStep::onLeave()
|
NetInstallViewStep::onLeave()
|
||||||
{
|
{
|
||||||
auto packages = m_config.model()->getPackages();
|
m_config.finalizeGlobalStorage( moduleInstanceKey() );
|
||||||
cDebug() << "Netinstall: Processing" << packages.length() << "packages.";
|
|
||||||
|
|
||||||
static const char PACKAGEOP[] = "packageOperations";
|
|
||||||
|
|
||||||
// Check if there's already a PACAKGEOP entry in GS, and if so we'll
|
|
||||||
// extend that one (overwriting the value in GS at the end of this method)
|
|
||||||
Calamares::GlobalStorage* gs = Calamares::JobQueue::instance()->globalStorage();
|
|
||||||
QVariantList packageOperations = gs->contains( PACKAGEOP ) ? gs->value( PACKAGEOP ).toList() : QVariantList();
|
|
||||||
cDebug() << Logger::SubEntry << "Existing package operations length" << packageOperations.length();
|
|
||||||
|
|
||||||
// Clear out existing operations for this module, going backwards:
|
|
||||||
// Sometimes we remove an item, and we don't want the index to
|
|
||||||
// fall off the end of the list.
|
|
||||||
bool somethingRemoved = false;
|
|
||||||
for ( int index = packageOperations.length() - 1; 0 <= index; index-- )
|
|
||||||
{
|
|
||||||
const QVariantMap op = packageOperations.at( index ).toMap();
|
|
||||||
if ( op.contains( "source" ) && op.value( "source" ).toString() == moduleInstanceKey().toString() )
|
|
||||||
{
|
|
||||||
cDebug() << Logger::SubEntry << "Removing existing operations for" << moduleInstanceKey();
|
|
||||||
packageOperations.removeAt( index );
|
|
||||||
somethingRemoved = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// This netinstall module may add two sub-steps to the packageOperations,
|
|
||||||
// one for installing and one for try-installing.
|
|
||||||
QVariantList installPackages;
|
|
||||||
QVariantList tryInstallPackages;
|
|
||||||
|
|
||||||
for ( const auto& package : packages )
|
|
||||||
{
|
|
||||||
if ( package->isCritical() )
|
|
||||||
{
|
|
||||||
installPackages.append( package->toOperation() );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tryInstallPackages.append( package->toOperation() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( !installPackages.empty() )
|
|
||||||
{
|
|
||||||
QVariantMap op;
|
|
||||||
op.insert( "install", QVariant( installPackages ) );
|
|
||||||
op.insert( "source", moduleInstanceKey().toString() );
|
|
||||||
packageOperations.append( op );
|
|
||||||
cDebug() << Logger::SubEntry << installPackages.length() << "critical packages.";
|
|
||||||
}
|
|
||||||
if ( !tryInstallPackages.empty() )
|
|
||||||
{
|
|
||||||
QVariantMap op;
|
|
||||||
op.insert( "try_install", QVariant( tryInstallPackages ) );
|
|
||||||
op.insert( "source", moduleInstanceKey().toString() );
|
|
||||||
packageOperations.append( op );
|
|
||||||
cDebug() << Logger::SubEntry << tryInstallPackages.length() << "non-critical packages.";
|
|
||||||
}
|
|
||||||
|
|
||||||
if ( somethingRemoved || !packageOperations.isEmpty() )
|
|
||||||
{
|
|
||||||
gs->insert( PACKAGEOP, packageOperations );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -201,35 +133,5 @@ NetInstallViewStep::nextIsReady()
|
|||||||
void
|
void
|
||||||
NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
NetInstallViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
||||||
{
|
{
|
||||||
m_config.setRequired( CalamaresUtils::getBool( configurationMap, "required", false ) );
|
m_config.setConfigurationMap( configurationMap );
|
||||||
|
|
||||||
QString groupsUrl = CalamaresUtils::getString( configurationMap, "groupsUrl" );
|
|
||||||
if ( !groupsUrl.isEmpty() )
|
|
||||||
{
|
|
||||||
// Keep putting groupsUrl into the global storage,
|
|
||||||
// even though it's no longer used for in-module data-passing.
|
|
||||||
Calamares::JobQueue::instance()->globalStorage()->insert( "groupsUrl", groupsUrl );
|
|
||||||
if ( groupsUrl == QStringLiteral( "local" ) )
|
|
||||||
{
|
|
||||||
QVariantList l = configurationMap.value( "groups" ).toList();
|
|
||||||
m_config.loadGroupList( l );
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
m_config.loadGroupList( groupsUrl );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool bogus = false;
|
|
||||||
auto label = CalamaresUtils::getSubMap( configurationMap, "label", bogus );
|
|
||||||
|
|
||||||
if ( label.contains( "sidebar" ) )
|
|
||||||
{
|
|
||||||
m_sidebarLabel = new CalamaresUtils::Locale::TranslatedString( label, "sidebar", metaObject()->className() );
|
|
||||||
}
|
|
||||||
if ( label.contains( "title" ) )
|
|
||||||
{
|
|
||||||
m_widget->setPageTitle(
|
|
||||||
new CalamaresUtils::Locale::TranslatedString( label, "title", metaObject()->className() ) );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
#include "Config.h"
|
#include "Config.h"
|
||||||
|
|
||||||
#include "DllMacro.h"
|
#include "DllMacro.h"
|
||||||
#include "locale/TranslatableConfiguration.h"
|
|
||||||
#include "utils/PluginFactory.h"
|
#include "utils/PluginFactory.h"
|
||||||
#include "viewpages/ViewStep.h"
|
#include "viewpages/ViewStep.h"
|
||||||
|
|
||||||
@ -56,7 +55,6 @@ private:
|
|||||||
Config m_config;
|
Config m_config;
|
||||||
|
|
||||||
NetInstallPage* m_widget;
|
NetInstallPage* m_widget;
|
||||||
CalamaresUtils::Locale::TranslatedString* m_sidebarLabel; // As it appears in the sidebar
|
|
||||||
bool m_nextEnabled = false;
|
bool m_nextEnabled = false;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -32,20 +32,21 @@
|
|||||||
# This module supports multiple instances through the *label* key,
|
# This module supports multiple instances through the *label* key,
|
||||||
# which allows you to distinguish them in the UI.
|
# which allows you to distinguish them in the UI.
|
||||||
---
|
---
|
||||||
# This is the URL that is retrieved to get the netinstall groups-and-packages
|
# The *groupsUrl* determines where the data for the netinstall groups-and-
|
||||||
# data (which should be in the format described in netinstall.yaml), e.g.:
|
# packages comes from. The value of the key may be:
|
||||||
# ```
|
|
||||||
# groupsUrl: http://example.org/netinstall.php
|
|
||||||
# ```
|
|
||||||
# or it can be a locally installed file:
|
|
||||||
# ```
|
|
||||||
# groupsUrl: file:///usr/share/calamares/netinstall.yaml
|
|
||||||
# ```
|
|
||||||
# or it can be the special-case literal string "local":
|
|
||||||
# ```
|
|
||||||
# groupsUrl: local
|
|
||||||
# ```
|
|
||||||
#
|
#
|
||||||
|
# - a single string (this is treated as a list with just that string in it)
|
||||||
|
# - a list of strings
|
||||||
|
#
|
||||||
|
# Each string is treated as a URL (see below for special cases. The
|
||||||
|
# list is examined **in order** and each URL is tried in turn. The
|
||||||
|
# first URL to load successfully -- even if it yields 0 packages --
|
||||||
|
# ends the process. This allows using a network URL and a (fallback)
|
||||||
|
# local URL for package lists, or for using multiple mirrors of
|
||||||
|
# netinstall data.
|
||||||
|
#
|
||||||
|
# The URL must point to a YAML file that follows the format described
|
||||||
|
# below at the key *groups* -- except for the special case URL "local".
|
||||||
# Note that the contents of the groups file is the **important**
|
# Note that the contents of the groups file is the **important**
|
||||||
# part of the configuration of this module. It specifies what
|
# part of the configuration of this module. It specifies what
|
||||||
# groups and packages the user may select (and so what commands are to
|
# groups and packages the user may select (and so what commands are to
|
||||||
@ -59,12 +60,27 @@
|
|||||||
# must have a list-of-groups as value; if the file does not have
|
# must have a list-of-groups as value; if the file does not have
|
||||||
# a top-level key *groups*, then the file must contain only a list of groups.
|
# a top-level key *groups*, then the file must contain only a list of groups.
|
||||||
#
|
#
|
||||||
# As a special case, setting *groupsUrl* to the literal string
|
# Each item in the list *groupsUrl* may be:
|
||||||
# `local` means that the data is obtained from **this** config
|
# - A remote URL like `http://example.org/netinstall.php`
|
||||||
# file, under the key *groups*.
|
# - A local file URL like `file:///usr/share/calamares/netinstall.yaml`
|
||||||
|
# - The special-case literal string `local`
|
||||||
|
#
|
||||||
|
# Non-special case URLs are loaded as YAML; if the load succeeds, then
|
||||||
|
# they are interpreted like the *groups* key below. The special case
|
||||||
|
# `local` loads the data directly from **this** file.
|
||||||
#
|
#
|
||||||
groupsUrl: local
|
groupsUrl: local
|
||||||
|
|
||||||
|
# Alternate form:
|
||||||
|
# groupsUrl: [ local ]
|
||||||
|
|
||||||
|
# Net-based package list, with fallback to local file
|
||||||
|
# groupsUrl:
|
||||||
|
# - http://example.com/calamares/netinstall.yaml
|
||||||
|
# - file:///etc/calamares/modules/netinstall.yaml
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# If the installation can proceed without netinstall (e.g. the Live CD
|
# If the installation can proceed without netinstall (e.g. the Live CD
|
||||||
# can create a working installed system, but netinstall is preferred
|
# can create a working installed system, but netinstall is preferred
|
||||||
# to bring it up-to-date or extend functionality) leave this set to
|
# to bring it up-to-date or extend functionality) leave this set to
|
||||||
|
@ -29,7 +29,7 @@ public:
|
|||||||
{
|
{
|
||||||
m_ui->setupUi( this );
|
m_ui->setupUi( this );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); )
|
CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); );
|
||||||
}
|
}
|
||||||
|
|
||||||
~OEMPage() override;
|
~OEMPage() override;
|
||||||
|
@ -28,7 +28,7 @@ PackageChooserPage::PackageChooserPage( PackageChooserMode mode, QWidget* parent
|
|||||||
m_introduction.screenshot = QPixmap( QStringLiteral( ":/images/no-selection.png" ) );
|
m_introduction.screenshot = QPixmap( QStringLiteral( ":/images/no-selection.png" ) );
|
||||||
|
|
||||||
ui->setupUi( this );
|
ui->setupUi( this );
|
||||||
CALAMARES_RETRANSLATE( updateLabels(); )
|
CALAMARES_RETRANSLATE( updateLabels(); );
|
||||||
|
|
||||||
switch ( mode )
|
switch ( mode )
|
||||||
{
|
{
|
||||||
|
@ -53,7 +53,7 @@ BootInfoWidget::BootInfoWidget( QWidget* parent )
|
|||||||
m_bootIcon->setPalette( palette );
|
m_bootIcon->setPalette( palette );
|
||||||
m_bootLabel->setPalette( palette );
|
m_bootLabel->setPalette( palette );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE( retranslateUi(); )
|
CALAMARES_RETRANSLATE( retranslateUi(); );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -119,7 +119,7 @@ ChoicePage::ChoicePage( Config* config, QWidget* parent )
|
|||||||
// Drive selector + preview
|
// Drive selector + preview
|
||||||
CALAMARES_RETRANSLATE( retranslateUi( this ); m_drivesLabel->setText( tr( "Select storage de&vice:" ) );
|
CALAMARES_RETRANSLATE( retranslateUi( this ); m_drivesLabel->setText( tr( "Select storage de&vice:" ) );
|
||||||
m_previewBeforeLabel->setText( tr( "Current:" ) );
|
m_previewBeforeLabel->setText( tr( "Current:" ) );
|
||||||
m_previewAfterLabel->setText( tr( "After:" ) ); )
|
m_previewAfterLabel->setText( tr( "After:" ) ); );
|
||||||
|
|
||||||
m_previewBeforeFrame->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding );
|
m_previewBeforeFrame->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding );
|
||||||
m_previewAfterFrame->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding );
|
m_previewAfterFrame->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Expanding );
|
||||||
@ -298,7 +298,7 @@ ChoicePage::setupChoices()
|
|||||||
|
|
||||||
CALAMARES_RETRANSLATE( m_somethingElseButton->setText( tr( "<strong>Manual partitioning</strong><br/>"
|
CALAMARES_RETRANSLATE( m_somethingElseButton->setText( tr( "<strong>Manual partitioning</strong><br/>"
|
||||||
"You can create or resize partitions yourself." ) );
|
"You can create or resize partitions yourself." ) );
|
||||||
updateSwapChoicesTr( m_eraseSwapChoiceComboBox ); )
|
updateSwapChoicesTr( m_eraseSwapChoiceComboBox ); );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1303,7 +1303,7 @@ ChoicePage::setupActions()
|
|||||||
|
|
||||||
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
||||||
"Replaces a partition with %1." )
|
"Replaces a partition with %1." )
|
||||||
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); )
|
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); );
|
||||||
|
|
||||||
m_replaceButton->hide();
|
m_replaceButton->hide();
|
||||||
m_alongsideButton->hide();
|
m_alongsideButton->hide();
|
||||||
@ -1337,7 +1337,7 @@ ChoicePage::setupActions()
|
|||||||
|
|
||||||
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
||||||
"Replaces a partition with %1." )
|
"Replaces a partition with %1." )
|
||||||
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); )
|
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1358,7 +1358,7 @@ ChoicePage::setupActions()
|
|||||||
|
|
||||||
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
||||||
"Replaces a partition with %1." )
|
"Replaces a partition with %1." )
|
||||||
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); )
|
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -1383,7 +1383,7 @@ ChoicePage::setupActions()
|
|||||||
|
|
||||||
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
m_replaceButton->setText( tr( "<strong>Replace a partition</strong><br/>"
|
||||||
"Replaces a partition with %1." )
|
"Replaces a partition with %1." )
|
||||||
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); )
|
.arg( Calamares::Branding::instance()->shortVersionedName() ) ); );
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef DEBUG_PARTITION_UNSAFE
|
#ifdef DEBUG_PARTITION_UNSAFE
|
||||||
|
@ -54,7 +54,7 @@ DeviceInfoWidget::DeviceInfoWidget( QWidget* parent )
|
|||||||
m_ptIcon->setPalette( palette );
|
m_ptIcon->setPalette( palette );
|
||||||
m_ptLabel->setPalette( palette );
|
m_ptLabel->setPalette( palette );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &DeviceInfoWidget::retranslateUi )
|
CALAMARES_RETRANSLATE_SLOT( &DeviceInfoWidget::retranslateUi );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ EncryptWidget::EncryptWidget( QWidget* parent )
|
|||||||
setFixedHeight( m_ui->m_passphraseLineEdit->height() ); // Avoid jumping up and down
|
setFixedHeight( m_ui->m_passphraseLineEdit->height() ); // Avoid jumping up and down
|
||||||
updateState();
|
updateState();
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &EncryptWidget::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &EncryptWidget::retranslate );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,7 +117,7 @@ PartitionPage::PartitionPage( PartitionCoreModule* core, QWidget* parent )
|
|||||||
m_ui->label_3->hide();
|
m_ui->label_3->hide();
|
||||||
}
|
}
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); )
|
CALAMARES_RETRANSLATE( m_ui->retranslateUi( this ); );
|
||||||
}
|
}
|
||||||
|
|
||||||
PartitionPage::~PartitionPage() {}
|
PartitionPage::~PartitionPage() {}
|
||||||
|
@ -67,7 +67,7 @@ PartitionViewStep::PartitionViewStep( QObject* parent )
|
|||||||
|
|
||||||
m_waitingWidget = new WaitingWidget( QString() );
|
m_waitingWidget = new WaitingWidget( QString() );
|
||||||
m_widget->addWidget( m_waitingWidget );
|
m_widget->addWidget( m_waitingWidget );
|
||||||
CALAMARES_RETRANSLATE( m_waitingWidget->setText( tr( "Gathering system information..." ) ); )
|
CALAMARES_RETRANSLATE( m_waitingWidget->setText( tr( "Gathering system information..." ) ); );
|
||||||
|
|
||||||
m_core = new PartitionCoreModule( this ); // Unusable before init is complete!
|
m_core = new PartitionCoreModule( this ); // Unusable before init is complete!
|
||||||
// We're not done loading, but we need the configuration map first.
|
// We're not done loading, but we need the configuration map first.
|
||||||
|
@ -50,7 +50,7 @@ ReplaceWidget::ReplaceWidget( PartitionCoreModule* core, QComboBox* devicesCombo
|
|||||||
updateFromCurrentDevice( devicesComboBox );
|
updateFromCurrentDevice( devicesComboBox );
|
||||||
} );
|
} );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE( onPartitionSelected(); )
|
CALAMARES_RETRANSLATE( onPartitionSelected(); );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -85,7 +85,7 @@ PlasmaLnfPage::PlasmaLnfPage( Config* config, QWidget* parent )
|
|||||||
"You can also skip this step and configure the look-and-feel "
|
"You can also skip this step and configure the look-and-feel "
|
||||||
"once the system is installed. Clicking on a look-and-feel "
|
"once the system is installed. Clicking on a look-and-feel "
|
||||||
"selection will give you a live preview of that look-and-feel." ) );
|
"selection will give you a live preview of that look-and-feel." ) );
|
||||||
} )
|
} );
|
||||||
|
|
||||||
auto* view = new QListView( this );
|
auto* view = new QListView( this );
|
||||||
view->setModel( m_config->themeModel() );
|
view->setModel( m_config->themeModel() );
|
||||||
|
@ -48,7 +48,7 @@ SummaryPage::SummaryPage( const SummaryViewStep* thisViewStep, QWidget* parent )
|
|||||||
headerLabel->setText( tr( "This is an overview of what will happen once you start "
|
headerLabel->setText( tr( "This is an overview of what will happen once you start "
|
||||||
"the setup procedure." ) );
|
"the setup procedure." ) );
|
||||||
else headerLabel->setText( tr( "This is an overview of what will happen once you start "
|
else headerLabel->setText( tr( "This is an overview of what will happen once you start "
|
||||||
"the install procedure." ) ); )
|
"the install procedure." ) ); );
|
||||||
layout->addWidget( headerLabel );
|
layout->addWidget( headerLabel );
|
||||||
layout->addWidget( m_scrollArea );
|
layout->addWidget( m_scrollArea );
|
||||||
m_scrollArea->setWidgetResizable( true );
|
m_scrollArea->setWidgetResizable( true );
|
||||||
|
@ -28,7 +28,7 @@ TrackingPage::TrackingPage( Config* config, QWidget* parent )
|
|||||||
, ui( new Ui::TrackingPage )
|
, ui( new Ui::TrackingPage )
|
||||||
{
|
{
|
||||||
ui->setupUi( this );
|
ui->setupUi( this );
|
||||||
CALAMARES_RETRANSLATE_SLOT( &TrackingPage::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &TrackingPage::retranslate );
|
||||||
|
|
||||||
ui->noneCheckBox->setChecked( true );
|
ui->noneCheckBox->setChecked( true );
|
||||||
ui->noneCheckBox->setEnabled( false );
|
ui->noneCheckBox->setEnabled( false );
|
||||||
|
@ -140,7 +140,7 @@ UsersPage::UsersPage( Config* config, QWidget* parent )
|
|||||||
config, &Config::requireStrongPasswordsChanged, ui->checkBoxRequireStrongPassword, &QCheckBox::setChecked );
|
config, &Config::requireStrongPasswordsChanged, ui->checkBoxRequireStrongPassword, &QCheckBox::setChecked );
|
||||||
}
|
}
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &UsersPage::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &UsersPage::retranslate );
|
||||||
|
|
||||||
onReuseUserPasswordChanged( m_config->reuseUserPasswordForRoot() );
|
onReuseUserPasswordChanged( m_config->reuseUserPasswordForRoot() );
|
||||||
onFullNameTextEdited( m_config->fullName() );
|
onFullNameTextEdited( m_config->fullName() );
|
||||||
|
@ -30,7 +30,7 @@ Config::Config( QObject* parent )
|
|||||||
{
|
{
|
||||||
initLanguages();
|
initLanguages();
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &Config::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &Config::retranslate );
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -75,7 +75,7 @@ WelcomePage::WelcomePage( Config* conf, QWidget* parent )
|
|||||||
|
|
||||||
initLanguages();
|
initLanguages();
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &WelcomePage::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &WelcomePage::retranslate );
|
||||||
|
|
||||||
connect( ui->aboutButton, &QPushButton::clicked, this, &WelcomePage::showAboutBox );
|
connect( ui->aboutButton, &QPushButton::clicked, this, &WelcomePage::showAboutBox );
|
||||||
connect( Calamares::ModuleManager::instance(),
|
connect( Calamares::ModuleManager::instance(),
|
||||||
|
@ -34,7 +34,8 @@ CheckerContainer::CheckerContainer( const Calamares::RequirementsModel& model, Q
|
|||||||
CalamaresUtils::unmarginLayout( mainLayout );
|
CalamaresUtils::unmarginLayout( mainLayout );
|
||||||
|
|
||||||
mainLayout->addWidget( m_waitingWidget );
|
mainLayout->addWidget( m_waitingWidget );
|
||||||
CALAMARES_RETRANSLATE( if ( m_waitingWidget ) m_waitingWidget->setText( tr( "Gathering system information..." ) ); )
|
CALAMARES_RETRANSLATE( if ( m_waitingWidget )
|
||||||
|
m_waitingWidget->setText( tr( "Gathering system information..." ) ); );
|
||||||
}
|
}
|
||||||
|
|
||||||
CheckerContainer::~CheckerContainer()
|
CheckerContainer::~CheckerContainer()
|
||||||
|
@ -107,14 +107,12 @@ GeneralRequirements::checkRequirements()
|
|||||||
&& ( availableSize.height() >= CalamaresUtils::windowMinimumHeight );
|
&& ( availableSize.height() >= CalamaresUtils::windowMinimumHeight );
|
||||||
|
|
||||||
qint64 requiredStorageB = CalamaresUtils::GiBtoBytes( m_requiredStorageGiB );
|
qint64 requiredStorageB = CalamaresUtils::GiBtoBytes( m_requiredStorageGiB );
|
||||||
cDebug() << "Need at least storage bytes:" << requiredStorageB;
|
|
||||||
if ( m_entriesToCheck.contains( "storage" ) )
|
if ( m_entriesToCheck.contains( "storage" ) )
|
||||||
{
|
{
|
||||||
enoughStorage = checkEnoughStorage( requiredStorageB );
|
enoughStorage = checkEnoughStorage( requiredStorageB );
|
||||||
}
|
}
|
||||||
|
|
||||||
qint64 requiredRamB = CalamaresUtils::GiBtoBytes( m_requiredRamGiB );
|
qint64 requiredRamB = CalamaresUtils::GiBtoBytes( m_requiredRamGiB );
|
||||||
cDebug() << "Need at least ram bytes:" << requiredRamB;
|
|
||||||
if ( m_entriesToCheck.contains( "ram" ) )
|
if ( m_entriesToCheck.contains( "ram" ) )
|
||||||
{
|
{
|
||||||
enoughRam = checkEnoughRam( requiredRamB );
|
enoughRam = checkEnoughRam( requiredRamB );
|
||||||
@ -135,10 +133,18 @@ GeneralRequirements::checkRequirements()
|
|||||||
isRoot = checkIsRoot();
|
isRoot = checkIsRoot();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
using TNum = Logger::DebugRow< const char*, qint64 >;
|
||||||
using TR = Logger::DebugRow< const char*, MaybeChecked >;
|
using TR = Logger::DebugRow< const char*, MaybeChecked >;
|
||||||
cDebug() << "GeneralRequirements output:" << TR( "enoughStorage", enoughStorage ) << TR( "enoughRam", enoughRam )
|
// clang-format off
|
||||||
<< TR( "hasPower", hasPower ) << TR( "hasInternet", hasInternet ) << TR( "isRoot", isRoot );
|
cDebug() << "GeneralRequirements output:"
|
||||||
|
<< TNum( "storage", requiredStorageB )
|
||||||
|
<< TR( "enoughStorage", enoughStorage )
|
||||||
|
<< TNum( "RAM", requiredRamB )
|
||||||
|
<< TR( "enoughRam", enoughRam )
|
||||||
|
<< TR( "hasPower", hasPower )
|
||||||
|
<< TR( "hasInternet", hasInternet )
|
||||||
|
<< TR( "isRoot", isRoot );
|
||||||
|
// clang-format on
|
||||||
Calamares::RequirementsList checkEntries;
|
Calamares::RequirementsList checkEntries;
|
||||||
foreach ( const QString& entry, m_entriesToCheck )
|
foreach ( const QString& entry, m_entriesToCheck )
|
||||||
{
|
{
|
||||||
|
@ -121,7 +121,7 @@ ResultsListDialog::ResultsListDialog( const Calamares::RequirementsModel& model,
|
|||||||
|
|
||||||
connect( buttonBox, &QDialogButtonBox::clicked, this, &QDialog::close );
|
connect( buttonBox, &QDialogButtonBox::clicked, this, &QDialog::close );
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &ResultsListDialog::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &ResultsListDialog::retranslate );
|
||||||
retranslate(); // Do it now to fill in the texts
|
retranslate(); // Do it now to fill in the texts
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,7 +216,7 @@ ResultsListWidget::ResultsListWidget( const Calamares::RequirementsModel& model,
|
|||||||
m_explanation->setAlignment( Qt::AlignCenter );
|
m_explanation->setAlignment( Qt::AlignCenter );
|
||||||
}
|
}
|
||||||
|
|
||||||
CALAMARES_RETRANSLATE_SLOT( &ResultsListWidget::retranslate )
|
CALAMARES_RETRANSLATE_SLOT( &ResultsListWidget::retranslate );
|
||||||
retranslate();
|
retranslate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user