Merge branch 'master' of https://github.com/calamares/calamares into development
This commit is contained in:
commit
7afb2443d5
10
CHANGES
10
CHANGES
@ -7,6 +7,10 @@ website will have to do for older versions.
|
||||
|
||||
This release contains contributions from (alphabetically by first name):
|
||||
|
||||
Distributions are **advised** to check the slideshow they use for the
|
||||
installation step; changes in loading and translation mechanisms may
|
||||
require changes in the slideshow.
|
||||
|
||||
## Core ##
|
||||
|
||||
- With this release, option *WITH_PYTHONQT* changes default to **off**.
|
||||
@ -18,6 +22,12 @@ This release contains contributions from (alphabetically by first name):
|
||||
configured after the last *exec* section of the sequence has been
|
||||
solved. The *finished* page can be left out (but then you don't get
|
||||
the restart-now functionality). #1168
|
||||
- The *slideshow* which is run during installation now has API versions.
|
||||
API version 1 (the default) runs as before, where the slideshow is loaded
|
||||
when the installation starts. API version 2 loads the slideshow on
|
||||
Calamares startup, thus improving responsiveness. Documentation
|
||||
in `src/branding/README.md`. #1152
|
||||
- The example slideshow now uses API version 2.
|
||||
|
||||
## Modules ##
|
||||
|
||||
|
@ -84,7 +84,7 @@ set( CALAMARES_DESCRIPTION_SUMMARY
|
||||
# complete = 100% translated,
|
||||
# good = nearly complete (use own judgement, right now >= 75%)
|
||||
# ok = incomplete (more than 25% untranslated, at least 5% translated),
|
||||
# bad = 0% translated, placeholder in tx; these are not included.
|
||||
# incomplete = <5% translated, placeholder in tx; these are not included.
|
||||
#
|
||||
# Language en (source language) is added later. It isn't listed in
|
||||
# Transifex either. Get the list of languages and their status
|
||||
@ -106,12 +106,11 @@ set( CALAMARES_DESCRIPTION_SUMMARY
|
||||
# the original four lines with the current translations).
|
||||
set( _tx_complete ca cs_CZ da de fr he hr hu ko lt pt_BR sq tr_TR
|
||||
zh_TW )
|
||||
set( _tx_good ast en_GB es es_MX et gl id it_IT ja nl pl pt_PT ro
|
||||
ru sk zh_CN )
|
||||
set( _tx_ok ar bg el es_PR eu fi_FI hi is mr nb sl sr sr@latin sv
|
||||
th uk )
|
||||
set( _tx_bad be eo fa fr_CH gu kk kn lo mk ne_NP ur uz )
|
||||
|
||||
set( _tx_good ast en_GB es es_MX et fi_FI gl id it_IT ja nl pl
|
||||
pt_PT ro ru sk zh_CN )
|
||||
set( _tx_ok ar bg el es_PR eu hi is mr nb sl sr sr@latin sv th
|
||||
uk )
|
||||
set( _tx_incomplete be ca@valencia eo fa fr_CH gu kk kn lo mk ne_NP ur uz )
|
||||
|
||||
### Required versions
|
||||
#
|
||||
@ -325,8 +324,8 @@ endif()
|
||||
# then run an extra cmake-time check for consistency of the old
|
||||
# (p_tx*) and new (_tx*) lists.
|
||||
#
|
||||
set( prev_tx ${p_tx_complete} ${p_tx_good} ${p_tx_ok} ${p_tx_bad} )
|
||||
set( curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_bad} )
|
||||
set( prev_tx ${p_tx_complete} ${p_tx_good} ${p_tx_ok} ${p_tx_incomplete} )
|
||||
set( curr_tx ${_tx_complete} ${_tx_good} ${_tx_ok} ${_tx_incomplete} )
|
||||
set( tx_errors OFF )
|
||||
if ( prev_tx )
|
||||
# Gone in new list
|
||||
|
@ -107,7 +107,10 @@ function( calamares_add_branding_translations NAME )
|
||||
file( GLOB BRANDING_TRANSLATION_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${SUBDIRECTORY}/lang/calamares-${NAME}_*.ts" )
|
||||
if ( BRANDING_TRANSLATION_FILES )
|
||||
qt5_add_translation( QM_FILES ${BRANDING_TRANSLATION_FILES} )
|
||||
add_custom_target( branding-translation-${NAME} ALL DEPENDS ${QM_FILES} )
|
||||
add_custom_target( branding-translation-${NAME} ALL DEPENDS ${QM_FILES}
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/lang/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${QM_FILES} ${CMAKE_CURRENT_BINARY_DIR}/${SUBDIRECTORY}/lang/
|
||||
)
|
||||
install( FILES ${QM_FILES} DESTINATION ${BRANDING_COMPONENT_DESTINATION}/lang/ )
|
||||
list( LENGTH BRANDING_TRANSLATION_FILES _branding_count )
|
||||
message( " ${Green}BRANDING_TRANSLATIONS:${ColorReset} ${_branding_count} language(s)" )
|
||||
|
@ -14,8 +14,8 @@ def get_tx_credentials():
|
||||
txconfig_name = os.path.expanduser("~/.transifexrc")
|
||||
try:
|
||||
with open(txconfig_name, "r") as f:
|
||||
parser = configparser.SafeConfigParser()
|
||||
parser.readfp(f)
|
||||
parser = configparser.ConfigParser()
|
||||
parser.read_file(f)
|
||||
|
||||
return parser.get("https://www.transifex.com", "password")
|
||||
except IOError as e:
|
||||
@ -71,7 +71,7 @@ def get_tx_stats(token):
|
||||
output_langs(all_langs, "complete", lambda s : s == 1.0)
|
||||
output_langs(all_langs, "good", lambda s : 1.0 > s >= 0.75)
|
||||
output_langs(all_langs, "ok", lambda s : 0.75 > s >= 0.05)
|
||||
output_langs(all_langs, "bad", lambda s : 0.05 > s)
|
||||
output_langs(all_langs, "incomplete", lambda s : 0.05 > s)
|
||||
|
||||
return 0
|
||||
|
||||
|
@ -149,12 +149,12 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="52"/>
|
||||
<source>Run command %1 %2</source>
|
||||
<translation>شغّل الأمر 1% 2%</translation>
|
||||
<translation>شغّل الأمر %1 %2</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/ProcessJob.cpp" line="61"/>
|
||||
<source>Running command %1 %2</source>
|
||||
<translation>يشغّل الأمر 1% 2%</translation>
|
||||
<translation>يشغّل الأمر %1 %2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
|
3142
lang/calamares_ca@valencia.ts
Normal file
3142
lang/calamares_ca@valencia.ts
Normal file
File diff suppressed because it is too large
Load Diff
@ -58,7 +58,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="24"/>
|
||||
@ -73,23 +73,23 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="44"/>
|
||||
<source>Modules</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Moduloj</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="57"/>
|
||||
<source>Type:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tipo:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="64"/>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="78"/>
|
||||
<source>none</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>neniu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="71"/>
|
||||
<source>Interface:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Interfaco:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/utils/DebugWindow.ui" line="93"/>
|
||||
@ -422,7 +422,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="154"/>
|
||||
@ -1025,7 +1025,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/EncryptWidget.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/EncryptWidget.ui" line="32"/>
|
||||
@ -1091,7 +1091,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedPage.ui" line="95"/>
|
||||
@ -1349,7 +1349,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/license/LicensePage.cpp" line="123"/>
|
||||
@ -1807,7 +1807,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/KeyboardPage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/KeyboardPage.ui" line="70"/>
|
||||
@ -1825,7 +1825,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/page_usersetup.ui" line="36"/>
|
||||
@ -1962,7 +1962,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="22"/>
|
||||
@ -2162,7 +2162,7 @@ La instalilo forlasos kaj ĉiuj ŝanĝoj perdos.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/page_plasmalnf.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="70"/>
|
||||
@ -2346,7 +2346,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="135"/>
|
||||
@ -2907,7 +2907,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/page_trackingstep.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/page_trackingstep.ui" line="24"/>
|
||||
@ -3063,7 +3063,7 @@ Output:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="14"/>
|
||||
<source>Form</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Formularo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="160"/>
|
||||
|
@ -2051,47 +2051,47 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="166"/>
|
||||
<source>Install %1 <strong>alongside</strong> another operating system.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asenna toisen käyttöjärjestelmän %1 <strong>rinnalle</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="170"/>
|
||||
<source><strong>Erase</strong> disk and install %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>Tyhjennä</strong> levy ja asenna %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="174"/>
|
||||
<source><strong>Replace</strong> a partition with %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>Vaihda</strong> osio jolla on %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="179"/>
|
||||
<source><strong>Manual</strong> partitioning.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>Manuaalinen</strong> osointi.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="192"/>
|
||||
<source>Install %1 <strong>alongside</strong> another operating system on disk <strong>%2</strong> (%3).</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asenna toisen käyttöjärjestelmän %1 <strong>rinnalle</strong> levylle <strong>%2</strong> (%3).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="198"/>
|
||||
<source><strong>Erase</strong> disk <strong>%2</strong> (%3) and install %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>Tyhjennä</strong> levy <strong>%2</strong> (%3) ja asenna %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="204"/>
|
||||
<source><strong>Replace</strong> a partition on disk <strong>%2</strong> (%3) with %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>Korvaa</strong> levyn osio <strong>%2</strong> (%3) jolla on %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="211"/>
|
||||
<source><strong>Manual</strong> partitioning on disk <strong>%1</strong> (%2).</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>Manuaalinen</strong> osiointi levyllä <strong>%1</strong> (%2).</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="219"/>
|
||||
<source>Disk <strong>%1</strong> (%2)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Levy <strong>%1</strong> (%2)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="247"/>
|
||||
@ -2111,7 +2111,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="407"/>
|
||||
<source>An EFI system partition is necessary to start %1.<br/><br/>To configure an EFI system partition, go back and select or create a FAT32 filesystem with the <strong>esp</strong> flag enabled and mount point <strong>%2</strong>.<br/><br/>You can continue without setting up an EFI system partition but your system may fail to start.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>EFI-järjestelmäosio on välttämätön käynnistystä varten %1.<br/><br/>Jos haluat tehdä EFI-järjestelmäosion, mene takaisin ja luo FAT32-tiedostojärjestelmä, jossa on<strong>esp</strong> lippu yhdistettynä asennuspisteen liitokseen <strong>%2</strong>.<br/><br/>Voit jatkaa ilman EFI-järjestelmäosiota, mutta järjestelmä ei ehkä käynnisty.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="420"/>
|
||||
@ -2121,7 +2121,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="421"/>
|
||||
<source>An EFI system partition is necessary to start %1.<br/><br/>A partition was configured with mount point <strong>%2</strong> but its <strong>esp</strong> flag is not set.<br/>To set the flag, go back and edit the partition.<br/><br/>You can continue without setting the flag but your system may fail to start.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>EFI-järjestelmäosio on välttämätön käynnistystä varten %1.<br/><br/>Osio määritettiin liittymäpisteellä, <strong>%2</strong> mutta sen <strong>esp</strong> lippua ei ole asetettu.<br/>Jos haluat asettaa lipun, palaa takaisin ja muokkaa osiota.<br/><br/>Voit jatkaa lippua asettamatta, mutta järjestelmä ei ehkä käynnisty.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="456"/>
|
||||
@ -2131,7 +2131,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="457"/>
|
||||
<source>A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.<br/><br/>There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.<br/>You may continue if you wish, but filesystem unlocking will happen later during system startup.<br/>To encrypt the boot partition, go back and recreate it, selecting <strong>Encrypt</strong> in the partition creation window.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Erillinen käynnistysosio perustettiin yhdessä salatun juuriosion kanssa, mutta käynnistysosio ei ole salattu.<br/><br/>Tällaisissa asetuksissa on tietoturvaongelmia, koska tärkeät järjestelmätiedostot pidetään salaamattomassa osiossa.<br/>Voit jatkaa, jos haluat, mutta tiedostojärjestelmän lukituksen avaaminen tapahtuu myöhemmin järjestelmän käynnistyksen aikana.<br/>Käynnistysosion salaamiseksi siirry takaisin ja luo se uudelleen valitsemalla <strong>Salaa</strong> osion luominen -ikkunassa. </translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="638"/>
|
||||
@ -2141,7 +2141,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="639"/>
|
||||
<source>There are no partitons to install on.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asennettavia osioita ei ole.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2149,13 +2149,13 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="41"/>
|
||||
<source>Plasma Look-and-Feel Job</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Plasman ulkoasu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="73"/>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfJob.cpp" line="74"/>
|
||||
<source>Could not select KDE Plasma Look-and-Feel package</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>KDE-plasman ulkoasupakettia ei voi valita</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2168,12 +2168,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="70"/>
|
||||
<source>Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is set up. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Valitse ulkoasu KDE-plasma -työpöydälle. Voit myös ohittaa tämän vaiheen ja määrittää ulkoasun, kun järjestelmä on asetettu. Klikkaamalla ulkoasun valintaa saat suoran esikatselun tästä ulkoasusta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfPage.cpp" line="76"/>
|
||||
<source>Please choose a look-and-feel for the KDE Plasma Desktop. You can also skip this step and configure the look-and-feel once the system is installed. Clicking on a look-and-feel selection will give you a live preview of that look-and-feel.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Valitse KDE-plasma -työpöydän ulkoasu. Voit myös ohittaa tämän vaiheen ja määrittää ulkoasun, kun järjestelmä on asennettu. Klikkaamalla ulkoasun valintaa saat suoran esikatselun tästä ulkoasusta.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2181,7 +2181,7 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/plasmalnf/PlasmaLnfViewStep.cpp" line="68"/>
|
||||
<source>Look-and-Feel</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ulkoasu</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2194,12 +2194,12 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="122"/>
|
||||
<source>No files configured to save for later.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ei tiedostoja, joita olisi määritetty tallentamaan myöhemmin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/preservefiles/PreserveFiles.cpp" line="176"/>
|
||||
<source>Not all of the configured files could be preserved.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kaikkia määritettyjä tiedostoja ei voitu säilyttää.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2208,7 +2208,8 @@ Asennusohjelma sulkeutuu ja kaikki muutoksesi katoavat.</translation>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="306"/>
|
||||
<source>
|
||||
There was no output from the command.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>
|
||||
Komentoa ei voitu ajaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="307"/>
|
||||
@ -2222,27 +2223,27 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="310"/>
|
||||
<source>External command crashed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ulkoinen komento kaatui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="311"/>
|
||||
<source>Command <i>%1</i> crashed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Komento <i>%1</i> kaatui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="316"/>
|
||||
<source>External command failed to start.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ulkoisen komennon käynnistäminen epäonnistui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="317"/>
|
||||
<source>Command <i>%1</i> failed to start.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Komennon <i>%1</i> käynnistäminen epäonnistui.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="321"/>
|
||||
<source>Internal error when starting command.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Sisäinen virhe käynnistettäessä komentoa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="322"/>
|
||||
@ -2252,22 +2253,22 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="325"/>
|
||||
<source>External command failed to finish.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ulkoinen komento ei onnistunut.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="326"/>
|
||||
<source>Command <i>%1</i> failed to finish in %2 seconds.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Komento <i>%1</i> epäonnistui %2 sekunnissa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="332"/>
|
||||
<source>External command finished with errors.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ulkoinen komento päättyi virheisiin.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="333"/>
|
||||
<source>Command <i>%1</i> finished with exit code %2.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Komento <i>%1</i> päättyi koodiin %2.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2306,7 +2307,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionLabelsView.cpp" line="51"/>
|
||||
<source>Unpartitioned space or unknown partition table</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Osioimaton tila tai tuntematon osion taulu</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionDialogHelpers.cpp" line="47"/>
|
||||
@ -2316,7 +2317,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/modulesystem/RequirementsChecker.cpp" line="62"/>
|
||||
<source>Requirements checking for module <i>%1</i> is complete.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Moduulin vaatimusten tarkistaminen <i>%1</i> on valmis.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamares/locale/Label.cpp" line="44"/>
|
||||
@ -2331,17 +2332,17 @@ Ulostulo:
|
||||
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="34"/>
|
||||
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="48"/>
|
||||
<source>Remove Volume Group named %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Poista asemaryhmä nimeltä %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="41"/>
|
||||
<source>Remove Volume Group named <strong>%1</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Poista asemaryhmä nimeltä <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/RemoveVolumeGroupJob.cpp" line="61"/>
|
||||
<source>The installer failed to remove a volume group named '%1'.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asentaja ei onnistunut poistamaan nimettyä asemaryhmää '%1'.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2394,19 +2395,19 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="228"/>
|
||||
<source><strong>%4</strong><br/><br/>The partition %1 is too small for %2. Please select a partition with capacity at least %3 GiB.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>%4</strong><br/><br/>Osio %1 on liian pieni %2. Valitse osio, jonka kapasiteetti on vähintään %3 GiB.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="251"/>
|
||||
<source><strong>%2</strong><br/><br/>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>%2</strong><br/><br/>EFI-järjestelmäosiota ei löydy mistään tässä järjestelmässä. Palaa takaisin ja käytä manuaalista osiointia määrittämällä %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="262"/>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="279"/>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="303"/>
|
||||
<source><strong>%3</strong><br/><br/>%1 will be installed on %2.<br/><font color="red">Warning: </font>all data on partition %2 will be lost.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><strong>%3</strong><br/><br/>%1 asennetaan %2.<br/><font color="red">Varoitus: </font>kaikki osion %2 tiedot katoavat.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ReplaceWidget.cpp" line="271"/>
|
||||
@ -2424,7 +2425,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="59"/>
|
||||
<source>Resize Filesystem Job</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Muuta tiedostojärjestelmän kokoa</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="172"/>
|
||||
@ -2434,7 +2435,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="173"/>
|
||||
<source>The file-system resize job has an invalid configuration and will not run.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tiedostojärjestelmän koon muutto ei kelpaa eikä sitä suoriteta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="187"/>
|
||||
@ -2446,7 +2447,7 @@ Ulostulo:
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="188"/>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="198"/>
|
||||
<source>Calamares cannot start KPMCore for the file-system resize job.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Calamares ei voi käynnistää KPMCore-tiedostoa tiedostojärjestelmän koon muuttamiseksi.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="206"/>
|
||||
@ -2460,34 +2461,34 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="207"/>
|
||||
<source>The filesystem %1 could not be found in this system, and cannot be resized.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tiedostojärjestelmää %1 ei löydy tästä järjestelmästä, eikä sen kokoa voi muuttaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="208"/>
|
||||
<source>The device %1 could not be found in this system, and cannot be resized.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Laitetta %1 ei löydy tästä järjestelmästä, eikä sen kokoa voi muuttaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="216"/>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="229"/>
|
||||
<source>The filesystem %1 cannot be resized.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tiedostojärjestelmän %1 kokoa ei voi muuttaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="217"/>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="230"/>
|
||||
<source>The device %1 cannot be resized.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Laitteen %1 kokoa ei voi muuttaa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="238"/>
|
||||
<source>The filesystem %1 must be resized, but cannot.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tiedostojärjestelmän %1 kokoa on muutettava, mutta ei onnistu.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/fsresizer/ResizeFSJob.cpp" line="239"/>
|
||||
<source>The device %1 must be resized, but cannot</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Laitteen %1 kokoa on muutettava, mutta ei onnistu.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2500,12 +2501,12 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="55"/>
|
||||
<source>Resize <strong>%2MiB</strong> partition <strong>%1</strong> to <strong>%3MiB</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Muuta <strong>%2MiB</strong> osiota <strong>%1</strong> - <strong>%3MiB</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="66"/>
|
||||
<source>Resizing %2MiB partition %1 to %3MiB.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Muuntaa %2MiB osion %1 to %3MiB.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizePartitionJob.cpp" line="85"/>
|
||||
@ -2527,17 +2528,17 @@ Ulostulo:
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="37"/>
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="55"/>
|
||||
<source>Resize volume group named %1 from %2 to %3.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Muuta %1 levyn kokoa %2:sta %3.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="46"/>
|
||||
<source>Resize volume group named <strong>%1</strong> from <strong>%2</strong> to <strong>%3</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Muuta levyä nimeltä <strong>%1</strong> lähde <strong>%2</strong> - <strong>%3</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/ResizeVolumeGroupJob.cpp" line="70"/>
|
||||
<source>The installer failed to resize a volume group named '%1'.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asentaja ei onnistunut muuttamaan nimettyä levyä '%1'.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2545,27 +2546,28 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/ResultsListWidget.cpp" line="96"/>
|
||||
<source>This computer does not satisfy the minimum requirements for setting up %1.<br/>Setup cannot continue. <a href="#details">Details...</a></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tämä tietokone ei täytä vähimmäisvaatimuksia, %1.<br/>Asennusta ei voi jatkaa. <a href="#details">Yksityiskohdat...</a></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/ResultsListWidget.cpp" line="100"/>
|
||||
<source>This computer does not satisfy the minimum requirements for installing %1.<br/>Installation cannot continue. <a href="#details">Details...</a></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tämä tietokone ei täytä asennuksen vähimmäisvaatimuksia, %1.<br/>Asennus ei voi jatkua. <a href="#details">Yksityiskohdat...</a></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/ResultsListWidget.cpp" line="118"/>
|
||||
<source>This computer does not satisfy some of the recommended requirements for setting up %1.<br/>Setup can continue, but some features might be disabled.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1.<br/>Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/ResultsListWidget.cpp" line="122"/>
|
||||
<source>This computer does not satisfy some of the recommended requirements for installing %1.<br/>Installation can continue, but some features might be disabled.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tämä tietokone ei täytä joitakin suositeltuja vaatimuksia %1.
|
||||
Asennus voi jatkua, mutta jotkin toiminnot saattavat olla pois käytöstä.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/ResultsListWidget.cpp" line="160"/>
|
||||
<source>This program will ask you some questions and set up %2 on your computer.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tämä ohjelma kysyy joitakin kysymyksiä %2 ja asentaa tietokoneeseen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/checker/ResultsListWidget.cpp" line="181"/>
|
||||
@ -2601,12 +2603,12 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetHostNameJob.cpp" line="45"/>
|
||||
<source>Set hostname <strong>%1</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aseta koneellenimi <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetHostNameJob.cpp" line="52"/>
|
||||
<source>Setting hostname %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asetetaan koneellenimi %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetHostNameJob.cpp" line="62"/>
|
||||
@ -2648,7 +2650,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="331"/>
|
||||
<source>Failed to write keyboard configuration to existing /etc/default directory.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Näppäimistöasetusten kirjoittaminen epäonnistui olemassa olevaan /etc/default hakemistoon.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2656,82 +2658,82 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="49"/>
|
||||
<source>Set flags on partition %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aseta liput osioon %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="52"/>
|
||||
<source>Set flags on %1MiB %2 partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aseta liput %1MiB %2 osioon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="56"/>
|
||||
<source>Set flags on new partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aseta liput uuteen osioon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="67"/>
|
||||
<source>Clear flags on partition <strong>%1</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Poista liput osiosta <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="71"/>
|
||||
<source>Clear flags on %1MiB <strong>%2</strong> partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Poista liput %1MiB <strong>%2</strong> osiosta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="85"/>
|
||||
<source>Flag %1MiB <strong>%2</strong> partition as <strong>%3</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lippu %1MiB <strong>%2</strong> osiosta <strong>%3</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="107"/>
|
||||
<source>Clearing flags on %1MiB <strong>%2</strong> partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tyhjennä liput %1MiB <strong>%2</strong> osiossa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="121"/>
|
||||
<source>Setting flags <strong>%3</strong> on %1MiB <strong>%2</strong> partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asetetaan liput <strong>%3</strong> %1MiB <strong>%2</strong> osioon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="75"/>
|
||||
<source>Clear flags on new partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tyhjennä liput uuteen osioon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="79"/>
|
||||
<source>Flag partition <strong>%1</strong> as <strong>%2</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Merkitse osio <strong>%1</strong> - <strong>%2</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="91"/>
|
||||
<source>Flag new partition as <strong>%1</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Merkitse uusi osio <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="103"/>
|
||||
<source>Clearing flags on partition <strong>%1</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lipun poisto osiosta <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="111"/>
|
||||
<source>Clearing flags on new partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Uusien osioiden lippujen poistaminen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="115"/>
|
||||
<source>Setting flags <strong>%2</strong> on partition <strong>%1</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lippujen <strong>%2</strong> asettaminen osioon <strong>%1</strong>.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="127"/>
|
||||
<source>Setting flags <strong>%1</strong> on new partition.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asetetaan liput <strong>%1</strong> uuteen osioon.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/SetPartitionFlagsJob.cpp" line="144"/>
|
||||
<source>The installer failed to set flags on partition %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asennusohjelma ei voinut asettaa lippuja osioon %1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2744,7 +2746,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetPasswordJob.cpp" line="55"/>
|
||||
<source>Setting password for user %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Salasanan asettaminen käyttäjälle %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetPasswordJob.cpp" line="112"/>
|
||||
@ -2764,7 +2766,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetPasswordJob.cpp" line="124"/>
|
||||
<source>passwd terminated with error code %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>passwd päättyi virhekoodiin %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/SetPasswordJob.cpp" line="139"/>
|
||||
@ -2812,7 +2814,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/locale/SetTimezoneJob.cpp" line="97"/>
|
||||
<source>Cannot open /etc/timezone for writing</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ei voi avata /etc/timezone</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2820,7 +2822,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/shellprocess/ShellProcessJob.cpp" line="50"/>
|
||||
<source>Shell Processes Job</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Shell-prosessien työ</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2829,7 +2831,7 @@ Ulostulo:
|
||||
<location filename="../src/qml/calamares/slideshow/SlideCounter.qml" line="36"/>
|
||||
<source>%L1 / %L2</source>
|
||||
<extracomment>slide counter, %1 of %2 (numeric)</extracomment>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%L1 / %L2</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2837,12 +2839,12 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/summary/SummaryPage.cpp" line="57"/>
|
||||
<source>This is an overview of what will happen once you start the setup procedure.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tämä on yleiskuva siitä, mitä tapahtuu, kun asennusohjelma käynnistetään.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/summary/SummaryPage.cpp" line="60"/>
|
||||
<source>This is an overview of what will happen once you start the install procedure.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tämä on yleiskuva siitä, mitä tapahtuu asennuksen aloittamisen jälkeen.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2863,17 +2865,17 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="53"/>
|
||||
<source>Sending installation feedback.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Lähetetään asennuksen palautetta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="88"/>
|
||||
<source>Internal error in install-tracking.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Sisäinen virhe asennuksen seurannassa.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="89"/>
|
||||
<source>HTTP request timed out.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>HTTP -pyyntö aikakatkaistiin.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2881,28 +2883,28 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="104"/>
|
||||
<source>Machine feedback</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Koneen palaute</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="114"/>
|
||||
<source>Configuring machine feedback.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Konekohtaisen palautteen määrittäminen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="133"/>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="136"/>
|
||||
<source>Error in machine feedback configuration.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Virhe koneen palautteen määrityksessä.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="134"/>
|
||||
<source>Could not configure machine feedback correctly, script error %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Konekohtaista palautetta ei voitu määrittää oikein, komentosarjan virhe %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="137"/>
|
||||
<source>Could not configure machine feedback correctly, Calamares error %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Koneen palautetta ei voitu määrittää oikein, Calamares-virhe %1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2915,37 +2917,37 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/page_trackingstep.ui" line="24"/>
|
||||
<source>Placeholder</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Paikkamerkki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/page_trackingstep.ui" line="72"/>
|
||||
<source><html><head/><body><p>By selecting this, you will send <span style=" font-weight:600;">no information at all</span> about your installation.</p></body></html></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><html><head/><body><p>Valitsemalla tämän, <span style=" font-weight:600;">et lähetä mitään</span> tietoja asennuksesta.</p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/page_trackingstep.ui" line="271"/>
|
||||
<source><html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Click here for more information about user feedback</span></a></p></body></html></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><html><head/><body><p><a href="placeholder"><span style=" text-decoration: underline; color:#2980b9;">Klikkaa tästä saadaksesi lisätietoja käyttäjäpalautteesta</span></a></p></body></html></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="44"/>
|
||||
<source>Install tracking helps %1 to see how many users they have, what hardware they install %1 to and (with the last two options below), get continuous information about preferred applications. To see what will be sent, please click the help icon next to each area.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Asentamalla seuranta autat %1 näkemään, kuinka monta käyttäjää heillä on, mitä laitteita he asentavat %1 ja (kahdella viimeisellä vaihtoehdolla), saat jatkuvaa tietoa suosituista sovelluksista. Jos haluat nähdä, mitä tietoa lähetetään, napsauta kunkin alueen vieressä olevaa ohjekuvaketta.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="45"/>
|
||||
<source>By selecting this you will send information about your installation and hardware. This information will <b>only be sent once</b> after the installation finishes.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kun valitset tämän, lähetät tietoja asennuksesta ja laitteistosta. <b>Nämä tiedot lähetetään vain kerran</b> asennuksen päättymisen jälkeen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="46"/>
|
||||
<source>By selecting this you will <b>periodically</b> send information about your installation, hardware and applications, to %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kun valitset tämän, lähetät <b>määräajoin </b> tietoja asennuksesta, laitteistosta ja sovelluksista osoitteeseen %1.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/tracking/TrackingPage.cpp" line="47"/>
|
||||
<source>By selecting this you will <b>regularly</b> send information about your installation, hardware, applications and usage patterns, to %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Kun valitset tämän, lähetät <b>säännöllisesti </b> tietoja asennuksesta, laitteistosta, sovelluksista ja käyttötavoista osoitteeseen %1.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2961,12 +2963,12 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="120"/>
|
||||
<source><small>If more than one person will use this computer, you can create multiple accounts after setup.</small></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><small>Jos useampi kuin yksi henkilö käyttää tätä tietokonetta, voit luoda useita tilejä asennuksen jälkeen.</small></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="126"/>
|
||||
<source><small>If more than one person will use this computer, you can create multiple accounts after installation.</small></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><small>Jos useampi kuin yksi henkilö käyttää tätä tietokonetta, voit luoda useita tilejä asennuksen jälkeen.</small></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="317"/>
|
||||
@ -2976,7 +2978,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="323"/>
|
||||
<source>Your username contains invalid characters. Only lowercase letters and numbers are allowed.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Käyttäjätunnuksesi sisältää virheellisiä merkkejä. Vain pienet kirjaimet ja numerot ovat sallittuja.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/users/UsersPage.cpp" line="361"/>
|
||||
@ -3018,17 +3020,17 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="20"/>
|
||||
<source>List of Physical Volumes</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Fyysisten levyjen luoettelo</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="30"/>
|
||||
<source>Volume Group Name:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aseman ryhmän nimi:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="43"/>
|
||||
<source>Volume Group Type:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Aseman ryhmän tyyppi:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="56"/>
|
||||
@ -3058,7 +3060,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/VolumeGroupBaseDialog.ui" line="142"/>
|
||||
<source>Quantity of LVs:</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Määrä LVs:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -3071,12 +3073,12 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="160"/>
|
||||
<source>&Release notes</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Julkaisutiedot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="150"/>
|
||||
<source>&Known issues</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Tunnetut ongelmat</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="17"/>
|
||||
@ -3087,7 +3089,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="140"/>
|
||||
<source>&Support</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>&Tuki</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="130"/>
|
||||
@ -3097,27 +3099,27 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="76"/>
|
||||
<source><h1>Welcome to the %1 installer.</h1></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>Tervetuloa %1 -asennusohjelmaan.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="75"/>
|
||||
<source><h1>Welcome to the Calamares installer for %1.</h1></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>Tervetuloa Calamares -asennusohjelmaan %1.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="71"/>
|
||||
<source><h1>Welcome to the Calamares setup program for %1.</h1></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>Tervetuloa Calamares -asennusohjelmaan %1.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="72"/>
|
||||
<source><h1>Welcome to %1 setup.</h1></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>Tervetuloa %1 asennukseen.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="90"/>
|
||||
<source>About %1 setup</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Tietoja %1 asetuksista</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="91"/>
|
||||
@ -3127,7 +3129,7 @@ Ulostulo:
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="94"/>
|
||||
<source><h1>%1</h1><br/><strong>%2<br/>for %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2019 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Thanks to <a href="https://calamares.io/team/">the Calamares team</a> and the <a href="https://www.transifex.com/calamares/calamares/">Calamares translators team</a>.<br/><br/><a href="https://calamares.io/">Calamares</a> development is sponsored by <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>%1</h1><br/><strong>%2<br/>- %3</strong><br/><br/>Copyright 2014-2017 Teo Mrnjavac &lt;teo@kde.org&gt;<br/>Copyright 2017-2019 Adriaan de Groot &lt;groot@kde.org&gt;<br/>Kiitokset <a href="https://calamares.io/team/">Calamares-tiimille</a> ja <a href="https://www.transifex.com/calamares/calamares/">Calamares kääntäjille</a>.<br/><br/><a href="https://calamares.io/">Calamaresin</a> kehitystä sponsoroi <br/><a href="http://www.blue-systems.com/">Blue Systems</a> - Liberating Software.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="201"/>
|
||||
|
@ -107,7 +107,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="82"/>
|
||||
<source>Set up</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>セットアップ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="83"/>
|
||||
@ -195,12 +195,12 @@
|
||||
<message numerus="yes">
|
||||
<location filename="../src/libcalamaresui/modulesystem/RequirementsChecker.cpp" line="147"/>
|
||||
<source>Waiting for %n module(s).</source>
|
||||
<translation type="unfinished"><numerusform></numerusform></translation>
|
||||
<translation><numerusform> %n モジュールを待機中。</numerusform></translation>
|
||||
</message>
|
||||
<message numerus="yes">
|
||||
<location filename="../src/libcalamaresui/modulesystem/RequirementsChecker.cpp" line="148"/>
|
||||
<source>(%n second(s))</source>
|
||||
<translation type="unfinished"><numerusform></numerusform></translation>
|
||||
<translation><numerusform>(%n 秒(s))</numerusform></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/modulesystem/RequirementsChecker.cpp" line="152"/>
|
||||
@ -466,7 +466,7 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="969"/>
|
||||
<source>%1 will be shrunk to %2MiB and a new %3MiB partition will be created for %4.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>%1 は %2MiB に縮小され新たに %4 に %3MiB のパーティションが作成されます。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1067"/>
|
||||
@ -709,12 +709,12 @@ The installer will quit and all changes will be lost.</source>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="44"/>
|
||||
<source>Create new %2MiB partition on %4 (%3) with file system %1.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation> %4 (%3) に新たにファイルシステム %1 の %2MiB のパーティションが作成されます。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="55"/>
|
||||
<source>Create new <strong>%2MiB</strong> partition on <strong>%4</strong> (%3) with file system <strong>%1</strong>.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Create new <strong>%4</strong> (%3) に新たにファイルシステム<strong>%1</strong>の <strong>%2MiB</strong> のパーティションが作成されます。</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/partition/jobs/CreatePartitionJob.cpp" line="67"/>
|
||||
|
@ -292,7 +292,7 @@
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="372"/>
|
||||
<source>Cancel setup?</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Anulować ustawianie?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/ViewManager.cpp" line="373"/>
|
||||
@ -1144,7 +1144,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.</translatio
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="132"/>
|
||||
<source>Setup Complete</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ustawianie ukończone</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="133"/>
|
||||
@ -1154,7 +1154,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.</translatio
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="135"/>
|
||||
<source>The setup of %1 is complete.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Ustawianie %1 jest ukończone.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/finished/FinishedViewStep.cpp" line="136"/>
|
||||
@ -1551,7 +1551,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.</translatio
|
||||
<message>
|
||||
<location filename="../src/modules/oemid/OEMViewStep.cpp" line="115"/>
|
||||
<source>OEM Configuration</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Konfiguracja OEM</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/oemid/OEMViewStep.cpp" line="120"/>
|
||||
@ -2140,7 +2140,7 @@ Instalator zostanie zamknięty i wszystkie zmiany zostaną utracone.</translatio
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="639"/>
|
||||
<source>There are no partitons to install on.</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Brak partycji, na których można zainstalować.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@ -2311,7 +2311,7 @@ Wyjście:
|
||||
<message>
|
||||
<location filename="../src/modules/partition/gui/PartitionDialogHelpers.cpp" line="47"/>
|
||||
<source>(no mount point)</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>(brak punktu montowania)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/libcalamaresui/modulesystem/RequirementsChecker.cpp" line="62"/>
|
||||
@ -3083,7 +3083,7 @@ i nie uruchomi się</translation>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="17"/>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="72"/>
|
||||
<source>Select language</source>
|
||||
<translation type="unfinished"/>
|
||||
<translation>Wybierz język</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.ui" line="140"/>
|
||||
@ -3113,7 +3113,7 @@ i nie uruchomi się</translation>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="72"/>
|
||||
<source><h1>Welcome to %1 setup.</h1></source>
|
||||
<translation type="unfinished"/>
|
||||
<translation><h1>Witamy w ustawianiu %1.</h1></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../src/modules/welcome/WelcomePage.cpp" line="90"/>
|
||||
|
BIN
lang/python/ca@valencia/LC_MESSAGES/python.mo
Normal file
BIN
lang/python/ca@valencia/LC_MESSAGES/python.mo
Normal file
Binary file not shown.
372
lang/python/ca@valencia/LC_MESSAGES/python.po
Normal file
372
lang/python/ca@valencia/LC_MESSAGES/python.po
Normal file
@ -0,0 +1,372 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-05-10 19:18-0400\n"
|
||||
"PO-Revision-Date: 2017-08-09 10:34+0000\n"
|
||||
"Language-Team: Catalan (Valencian) (https://www.transifex.com/calamares/teams/20061/ca@valencia/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ca@valencia\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/modules/grubcfg/main.py:37
|
||||
msgid "Configure GRUB."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:38
|
||||
msgid "Mounting partitions."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:187
|
||||
#: src/modules/initcpiocfg/main.py:191
|
||||
#: src/modules/luksopenswaphookcfg/main.py:95
|
||||
#: src/modules/luksopenswaphookcfg/main.py:99 src/modules/rawfs/main.py:171
|
||||
#: src/modules/machineid/main.py:49 src/modules/initramfscfg/main.py:94
|
||||
#: src/modules/initramfscfg/main.py:98 src/modules/openrcdmcryptcfg/main.py:78
|
||||
#: src/modules/openrcdmcryptcfg/main.py:82
|
||||
#: src/modules/luksbootkeyfile/main.py:51 src/modules/fstab/main.py:312
|
||||
#: src/modules/fstab/main.py:316 src/modules/localecfg/main.py:144
|
||||
#: src/modules/networkcfg/main.py:48
|
||||
msgid "Configuration Error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:188
|
||||
#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:172
|
||||
#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79
|
||||
#: src/modules/luksbootkeyfile/main.py:52 src/modules/fstab/main.py:313
|
||||
msgid "No partitions are defined for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:35
|
||||
msgid "Configure systemd services"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:68
|
||||
#: src/modules/services-openrc/main.py:102
|
||||
msgid "Cannot modify service"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:69
|
||||
msgid ""
|
||||
"<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:72
|
||||
#: src/modules/services-systemd/main.py:76
|
||||
msgid "Cannot enable systemd service <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:74
|
||||
msgid "Cannot enable systemd target <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:78
|
||||
msgid "Cannot disable systemd target <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:80
|
||||
msgid "Cannot mask systemd unit <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:82
|
||||
msgid ""
|
||||
"Unknown systemd commands <code>{command!s}</code> and "
|
||||
"<code>{suffix!s}</code> for unit {name!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/umount/main.py:40
|
||||
msgid "Unmount file systems."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:41
|
||||
msgid "Filling up filesystems."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:159
|
||||
msgid "rsync failed with error code {}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:220 src/modules/unpackfs/main.py:238
|
||||
msgid "Failed to unpack image \"{}\""
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:221
|
||||
msgid ""
|
||||
"Failed to find unsquashfs, make sure you have the squashfs-tools package "
|
||||
"installed"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:320
|
||||
msgid "No mount point for root partition"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:321
|
||||
msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:326
|
||||
msgid "Bad mount point for root partition"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:327
|
||||
msgid "rootMountPoint is \"{}\", which does not exist, doing nothing"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:340 src/modules/unpackfs/main.py:347
|
||||
#: src/modules/unpackfs/main.py:352
|
||||
msgid "Bad unsquash configuration"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:341
|
||||
msgid "The filesystem for \"{}\" ({}) is not supported"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:348
|
||||
msgid "The source filesystem \"{}\" does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:353
|
||||
msgid "The destination \"{}\" in the target system is not a directory"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:381
|
||||
msgid "Cannot write KDM configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:382
|
||||
msgid "KDM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:443
|
||||
msgid "Cannot write LXDM configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:444
|
||||
msgid "LXDM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:527
|
||||
msgid "Cannot write LightDM configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:528
|
||||
msgid "LightDM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:602
|
||||
msgid "Cannot configure LightDM"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:603
|
||||
msgid "No LightDM greeter installed."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:634
|
||||
msgid "Cannot write SLIM configuration file"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:635
|
||||
msgid "SLIM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:750
|
||||
msgid "No display managers selected for the displaymanager module."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:751
|
||||
msgid ""
|
||||
"The displaymanagers list is empty or undefined in bothglobalstorage and "
|
||||
"displaymanager.conf."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:831
|
||||
msgid "Display manager configuration was incomplete"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:36
|
||||
msgid "Configuring mkinitcpio."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:192
|
||||
#: src/modules/luksopenswaphookcfg/main.py:100
|
||||
#: src/modules/machineid/main.py:50 src/modules/initramfscfg/main.py:99
|
||||
#: src/modules/openrcdmcryptcfg/main.py:83 src/modules/fstab/main.py:317
|
||||
#: src/modules/localecfg/main.py:145 src/modules/networkcfg/main.py:49
|
||||
msgid "No root mount point is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initcpio/main.py:33
|
||||
msgid "Creating initramfs with mkinitcpio."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initcpio/main.py:47
|
||||
msgid "Process Failed"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initcpio/main.py:48
|
||||
msgid ""
|
||||
"Process <pre>mkinitcpio</pre> failed with error code {!s}. The command was "
|
||||
"<pre>{!s}</pre>."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/luksopenswaphookcfg/main.py:35
|
||||
msgid "Configuring encrypted swap."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/rawfs/main.py:35
|
||||
msgid "Installing data."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:38
|
||||
msgid "Configure OpenRC services"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:66
|
||||
msgid "Cannot add service {name!s} to run-level {level!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:68
|
||||
msgid "Cannot remove service {name!s} from run-level {level!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:70
|
||||
msgid ""
|
||||
"Unknown service-action <code>{arg!s}</code> for service {name!s} in run-"
|
||||
"level {level!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:103
|
||||
msgid ""
|
||||
"<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:110
|
||||
msgid "Target runlevel does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:111
|
||||
msgid ""
|
||||
"The path for runlevel {level!s} is <code>{path!s}</code>, which does not "
|
||||
"exist."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:119
|
||||
msgid "Target service does not exist"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:120
|
||||
msgid ""
|
||||
"The path for service {name!s} is <code>{path!s}</code>, which does not "
|
||||
"exist."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/plymouthcfg/main.py:36
|
||||
msgid "Configure Plymouth theme"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/machineid/main.py:36
|
||||
msgid "Generate machine-id."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:62
|
||||
#, python-format
|
||||
msgid "Processing packages (%(count)d / %(total)d)"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:64 src/modules/packages/main.py:74
|
||||
msgid "Install packages."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/packages/main.py:67
|
||||
#, python-format
|
||||
msgid "Installing one package."
|
||||
msgid_plural "Installing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/modules/packages/main.py:70
|
||||
#, python-format
|
||||
msgid "Removing one package."
|
||||
msgid_plural "Removing %(num)d packages."
|
||||
msgstr[0] ""
|
||||
msgstr[1] ""
|
||||
|
||||
#: src/modules/bootloader/main.py:51
|
||||
msgid "Install bootloader."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/removeuser/main.py:34
|
||||
msgid "Remove live user from target system"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initramfs/main.py:35
|
||||
msgid "Creating initramfs."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initramfs/main.py:49
|
||||
msgid "Failed to run update-initramfs on the target"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initramfs/main.py:50 src/modules/dracut/main.py:59
|
||||
msgid "The exit code was {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/hwclock/main.py:35
|
||||
msgid "Setting hardware clock."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dracut/main.py:36
|
||||
msgid "Creating initramfs with dracut."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dracut/main.py:58
|
||||
msgid "Failed to run dracut on the target"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/initramfscfg/main.py:41
|
||||
msgid "Configuring initramfs."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/openrcdmcryptcfg/main.py:34
|
||||
msgid "Configuring OpenRC dmcrypt service."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:35
|
||||
msgid "Configuring LUKS key file."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:74
|
||||
msgid "Encrypted rootfs setup error"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:75
|
||||
msgid "Rootfs partition {!s} is LUKS but no passphrase found."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:38
|
||||
msgid "Writing fstab."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypython/main.py:44
|
||||
msgid "Dummy python job."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypython/main.py:97
|
||||
msgid "Dummy python step {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/localecfg/main.py:39
|
||||
msgid "Configuring locales."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/networkcfg/main.py:37
|
||||
msgid "Saving network configuration."
|
||||
msgstr ""
|
Binary file not shown.
@ -47,7 +47,7 @@ msgstr "Määritysvirhe"
|
||||
#: src/modules/initramfscfg/main.py:95 src/modules/openrcdmcryptcfg/main.py:79
|
||||
#: src/modules/luksbootkeyfile/main.py:52 src/modules/fstab/main.py:313
|
||||
msgid "No partitions are defined for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
msgstr "Ei ole määritetty käyttämään osioita <pre>{!s}</pre> ."
|
||||
|
||||
#: src/modules/services-systemd/main.py:35
|
||||
msgid "Configure systemd services"
|
||||
@ -61,30 +61,32 @@ msgstr "Palvelua ei voi muokata"
|
||||
#: src/modules/services-systemd/main.py:69
|
||||
msgid ""
|
||||
"<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}."
|
||||
msgstr ""
|
||||
msgstr "<code>systemctl {arg!s}</code> chroot palautti virhe koodin {num!s}."
|
||||
|
||||
#: src/modules/services-systemd/main.py:72
|
||||
#: src/modules/services-systemd/main.py:76
|
||||
msgid "Cannot enable systemd service <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
msgstr "Systemd-palvelua ei saa käyttöön <code>{name!s}</code>."
|
||||
|
||||
#: src/modules/services-systemd/main.py:74
|
||||
msgid "Cannot enable systemd target <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
msgstr "Systemd-kohdetta ei saa käyttöön <code>{name!s}</code>."
|
||||
|
||||
#: src/modules/services-systemd/main.py:78
|
||||
msgid "Cannot disable systemd target <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
msgstr "Systemd-kohdetta ei-voi poistaa käytöstä <code>{name!s}</code>."
|
||||
|
||||
#: src/modules/services-systemd/main.py:80
|
||||
msgid "Cannot mask systemd unit <code>{name!s}</code>."
|
||||
msgstr ""
|
||||
msgstr "Ei voi peittää systemd-yksikköä <code>{name!s}</code>."
|
||||
|
||||
#: src/modules/services-systemd/main.py:82
|
||||
msgid ""
|
||||
"Unknown systemd commands <code>{command!s}</code> and "
|
||||
"<code>{suffix!s}</code> for unit {name!s}."
|
||||
msgstr ""
|
||||
"Tuntematon systemd-komennot <code>{command!s}</code> ja "
|
||||
"<code>{suffix!s}</code> yksikölle {name!s}."
|
||||
|
||||
#: src/modules/umount/main.py:40
|
||||
msgid "Unmount file systems."
|
||||
@ -112,11 +114,11 @@ msgstr ""
|
||||
|
||||
#: src/modules/unpackfs/main.py:320
|
||||
msgid "No mount point for root partition"
|
||||
msgstr ""
|
||||
msgstr "Ei liitoskohtaa juuri root-osiolle"
|
||||
|
||||
#: src/modules/unpackfs/main.py:321
|
||||
msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing"
|
||||
msgstr ""
|
||||
msgstr "globalstorage ei sisällä \"rootMountPoint\" avainta, eikä tee mitään"
|
||||
|
||||
#: src/modules/unpackfs/main.py:326
|
||||
msgid "Bad mount point for root partition"
|
||||
@ -124,7 +126,7 @@ msgstr "Huono kiinnityspiste root-osioon"
|
||||
|
||||
#: src/modules/unpackfs/main.py:327
|
||||
msgid "rootMountPoint is \"{}\", which does not exist, doing nothing"
|
||||
msgstr ""
|
||||
msgstr "rootMountPoint on \"{}\", jota ei ole, eikä tee mitään"
|
||||
|
||||
#: src/modules/unpackfs/main.py:340 src/modules/unpackfs/main.py:347
|
||||
#: src/modules/unpackfs/main.py:352
|
||||
@ -133,39 +135,39 @@ msgstr "Huono epäpuhdas kokoonpano"
|
||||
|
||||
#: src/modules/unpackfs/main.py:341
|
||||
msgid "The filesystem for \"{}\" ({}) is not supported"
|
||||
msgstr ""
|
||||
msgstr "Tiedostojärjestelmää \"{}\" ({}) ei tueta"
|
||||
|
||||
#: src/modules/unpackfs/main.py:348
|
||||
msgid "The source filesystem \"{}\" does not exist"
|
||||
msgstr ""
|
||||
msgstr "Lähde tiedostojärjestelmää \"{}\" ei ole olemassa"
|
||||
|
||||
#: src/modules/unpackfs/main.py:353
|
||||
msgid "The destination \"{}\" in the target system is not a directory"
|
||||
msgstr ""
|
||||
msgstr "Kohdejärjestelmän \"{}\" kohde ei ole hakemisto"
|
||||
|
||||
#: src/modules/displaymanager/main.py:381
|
||||
msgid "Cannot write KDM configuration file"
|
||||
msgstr ""
|
||||
msgstr "KDM-määritystiedostoa ei voi kirjoittaa"
|
||||
|
||||
#: src/modules/displaymanager/main.py:382
|
||||
msgid "KDM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
msgstr "KDM-määritystiedostoa {!s} ei ole olemassa"
|
||||
|
||||
#: src/modules/displaymanager/main.py:443
|
||||
msgid "Cannot write LXDM configuration file"
|
||||
msgstr ""
|
||||
msgstr "LXDM-määritystiedostoa ei voi kirjoittaa"
|
||||
|
||||
#: src/modules/displaymanager/main.py:444
|
||||
msgid "LXDM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
msgstr "LXDM-määritystiedostoa {!s} ei ole olemassa"
|
||||
|
||||
#: src/modules/displaymanager/main.py:527
|
||||
msgid "Cannot write LightDM configuration file"
|
||||
msgstr ""
|
||||
msgstr "LightDM-määritystiedostoa ei voi kirjoittaa"
|
||||
|
||||
#: src/modules/displaymanager/main.py:528
|
||||
msgid "LightDM config file {!s} does not exist"
|
||||
msgstr ""
|
||||
msgstr "LightDM-määritystiedostoa {!s} ei ole olemassa"
|
||||
|
||||
#: src/modules/displaymanager/main.py:602
|
||||
msgid "Cannot configure LightDM"
|
||||
@ -185,13 +187,15 @@ msgstr "SLIM-määritystiedostoa {!s} ei ole olemassa"
|
||||
|
||||
#: src/modules/displaymanager/main.py:750
|
||||
msgid "No display managers selected for the displaymanager module."
|
||||
msgstr ""
|
||||
msgstr "Displaymanager-moduulia varten ei ole valittu näyttönhallintaa."
|
||||
|
||||
#: src/modules/displaymanager/main.py:751
|
||||
msgid ""
|
||||
"The displaymanagers list is empty or undefined in bothglobalstorage and "
|
||||
"displaymanager.conf."
|
||||
msgstr ""
|
||||
"Displaymanager-luettelo on tyhjä tai määrittelemätön, sekä globalstorage, "
|
||||
"että displaymanager.conf tiedostossa."
|
||||
|
||||
#: src/modules/displaymanager/main.py:831
|
||||
msgid "Display manager configuration was incomplete"
|
||||
@ -208,10 +212,11 @@ msgstr "Määritetään mkinitcpio."
|
||||
#: src/modules/localecfg/main.py:145 src/modules/networkcfg/main.py:49
|
||||
msgid "No root mount point is given for <pre>{!s}</pre> to use."
|
||||
msgstr ""
|
||||
"Root-juuri kiinnityspistettä <pre>{!s}</pre> ei ole annettu käytettäväksi."
|
||||
|
||||
#: src/modules/initcpio/main.py:33
|
||||
msgid "Creating initramfs with mkinitcpio."
|
||||
msgstr ""
|
||||
msgstr "Initramfs luominen mkinitcpion avulla."
|
||||
|
||||
#: src/modules/initcpio/main.py:47
|
||||
msgid "Process Failed"
|
||||
@ -222,10 +227,12 @@ msgid ""
|
||||
"Process <pre>mkinitcpio</pre> failed with error code {!s}. The command was "
|
||||
"<pre>{!s}</pre>."
|
||||
msgstr ""
|
||||
"Prosessi <pre>mkinitcpio</pre> epäonnistui virhekoodilla {!s}. Komento oli "
|
||||
"<pre>{!s}</pre>."
|
||||
|
||||
#: src/modules/luksopenswaphookcfg/main.py:35
|
||||
msgid "Configuring encrypted swap."
|
||||
msgstr ""
|
||||
msgstr "Salatun swapin määrittäminen."
|
||||
|
||||
#: src/modules/rawfs/main.py:35
|
||||
msgid "Installing data."
|
||||
@ -233,63 +240,67 @@ msgstr "Asennetaan tietoja."
|
||||
|
||||
#: src/modules/services-openrc/main.py:38
|
||||
msgid "Configure OpenRC services"
|
||||
msgstr ""
|
||||
msgstr "Määritä OpenRC-palvelut"
|
||||
|
||||
#: src/modules/services-openrc/main.py:66
|
||||
msgid "Cannot add service {name!s} to run-level {level!s}."
|
||||
msgstr ""
|
||||
msgstr "Palvelua {name!s} ei-voi lisätä suorituksen tasolle {level!s}."
|
||||
|
||||
#: src/modules/services-openrc/main.py:68
|
||||
msgid "Cannot remove service {name!s} from run-level {level!s}."
|
||||
msgstr ""
|
||||
msgstr "Ei voi poistaa palvelua {name!s} ajo-tasolla {level!s}."
|
||||
|
||||
#: src/modules/services-openrc/main.py:70
|
||||
msgid ""
|
||||
"Unknown service-action <code>{arg!s}</code> for service {name!s} in run-"
|
||||
"level {level!s}."
|
||||
msgstr ""
|
||||
"Tuntematon huoltotoiminto<code>{arg!s}</code> palvelun {name!s} "
|
||||
"palvelutasolle {level!s}."
|
||||
|
||||
#: src/modules/services-openrc/main.py:103
|
||||
msgid ""
|
||||
"<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}."
|
||||
msgstr ""
|
||||
"<code>rc-update {arg!s}</code> palautti chrootissa virhekoodin {num!s}."
|
||||
|
||||
#: src/modules/services-openrc/main.py:110
|
||||
msgid "Target runlevel does not exist"
|
||||
msgstr ""
|
||||
msgstr "Kohde runlevel ei ole olemassa"
|
||||
|
||||
#: src/modules/services-openrc/main.py:111
|
||||
msgid ""
|
||||
"The path for runlevel {level!s} is <code>{path!s}</code>, which does not "
|
||||
"exist."
|
||||
msgstr ""
|
||||
msgstr "Ajotason polku {level!s} on <code>{path!s}</code>, jota ei ole."
|
||||
|
||||
#: src/modules/services-openrc/main.py:119
|
||||
msgid "Target service does not exist"
|
||||
msgstr ""
|
||||
msgstr "Kohdepalvelua ei ole"
|
||||
|
||||
#: src/modules/services-openrc/main.py:120
|
||||
msgid ""
|
||||
"The path for service {name!s} is <code>{path!s}</code>, which does not "
|
||||
"exist."
|
||||
msgstr ""
|
||||
"Palvelun polku {name!s} on <code>{path!s}</code>, jota ei ole olemassa."
|
||||
|
||||
#: src/modules/plymouthcfg/main.py:36
|
||||
msgid "Configure Plymouth theme"
|
||||
msgstr ""
|
||||
msgstr "Määritä Plymouthin teema"
|
||||
|
||||
#: src/modules/machineid/main.py:36
|
||||
msgid "Generate machine-id."
|
||||
msgstr ""
|
||||
msgstr "Luo koneen-id."
|
||||
|
||||
#: src/modules/packages/main.py:62
|
||||
#, python-format
|
||||
msgid "Processing packages (%(count)d / %(total)d)"
|
||||
msgstr ""
|
||||
msgstr "Pakettien käsittely (%(count)d / %(total)d)"
|
||||
|
||||
#: src/modules/packages/main.py:64 src/modules/packages/main.py:74
|
||||
msgid "Install packages."
|
||||
msgstr ""
|
||||
msgstr "Asenna paketteja."
|
||||
|
||||
#: src/modules/packages/main.py:67
|
||||
#, python-format
|
||||
@ -307,72 +318,72 @@ msgstr[1] ""
|
||||
|
||||
#: src/modules/bootloader/main.py:51
|
||||
msgid "Install bootloader."
|
||||
msgstr ""
|
||||
msgstr "Asenna bootloader."
|
||||
|
||||
#: src/modules/removeuser/main.py:34
|
||||
msgid "Remove live user from target system"
|
||||
msgstr ""
|
||||
msgstr "Poista Live-käyttäjä kohdejärjestelmästä"
|
||||
|
||||
#: src/modules/initramfs/main.py:35
|
||||
msgid "Creating initramfs."
|
||||
msgstr ""
|
||||
msgstr "Luodaan initramfs."
|
||||
|
||||
#: src/modules/initramfs/main.py:49
|
||||
msgid "Failed to run update-initramfs on the target"
|
||||
msgstr ""
|
||||
msgstr "Kohteen update-initramfs suorittaminen epäonnistui"
|
||||
|
||||
#: src/modules/initramfs/main.py:50 src/modules/dracut/main.py:59
|
||||
msgid "The exit code was {}"
|
||||
msgstr ""
|
||||
msgstr "Poistumiskoodi oli {}"
|
||||
|
||||
#: src/modules/hwclock/main.py:35
|
||||
msgid "Setting hardware clock."
|
||||
msgstr ""
|
||||
msgstr "Laitteiston kellon asettaminen."
|
||||
|
||||
#: src/modules/dracut/main.py:36
|
||||
msgid "Creating initramfs with dracut."
|
||||
msgstr ""
|
||||
msgstr "Initramfs luominen dracut:lla."
|
||||
|
||||
#: src/modules/dracut/main.py:58
|
||||
msgid "Failed to run dracut on the target"
|
||||
msgstr ""
|
||||
msgstr "Dracut-ohjelman suorittaminen ei onnistunut"
|
||||
|
||||
#: src/modules/initramfscfg/main.py:41
|
||||
msgid "Configuring initramfs."
|
||||
msgstr ""
|
||||
msgstr "Määritetään initramfs."
|
||||
|
||||
#: src/modules/openrcdmcryptcfg/main.py:34
|
||||
msgid "Configuring OpenRC dmcrypt service."
|
||||
msgstr ""
|
||||
msgstr "OpenRC dmcrypt-palvelun määrittäminen."
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:35
|
||||
msgid "Configuring LUKS key file."
|
||||
msgstr ""
|
||||
msgstr "LUKS-avaintiedoston määrittäminen."
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:74
|
||||
msgid "Encrypted rootfs setup error"
|
||||
msgstr ""
|
||||
msgstr "Salattu rootfs asennusvirhe"
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:75
|
||||
msgid "Rootfs partition {!s} is LUKS but no passphrase found."
|
||||
msgstr ""
|
||||
msgstr "Rootfs-osio {!s} on LUKS, mutta salasanaa ei löydy."
|
||||
|
||||
#: src/modules/fstab/main.py:38
|
||||
msgid "Writing fstab."
|
||||
msgstr ""
|
||||
msgstr "Fstab kirjoittaminen."
|
||||
|
||||
#: src/modules/dummypython/main.py:44
|
||||
msgid "Dummy python job."
|
||||
msgstr ""
|
||||
msgstr "Harjoitus python-työ."
|
||||
|
||||
#: src/modules/dummypython/main.py:97
|
||||
msgid "Dummy python step {}"
|
||||
msgstr ""
|
||||
msgstr "Harjoitus python-vaihe {}"
|
||||
|
||||
#: src/modules/localecfg/main.py:39
|
||||
msgid "Configuring locales."
|
||||
msgstr ""
|
||||
msgstr "Määritetään locales."
|
||||
|
||||
#: src/modules/networkcfg/main.py:37
|
||||
msgid "Saving network configuration."
|
||||
msgstr ""
|
||||
msgstr "Tallennetaan verkon määrityksiä."
|
||||
|
Binary file not shown.
@ -25,11 +25,11 @@ msgstr ""
|
||||
|
||||
#: src/modules/grubcfg/main.py:37
|
||||
msgid "Configure GRUB."
|
||||
msgstr ""
|
||||
msgstr "Konfiguracja GRUB."
|
||||
|
||||
#: src/modules/mount/main.py:38
|
||||
msgid "Mounting partitions."
|
||||
msgstr ""
|
||||
msgstr "Montowanie partycji."
|
||||
|
||||
#: src/modules/mount/main.py:150 src/modules/initcpiocfg/main.py:187
|
||||
#: src/modules/initcpiocfg/main.py:191
|
||||
@ -42,7 +42,7 @@ msgstr ""
|
||||
#: src/modules/fstab/main.py:316 src/modules/localecfg/main.py:144
|
||||
#: src/modules/networkcfg/main.py:48
|
||||
msgid "Configuration Error"
|
||||
msgstr ""
|
||||
msgstr "Błąd konfiguracji"
|
||||
|
||||
#: src/modules/mount/main.py:151 src/modules/initcpiocfg/main.py:188
|
||||
#: src/modules/luksopenswaphookcfg/main.py:96 src/modules/rawfs/main.py:172
|
||||
@ -53,12 +53,12 @@ msgstr ""
|
||||
|
||||
#: src/modules/services-systemd/main.py:35
|
||||
msgid "Configure systemd services"
|
||||
msgstr ""
|
||||
msgstr "Konfiguracja usług systemd"
|
||||
|
||||
#: src/modules/services-systemd/main.py:68
|
||||
#: src/modules/services-openrc/main.py:102
|
||||
msgid "Cannot modify service"
|
||||
msgstr ""
|
||||
msgstr "Nie można zmodyfikować usług"
|
||||
|
||||
#: src/modules/services-systemd/main.py:69
|
||||
msgid ""
|
||||
@ -167,11 +167,11 @@ msgstr "Plik konfiguracji LXDM {!s} nie istnieje"
|
||||
|
||||
#: src/modules/displaymanager/main.py:527
|
||||
msgid "Cannot write LightDM configuration file"
|
||||
msgstr "nie można zapisać pliku konfiguracji LightDM"
|
||||
msgstr "Nie można zapisać pliku konfiguracji LightDM"
|
||||
|
||||
#: src/modules/displaymanager/main.py:528
|
||||
msgid "LightDM config file {!s} does not exist"
|
||||
msgstr "Plik konfiguracji {!s} nie istnieje"
|
||||
msgstr "Plik konfiguracji LightDM {!s} nie istnieje"
|
||||
|
||||
#: src/modules/displaymanager/main.py:602
|
||||
msgid "Cannot configure LightDM"
|
||||
@ -179,7 +179,7 @@ msgstr "Nie można skonfigurować LightDM"
|
||||
|
||||
#: src/modules/displaymanager/main.py:603
|
||||
msgid "No LightDM greeter installed."
|
||||
msgstr "Nie zainstalowano ekranu witającego LightDM"
|
||||
msgstr "Nie zainstalowano ekranu powitalnego LightDM."
|
||||
|
||||
#: src/modules/displaymanager/main.py:634
|
||||
msgid "Cannot write SLIM configuration file"
|
||||
@ -191,7 +191,7 @@ msgstr "Plik konfiguracji SLIM {!s} nie istnieje"
|
||||
|
||||
#: src/modules/displaymanager/main.py:750
|
||||
msgid "No display managers selected for the displaymanager module."
|
||||
msgstr "Brak wybranych menedżerów wyświetlania dla modułu displaymanager"
|
||||
msgstr "Brak wybranych menedżerów wyświetlania dla modułu displaymanager."
|
||||
|
||||
#: src/modules/displaymanager/main.py:751
|
||||
msgid ""
|
||||
@ -203,11 +203,11 @@ msgstr ""
|
||||
|
||||
#: src/modules/displaymanager/main.py:831
|
||||
msgid "Display manager configuration was incomplete"
|
||||
msgstr "Konfiguracja menedzera wyświetlania była niekompletna"
|
||||
msgstr "Konfiguracja menedżera wyświetlania była niekompletna"
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:36
|
||||
msgid "Configuring mkinitcpio."
|
||||
msgstr ""
|
||||
msgstr "Konfigurowanie mkinitcpio."
|
||||
|
||||
#: src/modules/initcpiocfg/main.py:192
|
||||
#: src/modules/luksopenswaphookcfg/main.py:100
|
||||
@ -219,11 +219,11 @@ msgstr ""
|
||||
|
||||
#: src/modules/initcpio/main.py:33
|
||||
msgid "Creating initramfs with mkinitcpio."
|
||||
msgstr ""
|
||||
msgstr "Tworzenie initramfs z mkinitcpio."
|
||||
|
||||
#: src/modules/initcpio/main.py:47
|
||||
msgid "Process Failed"
|
||||
msgstr ""
|
||||
msgstr "Błąd procesu"
|
||||
|
||||
#: src/modules/initcpio/main.py:48
|
||||
msgid ""
|
||||
@ -241,7 +241,7 @@ msgstr "Instalowanie danych."
|
||||
|
||||
#: src/modules/services-openrc/main.py:38
|
||||
msgid "Configure OpenRC services"
|
||||
msgstr ""
|
||||
msgstr "Konfiguracja usług OpenRC"
|
||||
|
||||
#: src/modules/services-openrc/main.py:66
|
||||
msgid "Cannot add service {name!s} to run-level {level!s}."
|
||||
@ -274,7 +274,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/services-openrc/main.py:119
|
||||
msgid "Target service does not exist"
|
||||
msgstr ""
|
||||
msgstr "Docelowa usługa nie istnieje"
|
||||
|
||||
#: src/modules/services-openrc/main.py:120
|
||||
msgid ""
|
||||
@ -284,7 +284,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/plymouthcfg/main.py:36
|
||||
msgid "Configure Plymouth theme"
|
||||
msgstr ""
|
||||
msgstr "Konfiguracja motywu Plymouth"
|
||||
|
||||
#: src/modules/machineid/main.py:36
|
||||
msgid "Generate machine-id."
|
||||
@ -319,7 +319,7 @@ msgstr[3] "Usuwanie %(num)d pakietów."
|
||||
|
||||
#: src/modules/bootloader/main.py:51
|
||||
msgid "Install bootloader."
|
||||
msgstr ""
|
||||
msgstr "Instalacja programu rozruchowego."
|
||||
|
||||
#: src/modules/removeuser/main.py:34
|
||||
msgid "Remove live user from target system"
|
||||
@ -327,7 +327,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/initramfs/main.py:35
|
||||
msgid "Creating initramfs."
|
||||
msgstr ""
|
||||
msgstr "Tworzenie initramfs."
|
||||
|
||||
#: src/modules/initramfs/main.py:49
|
||||
msgid "Failed to run update-initramfs on the target"
|
||||
@ -343,7 +343,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/dracut/main.py:36
|
||||
msgid "Creating initramfs with dracut."
|
||||
msgstr ""
|
||||
msgstr "Tworzenie initramfs z dracut."
|
||||
|
||||
#: src/modules/dracut/main.py:58
|
||||
msgid "Failed to run dracut on the target"
|
||||
@ -351,7 +351,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/initramfscfg/main.py:41
|
||||
msgid "Configuring initramfs."
|
||||
msgstr ""
|
||||
msgstr "Konfigurowanie initramfs."
|
||||
|
||||
#: src/modules/openrcdmcryptcfg/main.py:34
|
||||
msgid "Configuring OpenRC dmcrypt service."
|
||||
@ -359,7 +359,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:35
|
||||
msgid "Configuring LUKS key file."
|
||||
msgstr ""
|
||||
msgstr "Konfigurowanie pliku klucza LUKS."
|
||||
|
||||
#: src/modules/luksbootkeyfile/main.py:74
|
||||
msgid "Encrypted rootfs setup error"
|
||||
@ -371,7 +371,7 @@ msgstr ""
|
||||
|
||||
#: src/modules/fstab/main.py:38
|
||||
msgid "Writing fstab."
|
||||
msgstr ""
|
||||
msgstr "Zapisywanie fstab."
|
||||
|
||||
#: src/modules/dummypython/main.py:44
|
||||
msgid "Dummy python job."
|
||||
@ -383,8 +383,8 @@ msgstr "Krok fikcyjny Python {}"
|
||||
|
||||
#: src/modules/localecfg/main.py:39
|
||||
msgid "Configuring locales."
|
||||
msgstr ""
|
||||
msgstr "Konfigurowanie ustawień lokalnych."
|
||||
|
||||
#: src/modules/networkcfg/main.py:37
|
||||
msgid "Saving network configuration."
|
||||
msgstr ""
|
||||
msgstr "Zapisywanie konfiguracji sieci."
|
||||
|
@ -1,7 +1 @@
|
||||
file( GLOB SUBDIRECTORIES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*" )
|
||||
foreach( SUBDIRECTORY ${SUBDIRECTORIES} )
|
||||
set( _sd "${CMAKE_CURRENT_SOURCE_DIR}/${SUBDIRECTORY}" )
|
||||
if( IS_DIRECTORY "${_sd}" AND EXISTS "${_sd}/branding.desc" )
|
||||
calamares_add_branding_subdirectory( ${SUBDIRECTORY} )
|
||||
endif()
|
||||
endforeach()
|
||||
calamares_add_branding_subdirectory( default )
|
||||
|
@ -12,6 +12,7 @@ forking Calamares just for adding some files. Calamares installs
|
||||
CMake support macros to help create branding packages. See the
|
||||
calamares-branding repository for examples of stand-alone branding.
|
||||
|
||||
|
||||
## Examples
|
||||
|
||||
There is one example of a branding component included with Calamares,
|
||||
@ -20,7 +21,9 @@ so that it can be run directly from the build directory for testing purposes:
|
||||
- `default/` is a sample brand for the Generic Linux distribution. It uses
|
||||
the default Calamares icons and a as start-page splash it provides a
|
||||
tag-cloud view of languages. The slideshow is a basic one with a few
|
||||
slides of text and a single image. No translations are provided.
|
||||
slides of text and a single image. Translations (done by hand, not via
|
||||
the usual mechanism of Calamares translations) in English, Arabic, Dutch
|
||||
and French are available.
|
||||
|
||||
Since the slideshow can be **any** QML, it is limited only by your designers
|
||||
imagination and your QML experience. For straightforward presentations,
|
||||
@ -29,6 +32,41 @@ repository.
|
||||
|
||||
[1] https://github.com/calamares/calamares-branding
|
||||
|
||||
|
||||
## API Versions
|
||||
|
||||
In Calamares versions prior to 3.2.10, the QML slideshow was loaded
|
||||
synchronously when the installation page is shown. This can lead to
|
||||
noticeable lag when showing that page. The QML is written start when
|
||||
it is loaded, by responding to the `onComplete` signal.
|
||||
|
||||
Calamares 3.2.10 introduces an API versioning scheme which uses different
|
||||
loading mechanisms.
|
||||
|
||||
- **API version 1** Loads the QML slideshow synchronously, as before.
|
||||
- The QML can use `onComplete` to start timers, etc. for progress
|
||||
or animation.
|
||||
- Translations are supported through `qsTr()` and the language that is
|
||||
in use when the installation slideshow is loaded, will be used
|
||||
(once the installation part is running, it can't change anyway).
|
||||
- **API version 2** Loads the QML slideshow **a**synchronously, on
|
||||
startup (generally during the requirements-checking phase of Calamares)
|
||||
so that no compilation lag is seen.
|
||||
- The QML should **not** use `onComplete`, since the QML is loaded and
|
||||
instantiated at startup. Instead,
|
||||
- The QML should provide functions `onActivate()` and `onLeave()` in the
|
||||
root object of the slideshow. These are called when the slideshow
|
||||
should start (e.g. becomes visible) and stop.
|
||||
- Translations are supported through `qsTr()`. However, since the language
|
||||
can change after the QML is loaded, code should count on the bindings
|
||||
being re-evaluated on language change. Translation updates (e.g. change
|
||||
of language) is **only supported** with Qt 5.10 and later.
|
||||
|
||||
The setting *slideshowAPI* in `branding.desc` indicates which one to use
|
||||
for a given branding slideshow. Which API to use is really a function of
|
||||
the QML. Expect the version 1 API to be deprecated in the course of Calamares 3.3.
|
||||
|
||||
|
||||
## Translations
|
||||
|
||||
QML files in a branding component can be translated. Translations should
|
||||
@ -37,6 +75,9 @@ Qt translation files are supported (`.ts` sources which get compiled into
|
||||
`.qm`). Inside the `lang` subdirectory all translation files must be named
|
||||
according to the scheme `calamares-<component name>_<language>.ts`.
|
||||
|
||||
The example branding component, called *default*, therefore has translation
|
||||
files names `calamares-default_nl.ts` (similar for other languages than Dutch).
|
||||
|
||||
Text in your `show.qml` (or whatever *slideshow* is set to in the descriptor
|
||||
file) should be enclosed in this form for translations
|
||||
|
||||
@ -53,6 +94,7 @@ If you are packaging the branding by hand, use
|
||||
```
|
||||
with all the language suffixes to *file*.
|
||||
|
||||
|
||||
## Presentation
|
||||
|
||||
The default QML classes provided by Calamares can be used for a simple
|
||||
@ -83,7 +125,8 @@ Generally, you will add a few presentation-level elements first,
|
||||
then slides.
|
||||
- For visible navigation arrows, add elements of class *ForwardButton* and
|
||||
*BackwardButton*. Set the *source* property of each to a suitable
|
||||
image. See the `fancy/` example. It is recommended to turn off other
|
||||
image. See the `fancy/` example in the external branding-examples
|
||||
repository. It is recommended to turn off other
|
||||
kinds of navigation when visible navigation is used.
|
||||
- To indicate where the user is, add an element of class *SlideCounter*.
|
||||
This indicates in "n / total" form where the user is in the slideshow.
|
||||
@ -107,6 +150,7 @@ The presentation classes can be used to produce a fairly dry slideshow
|
||||
for the installation process; it is recommended to experiment with the
|
||||
visual effects and classes available in QtQuick.
|
||||
|
||||
|
||||
## Project Layout
|
||||
|
||||
A branding component that is created and installed outside of Calamares
|
||||
|
@ -93,6 +93,17 @@ images:
|
||||
# The slideshow is displayed during execution steps (e.g. when the
|
||||
# installer is actually writing to disk and doing other slow things).
|
||||
slideshow: "show.qml"
|
||||
# There are two available APIs for the slideshow:
|
||||
# - 1 (the default) loads the entire slideshow when the installation-
|
||||
# slideshow page is shown and starts the QML then. The QML
|
||||
# is never stopped (after installation is done, times etc.
|
||||
# continue to fire).
|
||||
# - 2 loads the slideshow on startup and calls onActivate() and
|
||||
# onLeave() in the root object. After the installation is done,
|
||||
# the show is stopped (first by calling onLeave(), then destroying
|
||||
# the QML components).
|
||||
slideshowAPI: 2
|
||||
|
||||
|
||||
# Colors for text and background components.
|
||||
#
|
||||
|
17
src/branding/default/lang/calamares-default_ar.ts
Normal file
17
src/branding/default/lang/calamares-default_ar.ts
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="nl">
|
||||
<context>
|
||||
<name>show</name>
|
||||
<message>
|
||||
<location filename="../show.qml" line="64"/>
|
||||
<source>This is a second Slide element.</source>
|
||||
<translation>عرض الثاني</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../show.qml" line="68"/>
|
||||
<source>This is a third Slide element.</source>
|
||||
<translation>عرض الثالث</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
17
src/branding/default/lang/calamares-default_en.ts
Normal file
17
src/branding/default/lang/calamares-default_en.ts
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="en_US">
|
||||
<context>
|
||||
<name>show</name>
|
||||
<message>
|
||||
<location filename="../show.qml" line="64"/>
|
||||
<source>This is a second Slide element.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../show.qml" line="68"/>
|
||||
<source>This is a third Slide element.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
17
src/branding/default/lang/calamares-default_fr.ts
Normal file
17
src/branding/default/lang/calamares-default_fr.ts
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="nl">
|
||||
<context>
|
||||
<name>show</name>
|
||||
<message>
|
||||
<location filename="../show.qml" line="64"/>
|
||||
<source>This is a second Slide element.</source>
|
||||
<translation>Ceci est la deuxieme affiche.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../show.qml" line="68"/>
|
||||
<source>This is a third Slide element.</source>
|
||||
<translation>La troisième affice ce trouve ici.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
17
src/branding/default/lang/calamares-default_nl.ts
Normal file
17
src/branding/default/lang/calamares-default_nl.ts
Normal file
@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!DOCTYPE TS>
|
||||
<TS version="2.1" language="nl">
|
||||
<context>
|
||||
<name>show</name>
|
||||
<message>
|
||||
<location filename="../show.qml" line="64"/>
|
||||
<source>This is a second Slide element.</source>
|
||||
<translation>Dit is het tweede Dia element.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<location filename="../show.qml" line="68"/>
|
||||
<source>This is a third Slide element.</source>
|
||||
<translation>Dit is het derde Dia element.</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
@ -24,12 +24,17 @@ Presentation
|
||||
{
|
||||
id: presentation
|
||||
|
||||
function nextSlide() {
|
||||
console.log("Next slide");
|
||||
presentation.goToNextSlide();
|
||||
}
|
||||
|
||||
Timer {
|
||||
id: advanceTimer
|
||||
interval: 5000
|
||||
interval: 1000
|
||||
running: false
|
||||
repeat: true
|
||||
onTriggered: presentation.goToNextSlide()
|
||||
onTriggered: nextSlide()
|
||||
}
|
||||
|
||||
Slide {
|
||||
@ -56,12 +61,16 @@ Presentation
|
||||
}
|
||||
|
||||
Slide {
|
||||
centeredText: "This is a second Slide element."
|
||||
centeredText: qsTr("This is a second Slide element.")
|
||||
}
|
||||
|
||||
Slide {
|
||||
centeredText: "This is a third Slide element."
|
||||
centeredText: qsTr("This is a third Slide element.")
|
||||
}
|
||||
|
||||
Component.onCompleted: advanceTimer.running = true
|
||||
function onActivate() {
|
||||
presentation.currentSlide = 0;
|
||||
advanceTimer.running = true
|
||||
console.log("Component activated");
|
||||
}
|
||||
}
|
||||
|
@ -167,16 +167,26 @@ if ( ECM_FOUND AND BUILD_TESTING )
|
||||
${YAMLCPP_LIBRARY}
|
||||
)
|
||||
calamares_automoc( geoiptest )
|
||||
|
||||
|
||||
ecm_add_test(
|
||||
partition/Tests.cpp
|
||||
TEST_NAME
|
||||
libcalamarespartitiontest
|
||||
LINK_LIBRARIES
|
||||
calamares
|
||||
calamares
|
||||
Qt5::Test
|
||||
)
|
||||
calamares_automoc( libcalamarespartitiontest )
|
||||
|
||||
ecm_add_test(
|
||||
locale/Tests.cpp
|
||||
TEST_NAME
|
||||
libcalamareslocaletest
|
||||
LINK_LIBRARIES
|
||||
calamares
|
||||
Qt5::Test
|
||||
)
|
||||
calamares_automoc( libcalamareslocaletest )
|
||||
endif()
|
||||
|
||||
if( BUILD_TESTING )
|
||||
|
@ -64,17 +64,21 @@ Handler::Handler( const QString& implementation, const QString& url, const QStri
|
||||
{
|
||||
bool ok = false;
|
||||
m_type = handlerTypes().find( implementation, ok );
|
||||
#if !defined(QT_XML_LIB)
|
||||
if ( m_type == Type::XML )
|
||||
{
|
||||
m_type = Type::None;
|
||||
cWarning() << "GeoIP style XML is not supported in this version of Calamares.";
|
||||
}
|
||||
#endif
|
||||
if ( !ok )
|
||||
{
|
||||
cWarning() << "GeoIP Style" << implementation << "is not recognized.";
|
||||
cWarning() << "GeoIP style" << implementation << "is not recognized.";
|
||||
}
|
||||
else if ( m_type == Type::None )
|
||||
{
|
||||
cWarning() << "GeoIP style *none* does not do anything.";
|
||||
}
|
||||
#if !defined(QT_XML_LIB)
|
||||
else if ( m_type == Type::XML )
|
||||
{
|
||||
m_type = Type::None;
|
||||
cWarning() << "GeoIP style *xml* is not supported in this version of Calamares.";
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
Handler::~Handler()
|
||||
|
@ -25,7 +25,7 @@
|
||||
#include <QString>
|
||||
#include <QVariantMap>
|
||||
|
||||
namespace CalamaresUtils
|
||||
namespace CalamaresUtils
|
||||
{
|
||||
namespace GeoIP
|
||||
{
|
||||
@ -80,6 +80,8 @@ public:
|
||||
|
||||
bool isValid() const { return m_type != Type::None; }
|
||||
Type type() const { return m_type; }
|
||||
QString url() const { return m_url; }
|
||||
QString selector() const { return m_selector; }
|
||||
|
||||
private:
|
||||
Type m_type;
|
||||
|
87
src/libcalamares/locale/Tests.cpp
Normal file
87
src/libcalamares/locale/Tests.cpp
Normal file
@ -0,0 +1,87 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2019, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "Tests.h"
|
||||
|
||||
#include "locale/LabelModel.h"
|
||||
#include "utils/Logger.h"
|
||||
|
||||
#include <QtTest/QtTest>
|
||||
|
||||
QTEST_GUILESS_MAIN( LocaleTests )
|
||||
|
||||
LocaleTests::LocaleTests()
|
||||
{
|
||||
}
|
||||
|
||||
LocaleTests::~LocaleTests()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
LocaleTests::initTestCase()
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
LocaleTests::testLanguageModelCount()
|
||||
{
|
||||
const auto* m = CalamaresUtils::Locale::availableTranslations();
|
||||
|
||||
QVERIFY( m );
|
||||
QVERIFY( m->rowCount( QModelIndex() ) > 1 );
|
||||
|
||||
int dutch = m->find( QLocale( "nl_NL" ) );
|
||||
QVERIFY( dutch > 0 );
|
||||
QCOMPARE( m->find( "NL" ), dutch );
|
||||
// must be capitals
|
||||
QCOMPARE( m->find( "nl" ), -1 );
|
||||
QCOMPARE( m->find( QLocale( "nl" ) ), dutch );
|
||||
|
||||
// Belgium speaks Dutch as well
|
||||
QCOMPARE( m->find( "BE" ), dutch );
|
||||
}
|
||||
|
||||
void
|
||||
LocaleTests::testEsperanto()
|
||||
{
|
||||
Logger::setupLogLevel( Logger::LOGDEBUG );
|
||||
|
||||
const auto* m = CalamaresUtils::Locale::availableTranslations();
|
||||
|
||||
QVERIFY( m );
|
||||
|
||||
// Cursory test that all the locales found have a sensible language,
|
||||
// and that some specific languages have sensible corresponding data.
|
||||
//
|
||||
// This fails on Esperanto (or, if Esperanto is added to Qt, then
|
||||
// this will pass and the test after the loop will fail.
|
||||
for ( int i = 0; i < m->rowCount( QModelIndex() ); ++i )
|
||||
{
|
||||
const auto& label = m->locale( i );
|
||||
const auto locale = label.locale();
|
||||
cDebug() << label.label() << locale;
|
||||
|
||||
QVERIFY( locale.language() == QLocale::Greek ? locale.script() == QLocale::GreekScript : true );
|
||||
QVERIFY( locale.language() == QLocale::Korean ? locale.script() == QLocale::KoreanScript : true );
|
||||
QVERIFY( locale.language() == QLocale::Lithuanian ? locale.country() == QLocale::Lithuania : true );
|
||||
QVERIFY( locale.language() != QLocale::C );
|
||||
}
|
||||
|
||||
QCOMPARE( QLocale( "eo" ).language(), QLocale::C );
|
||||
}
|
38
src/libcalamares/locale/Tests.h
Normal file
38
src/libcalamares/locale/Tests.h
Normal file
@ -0,0 +1,38 @@
|
||||
/* === This file is part of Calamares - <https://github.com/calamares> ===
|
||||
*
|
||||
* Copyright 2019, Adriaan de Groot <groot@kde.org>
|
||||
*
|
||||
* Calamares is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* Calamares is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with Calamares. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef LIBCALAMARES_LOCALE_TESTS_H
|
||||
#define LIBCALAMARES_LOCALE_TESTS_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
class LocaleTests : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
LocaleTests();
|
||||
~LocaleTests() override;
|
||||
|
||||
private Q_SLOTS:
|
||||
void initTestCase();
|
||||
|
||||
void testLanguageModelCount();
|
||||
void testEsperanto();
|
||||
};
|
||||
|
||||
#endif
|
@ -127,6 +127,7 @@ Branding::Branding( const QString& brandingFilePath,
|
||||
, m_descriptorPath( brandingFilePath )
|
||||
, m_welcomeStyleCalamares( false )
|
||||
, m_welcomeExpandingLogo( true )
|
||||
, m_slideshowAPI( 1 )
|
||||
{
|
||||
cDebug() << "Using Calamares branding file at" << brandingFilePath;
|
||||
|
||||
@ -234,6 +235,14 @@ Branding::Branding( const QString& brandingFilePath,
|
||||
}
|
||||
else
|
||||
bail( "Syntax error in slideshow sequence." );
|
||||
|
||||
int api = doc[ "slideshowAPI" ].IsScalar() ? doc[ "slideshowAPI" ].as<int>() : -1;
|
||||
if ( ( api < 1 ) || ( api > 2 ) )
|
||||
{
|
||||
cWarning() << "Invalid or missing *slideshowAPI* in branding file.";
|
||||
api = 1;
|
||||
}
|
||||
m_slideshowAPI = api;
|
||||
}
|
||||
catch ( YAML::Exception& e )
|
||||
{
|
||||
|
@ -118,6 +118,7 @@ public:
|
||||
|
||||
/** @brief Path to the slideshow QML file, if any. */
|
||||
QString slideshowPath() const { return m_slideshowPath; }
|
||||
int slideshowAPI() const { return m_slideshowAPI; }
|
||||
|
||||
QString string( Branding::StringEntry stringEntry ) const;
|
||||
QString styleString( Branding::StyleEntry styleEntry ) const;
|
||||
@ -172,6 +173,7 @@ private:
|
||||
QMap< QString, QString > m_images;
|
||||
QMap< QString, QString > m_style;
|
||||
QString m_slideshowPath;
|
||||
int m_slideshowAPI;
|
||||
QString m_translationsPathPrefix;
|
||||
|
||||
/** @brief Initialize the simple settings below */
|
||||
|
@ -36,10 +36,40 @@
|
||||
#include <QDir>
|
||||
#include <QLabel>
|
||||
#include <QProgressBar>
|
||||
#include <QVBoxLayout>
|
||||
#include <QtQuickWidgets/QQuickWidget>
|
||||
#include <QQmlComponent>
|
||||
#include <QQmlEngine>
|
||||
#include <QQuickItem>
|
||||
#include <QQuickWidget>
|
||||
#include <QVBoxLayout>
|
||||
|
||||
/** @brief Calls the QML method @p method()
|
||||
*
|
||||
* Pass in only the name of the method (e.g. onActivate). This function
|
||||
* checks if the method exists (with no arguments) before trying to
|
||||
* call it, so that no warnings are printed due to missing methods.
|
||||
*
|
||||
* If there is a return value from the QML method, it is logged (but not otherwise used).
|
||||
*/
|
||||
static void
|
||||
callQMLFunction( QQuickItem* qmlObject, const char* method )
|
||||
{
|
||||
QByteArray methodSignature( method );
|
||||
methodSignature.append( "()" );
|
||||
|
||||
if ( qmlObject && qmlObject->metaObject()->indexOfMethod( methodSignature ) >= 0 )
|
||||
{
|
||||
QVariant returnValue;
|
||||
QMetaObject::invokeMethod( qmlObject, method, Q_RETURN_ARG( QVariant, returnValue ) );
|
||||
if ( !returnValue.isNull() )
|
||||
{
|
||||
cDebug() << "QML" << methodSignature << "returned" << returnValue;
|
||||
}
|
||||
}
|
||||
else if ( qmlObject )
|
||||
{
|
||||
cDebug() << "QML" << methodSignature << "is missing.";
|
||||
}
|
||||
}
|
||||
|
||||
namespace Calamares
|
||||
{
|
||||
@ -47,31 +77,40 @@ namespace Calamares
|
||||
ExecutionViewStep::ExecutionViewStep( QObject* parent )
|
||||
: ViewStep( parent )
|
||||
, m_widget( new QWidget )
|
||||
, m_progressBar( new QProgressBar )
|
||||
, m_label( new QLabel )
|
||||
, m_qmlShow( new QQuickWidget )
|
||||
, m_qmlComponent( nullptr )
|
||||
, m_qmlObject( nullptr )
|
||||
{
|
||||
m_progressBar = new QProgressBar;
|
||||
m_progressBar->setMaximum( 10000 );
|
||||
m_label = new QLabel;
|
||||
QVBoxLayout* layout = new QVBoxLayout( m_widget );
|
||||
QVBoxLayout* innerLayout = new QVBoxLayout;
|
||||
|
||||
m_slideShow = new QQuickWidget;
|
||||
layout->addWidget( m_slideShow );
|
||||
m_progressBar->setMaximum( 10000 );
|
||||
|
||||
m_qmlShow->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
|
||||
m_qmlShow->setResizeMode( QQuickWidget::SizeRootObjectToView );
|
||||
m_qmlShow->engine()->addImportPath( CalamaresUtils::qmlModulesDir().absolutePath() );
|
||||
|
||||
layout->addWidget( m_qmlShow );
|
||||
CalamaresUtils::unmarginLayout( layout );
|
||||
|
||||
layout->addLayout( innerLayout );
|
||||
m_slideShow->setSizePolicy( QSizePolicy::Expanding, QSizePolicy::Expanding );
|
||||
m_slideShow->setResizeMode( QQuickWidget::SizeRootObjectToView );
|
||||
|
||||
m_slideShow->engine()->addImportPath( CalamaresUtils::qmlModulesDir().absolutePath() );
|
||||
|
||||
innerLayout->addSpacing( CalamaresUtils::defaultFontHeight() / 2 );
|
||||
innerLayout->addWidget( m_progressBar );
|
||||
innerLayout->addWidget( m_label );
|
||||
|
||||
cDebug() << "QML import paths:" << Logger::DebugList( m_slideShow->engine()->importPathList() );
|
||||
cDebug() << "QML import paths:" << Logger::DebugList( m_qmlShow->engine()->importPathList() );
|
||||
if ( Branding::instance()->slideshowAPI() == 2 )
|
||||
{
|
||||
cDebug() << "QML load on startup, API 2.";
|
||||
loadQmlV2();
|
||||
}
|
||||
|
||||
connect( JobQueue::instance(), &JobQueue::progress,
|
||||
this, &ExecutionViewStep::updateFromJobQueue );
|
||||
connect( JobQueue::instance(), &JobQueue::progress, this, &ExecutionViewStep::updateFromJobQueue );
|
||||
#if QT_VERSION >= QT_VERSION_CHECK( 5, 10, 0 )
|
||||
CALAMARES_RETRANSLATE( m_qmlShow->engine()->retranslate(); )
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@ -130,22 +169,67 @@ ExecutionViewStep::isAtEnd() const
|
||||
return true;
|
||||
}
|
||||
|
||||
void
|
||||
ExecutionViewStep::loadQmlV2()
|
||||
{
|
||||
if ( !m_qmlComponent && !Calamares::Branding::instance()->slideshowPath().isEmpty() )
|
||||
{
|
||||
m_qmlComponent = new QQmlComponent( m_qmlShow->engine(),
|
||||
QUrl::fromLocalFile( Calamares::Branding::instance()->slideshowPath() ),
|
||||
QQmlComponent::CompilationMode::Asynchronous
|
||||
);
|
||||
connect( m_qmlComponent, &QQmlComponent::statusChanged, this, &ExecutionViewStep::loadQmlV2Complete );
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ExecutionViewStep::loadQmlV2Complete()
|
||||
{
|
||||
if ( m_qmlComponent && m_qmlComponent->isReady() && !m_qmlObject )
|
||||
{
|
||||
cDebug() << "QML loading complete, API 2";
|
||||
// Don't do this again
|
||||
disconnect( m_qmlComponent, &QQmlComponent::statusChanged, this, &ExecutionViewStep::loadQmlV2Complete );
|
||||
|
||||
QObject* o = m_qmlComponent->create();
|
||||
m_qmlObject = qobject_cast< QQuickItem* >( o );
|
||||
if ( !m_qmlObject )
|
||||
delete o;
|
||||
else
|
||||
{
|
||||
// setContent() is public API, but not documented publicly.
|
||||
// It is marked \internal in the Qt sources, but does exactly
|
||||
// what is needed: sets up visual parent by replacing the root
|
||||
// item, and handling resizes.
|
||||
m_qmlShow->setContent( QUrl::fromLocalFile( Calamares::Branding::instance()->slideshowPath() ), m_qmlComponent, m_qmlObject );
|
||||
if ( ViewManager::instance()->currentStep() == this )
|
||||
{
|
||||
// We're alreay visible! Must have been slow QML loading, and we
|
||||
// passed onActivate already.
|
||||
callQMLFunction( m_qmlObject, "onActivate" );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ExecutionViewStep::onActivate()
|
||||
{
|
||||
CALAMARES_RETRANSLATE_WIDGET( m_widget,
|
||||
if ( !Calamares::Branding::instance()->slideshowPath().isEmpty() )
|
||||
m_slideShow->setSource( QUrl::fromLocalFile( Calamares::Branding::instance()
|
||||
->slideshowPath() ) );
|
||||
)
|
||||
|
||||
if ( Branding::instance()->slideshowAPI() == 2 )
|
||||
{
|
||||
// The QML was already loaded in the constructor, need to start it
|
||||
callQMLFunction( m_qmlObject, "onActivate" );
|
||||
}
|
||||
else if ( !Calamares::Branding::instance()->slideshowPath().isEmpty() )
|
||||
{
|
||||
// API version 1 assumes onCompleted is the trigger
|
||||
m_qmlShow->setSource( QUrl::fromLocalFile( Calamares::Branding::instance()->slideshowPath() ) );
|
||||
}
|
||||
|
||||
JobQueue* queue = JobQueue::instance();
|
||||
foreach ( const QString& instanceKey, m_jobInstanceKeys )
|
||||
{
|
||||
Calamares::Module* module = Calamares::ModuleManager::instance()
|
||||
->moduleInstance( instanceKey );
|
||||
Calamares::Module* module = Calamares::ModuleManager::instance()->moduleInstance( instanceKey );
|
||||
if ( module )
|
||||
{
|
||||
auto jl = module->jobs();
|
||||
@ -183,4 +267,16 @@ ExecutionViewStep::updateFromJobQueue( qreal percent, const QString& message )
|
||||
m_label->setText( message );
|
||||
}
|
||||
|
||||
void
|
||||
ExecutionViewStep::onLeave()
|
||||
{
|
||||
// API version 2 is explicitly stopped; version 1 keeps running
|
||||
if ( Branding::instance()->slideshowAPI() == 2 )
|
||||
{
|
||||
callQMLFunction( m_qmlObject, "onLeave" );
|
||||
delete m_qmlObject;
|
||||
m_qmlObject = nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
@ -25,7 +25,10 @@
|
||||
#include <QStringList>
|
||||
|
||||
class QLabel;
|
||||
class QObject;
|
||||
class QProgressBar;
|
||||
class QQmlComponent;
|
||||
class QQuickItem;
|
||||
class QQuickWidget;
|
||||
|
||||
namespace Calamares
|
||||
@ -51,19 +54,26 @@ public:
|
||||
bool isAtEnd() const override;
|
||||
|
||||
void onActivate() override;
|
||||
void onLeave() override;
|
||||
|
||||
JobList jobs() const override;
|
||||
|
||||
void appendJobModuleInstanceKey( const QString& instanceKey );
|
||||
|
||||
public slots:
|
||||
void loadQmlV2Complete();
|
||||
|
||||
private:
|
||||
QWidget* m_widget;
|
||||
QProgressBar* m_progressBar;
|
||||
QLabel* m_label;
|
||||
QQuickWidget* m_slideShow;
|
||||
QQuickWidget* m_qmlShow;
|
||||
QQmlComponent* m_qmlComponent;
|
||||
QQuickItem* m_qmlObject; //< The actual show
|
||||
|
||||
QStringList m_jobInstanceKeys;
|
||||
|
||||
void loadQmlV2(); //< Loads the slideshow QML (from branding) for API version 2
|
||||
void updateFromJobQueue( qreal percent, const QString& message );
|
||||
};
|
||||
|
||||
|
@ -54,6 +54,41 @@ ViewManager::instance( QObject* parent )
|
||||
return s_instance;
|
||||
}
|
||||
|
||||
/** @brief Get a button-sized icon. */
|
||||
static inline QPixmap
|
||||
getButtonIcon( const QString& name )
|
||||
{
|
||||
return Calamares::Branding::instance()->image( name, QSize( 22, 22 ) );
|
||||
}
|
||||
|
||||
static inline void
|
||||
setButtonIcon( QPushButton* button, const QString& name )
|
||||
{
|
||||
auto icon = getButtonIcon( name );
|
||||
if ( button && !icon.isNull() )
|
||||
{
|
||||
button->setIcon( icon );
|
||||
}
|
||||
}
|
||||
|
||||
/** @brief Creates a button with a given icon-name
|
||||
*
|
||||
* Creates a new button as child of @p parent.
|
||||
* Sets the named icon, if it exists, onto the button.
|
||||
* Returns the new button.
|
||||
*
|
||||
* There is a QPushButton constructor that takes an icon,
|
||||
* but it also needs a text and we've got translations
|
||||
* to worry about as well as state.
|
||||
*/
|
||||
static inline QPushButton*
|
||||
makeButton( QWidget* parent, const QString& name )
|
||||
{
|
||||
QPushButton* button = new QPushButton( parent );
|
||||
setButtonIcon( button, name );
|
||||
return button;
|
||||
}
|
||||
|
||||
ViewManager::ViewManager( QObject* parent )
|
||||
: QObject( parent )
|
||||
, m_currentStep( 0 )
|
||||
@ -68,18 +103,13 @@ ViewManager::ViewManager( QObject* parent )
|
||||
m_stack->setContentsMargins( 0, 0, 0, 0 );
|
||||
mainLayout->addWidget( m_stack );
|
||||
|
||||
m_back = new QPushButton( m_widget );
|
||||
m_next = new QPushButton( m_widget );
|
||||
m_quit = new QPushButton( m_widget );
|
||||
// Create buttons and sets an initial icon; the icons may change
|
||||
m_back = makeButton( m_widget, "go-previous" );
|
||||
m_next = makeButton( m_widget, "go-next" );
|
||||
m_quit = makeButton( m_widget, "dialog-cancel" );
|
||||
|
||||
CALAMARES_RETRANSLATE(
|
||||
m_back->setText( tr( "&Back" ) );
|
||||
m_next->setText( tr( "&Next" ) );
|
||||
m_quit->setText( tr( "&Cancel" ) );
|
||||
QString tooltip = Calamares::Settings::instance()->isSetupMode()
|
||||
? tr( "Cancel setup without changing the system." )
|
||||
: tr( "Cancel installation without changing the system." );
|
||||
m_quit->setToolTip( tooltip );
|
||||
updateButtonLabels();
|
||||
)
|
||||
|
||||
QBoxLayout* bottomLayout = new QHBoxLayout;
|
||||
@ -321,27 +351,38 @@ ViewManager::updateButtonLabels()
|
||||
{
|
||||
const auto* const settings = Calamares::Settings::instance();
|
||||
|
||||
QString next = settings->isSetupMode()
|
||||
QString nextIsInstallationStep = settings->isSetupMode()
|
||||
? tr( "&Set up" )
|
||||
: tr( "&Install" );
|
||||
QString complete = settings->isSetupMode()
|
||||
QString quitOnCompleteTooltip = settings->isSetupMode()
|
||||
? tr( "Setup is complete. Close the setup program." )
|
||||
: tr( "The installation is complete. Close the installer." );
|
||||
QString quit = settings->isSetupMode()
|
||||
QString cancelBeforeInstallationTooltip = settings->isSetupMode()
|
||||
? tr( "Cancel setup without changing the system." )
|
||||
: tr( "Cancel installation without changing the system." );
|
||||
|
||||
// If we're going into the execution step / install phase, other message
|
||||
if ( stepIsExecute( m_steps, m_currentStep+1 ) )
|
||||
m_next->setText( next );
|
||||
{
|
||||
m_next->setText( nextIsInstallationStep );
|
||||
setButtonIcon( m_next, "run-install" );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_next->setText( tr( "&Next" ) );
|
||||
setButtonIcon( m_next, "go-next" );
|
||||
}
|
||||
|
||||
// Going back is always simple
|
||||
m_back->setText( tr( "&Back" ) );
|
||||
|
||||
// Cancel button changes label at the end
|
||||
if ( isAtVeryEnd() )
|
||||
{
|
||||
m_quit->setText( tr( "&Done" ) );
|
||||
m_quit->setToolTip( complete );
|
||||
m_quit->setToolTip( quitOnCompleteTooltip );
|
||||
m_quit->setVisible( true ); // At end, always visible and enabled.
|
||||
setButtonIcon( m_quit, "dialog-ok-apply" );
|
||||
updateCancelEnabled( true );
|
||||
}
|
||||
else
|
||||
@ -351,7 +392,8 @@ ViewManager::updateButtonLabels()
|
||||
updateCancelEnabled( !settings->disableCancel() && !( stepIsExecute( m_steps, m_currentStep ) && settings->disableCancelDuringExec() ) );
|
||||
|
||||
m_quit->setText( tr( "&Cancel" ) );
|
||||
m_quit->setToolTip( quit );
|
||||
m_quit->setToolTip( cancelBeforeInstallationTooltip );
|
||||
setButtonIcon( m_quit, "dialog-cancel" );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -198,7 +198,7 @@ Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Ex
|
||||
return;
|
||||
}
|
||||
}
|
||||
cDebug() << "No config file found in" << Logger::DebugList( configCandidates );
|
||||
cDebug() << "No config file for" << m_name << "found anywhere at" << Logger::DebugList( configCandidates );
|
||||
}
|
||||
|
||||
|
||||
|
@ -90,10 +90,14 @@ ModuleManager::doInit()
|
||||
if ( success )
|
||||
{
|
||||
QFileInfo descriptorFileInfo( currentDir.absoluteFilePath( QLatin1Literal( "module.desc") ) );
|
||||
if ( ! ( descriptorFileInfo.exists() && descriptorFileInfo.isReadable() ) )
|
||||
if ( !descriptorFileInfo.exists() )
|
||||
{
|
||||
cDebug() << Q_FUNC_INFO << "unreadable file: "
|
||||
<< descriptorFileInfo.absoluteFilePath();
|
||||
cDebug() << "ModuleManager expected descriptor is missing:" << descriptorFileInfo.absoluteFilePath();
|
||||
continue;
|
||||
}
|
||||
if ( !descriptorFileInfo.isReadable() )
|
||||
{
|
||||
cDebug() << "ModuleManager descriptor file is unreadable:" << descriptorFileInfo.absoluteFilePath();
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -111,13 +115,14 @@ ModuleManager::doInit()
|
||||
}
|
||||
else
|
||||
{
|
||||
cWarning() << "Cannot cd into module directory "
|
||||
<< path << "/" << subdir;
|
||||
cWarning() << "ModuleManager module directory is not accessible:" << path << "/" << subdir;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
cDebug() << "ModuleManager bad search path" << path;
|
||||
{
|
||||
cDebug() << "ModuleManager module search path does not exist:" << path;
|
||||
}
|
||||
}
|
||||
// At this point m_availableModules is filled with whatever was found in the
|
||||
// search paths.
|
||||
@ -359,7 +364,7 @@ ModuleManager::checkDependencies()
|
||||
m_availableDescriptorsByModuleName.erase( it );
|
||||
failed << moduleName;
|
||||
cWarning() << "Module" << moduleName << "requires modules" << Logger::DebugList( unmet );
|
||||
cWarning() << Logger::SubEntry << "but these are not available (listed in settings, or installed).";
|
||||
cWarning() << Logger::SubEntry << "but these are not available (listed in settings, or installed).";
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -5,5 +5,5 @@ type: "job"
|
||||
name: "dummyprocess"
|
||||
interface: "process"
|
||||
chroot: false
|
||||
command: "/bin/sh -c \"touch ~/calamares-dummyprocess\""
|
||||
timeout: 5
|
||||
command: "/bin/sh -c \"sleep 5 ; touch ~/calamares-dummyprocess\""
|
||||
timeout: 8
|
||||
|
Binary file not shown.
@ -0,0 +1,42 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||
# This file is distributed under the same license as the PACKAGE package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-05-10 19:18-0400\n"
|
||||
"PO-Revision-Date: 2016-12-16 12:18+0000\n"
|
||||
"Language-Team: Catalan (Valencian) (https://www.transifex.com/calamares/teams/20061/ca@valencia/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Language: ca@valencia\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:84
|
||||
msgid "Click me!"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:94
|
||||
msgid "A new QLabel."
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:97
|
||||
msgid "Dummy PythonQt ViewStep"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:183
|
||||
msgid "The Dummy PythonQt Job"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:186
|
||||
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
|
||||
msgstr ""
|
||||
|
||||
#: src/modules/dummypythonqt/main.py:190
|
||||
msgid "A status message for Dummy PythonQt Job."
|
||||
msgstr ""
|
@ -128,16 +128,24 @@ WelcomeViewStep::setConfigurationMap( const QVariantMap& configurationMap )
|
||||
CalamaresUtils::getString( geoip, "style" ),
|
||||
CalamaresUtils::getString( geoip, "url" ),
|
||||
CalamaresUtils::getString( geoip, "selector" ) );
|
||||
auto* future = new FWString();
|
||||
connect( future, &FWString::finished, [view=this, f=future, h=handler]()
|
||||
if ( handler->type() != CalamaresUtils::GeoIP::Handler::Type::None )
|
||||
{
|
||||
QString countryResult = f->future().result();
|
||||
cDebug() << "GeoIP result for welcome=" << countryResult;
|
||||
view->setCountry( countryResult );
|
||||
f->deleteLater();
|
||||
delete h;
|
||||
} );
|
||||
future->setFuture( handler->queryRaw() );
|
||||
auto* future = new FWString();
|
||||
connect( future, &FWString::finished, [view=this, f=future, h=handler]()
|
||||
{
|
||||
QString countryResult = f->future().result();
|
||||
cDebug() << "GeoIP result for welcome=" << countryResult;
|
||||
view->setCountry( countryResult, h );
|
||||
f->deleteLater();
|
||||
delete h;
|
||||
} );
|
||||
future->setFuture( handler->queryRaw() );
|
||||
}
|
||||
else
|
||||
{
|
||||
// Would not produce useful country code anyway.
|
||||
delete handler;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -156,12 +164,22 @@ WelcomeViewStep::checkRequirements()
|
||||
return m_requirementsChecker->checkRequirements();
|
||||
}
|
||||
|
||||
static inline void
|
||||
logGeoIPHandler( CalamaresUtils::GeoIP::Handler* handler )
|
||||
{
|
||||
if ( handler )
|
||||
{
|
||||
cDebug() << Logger::SubEntry << "Obtained from" << handler->url() << " (" << static_cast<int>( handler->type() ) << handler->selector() << ')';
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
WelcomeViewStep::setCountry( const QString& countryCode )
|
||||
WelcomeViewStep::setCountry( const QString& countryCode, CalamaresUtils::GeoIP::Handler* handler )
|
||||
{
|
||||
if ( countryCode.length() != 2 )
|
||||
{
|
||||
cDebug() << "Unusable country code" << countryCode;
|
||||
logGeoIPHandler( handler );
|
||||
return;
|
||||
}
|
||||
|
||||
@ -169,6 +187,7 @@ WelcomeViewStep::setCountry( const QString& countryCode )
|
||||
if ( c_l.first == QLocale::Country::AnyCountry )
|
||||
{
|
||||
cDebug() << "Unusable country code" << countryCode;
|
||||
logGeoIPHandler( handler );
|
||||
return;
|
||||
}
|
||||
else
|
||||
|
@ -32,6 +32,14 @@
|
||||
class WelcomePage;
|
||||
class GeneralRequirements;
|
||||
|
||||
namespace CalamaresUtils
|
||||
{
|
||||
namespace GeoIP
|
||||
{
|
||||
class Handler;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
class PLUGINDLLEXPORT WelcomeViewStep : public Calamares::ViewStep
|
||||
{
|
||||
Q_OBJECT
|
||||
@ -57,9 +65,10 @@ public:
|
||||
/** @brief Sets the country that Calamares is running in.
|
||||
*
|
||||
* This (ideally) sets up language and locale settings that are right for
|
||||
* the given 2-letter country code.
|
||||
* the given 2-letter country code. Uses the handler's information (if
|
||||
* given) for error reporting.
|
||||
*/
|
||||
void setCountry( const QString& );
|
||||
void setCountry( const QString&, CalamaresUtils::GeoIP::Handler* handler );
|
||||
|
||||
Calamares::RequirementsList checkRequirements() override;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user