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

This commit is contained in:
Philip Müller 2018-06-21 07:38:30 +02:00
commit 92f2461337
37 changed files with 806 additions and 643 deletions

View File

@ -1,29 +0,0 @@
#### Submission type
- [ ] Bug report
- [ ] Feature Request
#### Info regarding which version of Calamares is used, which Distribution
> …
#### Provide information on how the disks are set up, in detail, with full logs of commands issued
> …
#### What do you expect to have happen when Calamares installs?
> …
#### Describe the issue you encountered
> …
#### Steps to reproduce the problem
> …
#### Include the installation.log (usually ~/Calamares/Calamares/Calamares.log, of the user Calamares runs as):
> …

26
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@ -0,0 +1,26 @@
---
name: Bug report
about: Create a report to help us improve
---
> Hi! Thank you for helping improve Calamares. If you are seeing a problem in installing a specific distribution, you should **probably** report the problem in the distribution's bug tracker, first. That helps filter out issues with packaging, mis-configuration, etc. that Calamares has no control over. If you are a distribution packager or maintainer, this page is for you.
**Describe the bug**
A clear and concise description of what the bug is. Please include 32/64 bit machine details, EFI/BIOS details, and disk setup.
**To Reproduce**
Steps to reproduce the behavior:
1. Go to '...'
2. Click on '....'
3. Scroll down to '....'
4. See error
**Expected behavior**
A clear and concise description of what you expected to happen.
**Screenshots and Logs**
If applicable, add screenshots to help explain your problem. Calamares has an installation log (usually `~/.cache/calamares/session.log`), please check it for confidential information and attach it if possible.
**Additional context**
Add any other context about the problem here.

View File

@ -0,0 +1,17 @@
---
name: Feature request
about: Suggest an idea for this project
---
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

View File

@ -82,11 +82,11 @@ set( CALAMARES_VERSION_RC 0 )
# checks for new languages and misspelled ones are done (that is,
# copy these four lines to four backup lines, add "p", and then update
# the original four lines with the current translations).
set( _tx_complete da pt_PT ro tr_TR zh_TW zh_CN pt_BR fr hr ca lt id cs_CZ )
set( _tx_good sq es pl ja sk it_IT hu ru he de nl bg uk )
set( _tx_ok ast is ar sv el es_MX gl en_GB th fi_FI hi eu sr nb
sl sr@latin mr es_PR kk kn et be )
set( _tx_bad uz lo ur gu fr_CH fa eo ko )
set( _tx_complete ca zh_TW hr cs_CZ da et fr id it_IT lt pl pt_PT es_MX tr_TR )
set( _tx_good sq de pt_BR zh_CN ja ro es sk )
set( _tx_ok hu ru he nl bg uk ast is ko ar sv el gl en_GB
th fi_FI hi eu nb sr sl sr@latin mr es_PR kn kk be )
set( _tx_bad fr_CH gu lo fa ur uz eo )
### Required versions

View File

@ -63,6 +63,7 @@ Comment[he]=קלמארס - אשף התקנה
Icon[hi]=calamares
GenericName[hi]=ि
Comment[hi]=Calamares ि
Name[hi]=ि
Icon[hr]=calamares
GenericName[hr]=Instalacija sustava
Comment[hr]=Calamares Instalacija sustava
@ -87,6 +88,10 @@ Icon[ja]=calamares
GenericName[ja]=
Comment[ja]=Calamares
Name[ja]=
Icon[ko]=
GenericName[ko]=
Comment[ko]=
Name[ko]=
Icon[lt]=calamares
GenericName[lt]=Sistemos diegimas į kompiuterį
Comment[lt]=Calamares Sistemos diegimo programa

View File

@ -1,4 +1,6 @@
<?xml version="1.0" ?><!DOCTYPE TS><TS language="en" version="2.1">
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="en">
<context>
<name>BootInfoWidget</name>
<message>
@ -45,6 +47,14 @@
<translation>%1 (%2)</translation>
</message>
</context>
<context>
<name>Calamares::BlankViewStep</name>
<message>
<location filename="../src/libcalamaresui/viewpages/BlankViewStep.cpp" line="69"/>
<source>Blank Page</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Calamares::DebugWindow</name>
<message>
@ -97,7 +107,7 @@
<context>
<name>Calamares::ExecutionViewStep</name>
<message>
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="78"/>
<location filename="../src/libcalamaresui/ExecutionViewStep.cpp" line="79"/>
<source>Install</source>
<translation>Install</translation>
</message>
@ -105,7 +115,7 @@
<context>
<name>Calamares::JobThread</name>
<message>
<location filename="../src/libcalamares/JobQueue.cpp" line="86"/>
<location filename="../src/libcalamares/JobQueue.cpp" line="101"/>
<source>Done</source>
<translation>Done</translation>
</message>
@ -113,12 +123,12 @@
<context>
<name>Calamares::ProcessJob</name>
<message>
<location filename="../src/libcalamares/ProcessJob.cpp" line="51"/>
<location filename="../src/libcalamares/ProcessJob.cpp" line="52"/>
<source>Run command %1 %2</source>
<translation>Run command %1 %2</translation>
</message>
<message>
<location filename="../src/libcalamares/ProcessJob.cpp" line="60"/>
<location filename="../src/libcalamares/ProcessJob.cpp" line="61"/>
<source>Running command %1 %2</source>
<translation>Running command %1 %2</translation>
</message>
@ -126,32 +136,32 @@
<context>
<name>Calamares::PythonJob</name>
<message>
<location filename="../src/libcalamares/PythonJob.cpp" line="272"/>
<location filename="../src/libcalamares/PythonJob.cpp" line="273"/>
<source>Running %1 operation.</source>
<translation>Running %1 operation.</translation>
</message>
<message>
<location filename="../src/libcalamares/PythonJob.cpp" line="287"/>
<location filename="../src/libcalamares/PythonJob.cpp" line="288"/>
<source>Bad working directory path</source>
<translation>Bad working directory path</translation>
</message>
<message>
<location filename="../src/libcalamares/PythonJob.cpp" line="288"/>
<location filename="../src/libcalamares/PythonJob.cpp" line="289"/>
<source>Working directory %1 for python job %2 is not readable.</source>
<translation>Working directory %1 for python job %2 is not readable.</translation>
</message>
<message>
<location filename="../src/libcalamares/PythonJob.cpp" line="298"/>
<location filename="../src/libcalamares/PythonJob.cpp" line="299"/>
<source>Bad main script file</source>
<translation>Bad main script file</translation>
</message>
<message>
<location filename="../src/libcalamares/PythonJob.cpp" line="299"/>
<location filename="../src/libcalamares/PythonJob.cpp" line="300"/>
<source>Main script file %1 for python job %2 is not readable.</source>
<translation>Main script file %1 for python job %2 is not readable.</translation>
</message>
<message>
<location filename="../src/libcalamares/PythonJob.cpp" line="375"/>
<location filename="../src/libcalamares/PythonJob.cpp" line="376"/>
<source>Boost.Python error in job &quot;%1&quot;.</source>
<translation>Boost.Python error in job &quot;%1&quot;.</translation>
</message>
@ -159,97 +169,112 @@
<context>
<name>Calamares::ViewManager</name>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="73"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="74"/>
<source>&amp;Back</source>
<translation>&amp;Back</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="74"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="257"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="75"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="279"/>
<source>&amp;Next</source>
<translation>&amp;Next</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="75"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="266"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="288"/>
<source>&amp;Cancel</source>
<translation>&amp;Cancel</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="76"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="267"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="77"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="289"/>
<source>Cancel installation without changing the system.</source>
<translation>Cancel installation without changing the system.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="255"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="179"/>
<source>Calamares Initialization Failed</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="180"/>
<source>%1 can not be installed. Calamares was unable to load all of the configured modules. This is a problem with the way Calamares is being used by the distribution.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="185"/>
<source>&lt;br/&gt;The following modules could not be loaded:</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="277"/>
<source>&amp;Install</source>
<translation>&amp;Install</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="303"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="325"/>
<source>Cancel installation?</source>
<translation>Cancel installation?</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="304"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="326"/>
<source>Do you really want to cancel the current install process?
The installer will quit and all changes will be lost.</source>
<translation>Do you really want to cancel the current install process?
The installer will quit and all changes will be lost.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="309"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="331"/>
<source>&amp;Yes</source>
<translation>&amp;Yes</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="310"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="332"/>
<source>&amp;No</source>
<translation>&amp;No</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="162"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="163"/>
<source>&amp;Close</source>
<translation>&amp;Close</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="215"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="237"/>
<source>Continue with setup?</source>
<translation>Continue with setup?</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="216"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="238"/>
<source>The %1 installer is about to make changes to your disk in order to install %2.&lt;br/&gt;&lt;strong&gt;You will not be able to undo these changes.&lt;/strong&gt;</source>
<translation>The %1 installer is about to make changes to your disk in order to install %2.&lt;br/&gt;&lt;strong&gt;You will not be able to undo these changes.&lt;/strong&gt;</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="221"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="243"/>
<source>&amp;Install now</source>
<translation>&amp;Install now</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="222"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="244"/>
<source>Go &amp;back</source>
<translation>Go &amp;back</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="261"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="283"/>
<source>&amp;Done</source>
<translation>&amp;Done</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="262"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="284"/>
<source>The installation is complete. Close the installer.</source>
<translation>The installation is complete. Close the installer.</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="159"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="160"/>
<source>Error</source>
<translation>Error</translation>
</message>
<message>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="160"/>
<location filename="../src/libcalamaresui/ViewManager.cpp" line="161"/>
<source>Installation Failed</source>
<translation>Installation Failed</translation>
</message>
@ -436,17 +461,17 @@ The installer will quit and all changes will be lost.</translation>
<context>
<name>ClearMountsJob</name>
<message>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="45"/>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="46"/>
<source>Clear mounts for partitioning operations on %1</source>
<translation>Clear mounts for partitioning operations on %1</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="53"/>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="54"/>
<source>Clearing mounts for partitioning operations on %1.</source>
<translation>Clearing mounts for partitioning operations on %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="190"/>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="191"/>
<source>Cleared all mounts for %1</source>
<translation>Cleared all mounts for %1</translation>
</message>
@ -554,27 +579,27 @@ The installer will quit and all changes will be lost.</translation>
<translation>Si&amp;ze:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="69"/>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="72"/>
<source>En&amp;crypt</source>
<translation>En&amp;crypt</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="148"/>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="151"/>
<source>Logical</source>
<translation>Logical</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="153"/>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="156"/>
<source>Primary</source>
<translation>Primary</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="170"/>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="173"/>
<source>GPT</source>
<translation>GPT</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="259"/>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.cpp" line="262"/>
<source>Mountpoint already in use. Please select another one.</source>
<translation>Mountpoint already in use. Please select another one.</translation>
</message>
@ -776,7 +801,7 @@ The installer will quit and all changes will be lost.</translation>
<context>
<name>DummyCppJob</name>
<message>
<location filename="../src/modules/dummycpp/DummyCppJob.cpp" line="46"/>
<location filename="../src/modules/dummycpp/DummyCppJob.cpp" line="47"/>
<source>Dummy C++ Job</source>
<translation>Dummy C++ Job</translation>
</message>
@ -834,7 +859,7 @@ The installer will quit and all changes will be lost.</translation>
<translation>Flags:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.cpp" line="268"/>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.cpp" line="269"/>
<source>Mountpoint already in use. Please select another one.</source>
<translation>Mountpoint already in use. Please select another one.</translation>
</message>
@ -1003,12 +1028,12 @@ The installer will quit and all changes will be lost.</translation>
<context>
<name>KeyboardPage</name>
<message>
<location filename="../src/modules/keyboard/KeyboardPage.cpp" line="220"/>
<location filename="../src/modules/keyboard/KeyboardPage.cpp" line="219"/>
<source>Set keyboard model to %1.&lt;br/&gt;</source>
<translation>Set keyboard model to %1.&lt;br/&gt;</translation>
</message>
<message>
<location filename="../src/modules/keyboard/KeyboardPage.cpp" line="222"/>
<location filename="../src/modules/keyboard/KeyboardPage.cpp" line="221"/>
<source>Set keyboard layout to %1/%2.</source>
<translation>Set keyboard layout to %1/%2.</translation>
</message>
@ -1052,64 +1077,64 @@ The installer will quit and all changes will be lost.</translation>
<translation>Form</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="88"/>
<location filename="../src/modules/license/LicensePage.cpp" line="89"/>
<source>I accept the terms and conditions above.</source>
<translation>I accept the terms and conditions above.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="115"/>
<location filename="../src/modules/license/LicensePage.cpp" line="116"/>
<source>&lt;h1&gt;License Agreement&lt;/h1&gt;This setup procedure will install proprietary software that is subject to licensing terms.</source>
<translation>&lt;h1&gt;License Agreement&lt;/h1&gt;This setup procedure will install proprietary software that is subject to licensing terms.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="118"/>
<location filename="../src/modules/license/LicensePage.cpp" line="119"/>
<source>Please review the End User License Agreements (EULAs) above.&lt;br/&gt;If you do not agree with the terms, the setup procedure cannot continue.</source>
<translation>Please review the End User License Agreements (EULAs) above.&lt;br/&gt;If you do not agree with the terms, the setup procedure cannot continue.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="124"/>
<location filename="../src/modules/license/LicensePage.cpp" line="125"/>
<source>&lt;h1&gt;License Agreement&lt;/h1&gt;This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience.</source>
<translation>&lt;h1&gt;License Agreement&lt;/h1&gt;This setup procedure can install proprietary software that is subject to licensing terms in order to provide additional features and enhance the user experience.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="129"/>
<location filename="../src/modules/license/LicensePage.cpp" line="130"/>
<source>Please review the End User License Agreements (EULAs) above.&lt;br/&gt;If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead.</source>
<translation>Please review the End User License Agreements (EULAs) above.&lt;br/&gt;If you do not agree with the terms, proprietary software will not be installed, and open source alternatives will be used instead.</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="159"/>
<location filename="../src/modules/license/LicensePage.cpp" line="160"/>
<source>&lt;strong&gt;%1 driver&lt;/strong&gt;&lt;br/&gt;by %2</source>
<extracomment>%1 is an untranslatable product name, example: Creative Audigy driver</extracomment>
<translation>&lt;strong&gt;%1 driver&lt;/strong&gt;&lt;br/&gt;by %2</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="166"/>
<location filename="../src/modules/license/LicensePage.cpp" line="167"/>
<source>&lt;strong&gt;%1 graphics driver&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</source>
<extracomment>%1 is usually a vendor name, example: Nvidia graphics driver</extracomment>
<translation>&lt;strong&gt;%1 graphics driver&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="172"/>
<location filename="../src/modules/license/LicensePage.cpp" line="173"/>
<source>&lt;strong&gt;%1 browser plugin&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1 browser plugin&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="178"/>
<location filename="../src/modules/license/LicensePage.cpp" line="179"/>
<source>&lt;strong&gt;%1 codec&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1 codec&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="184"/>
<location filename="../src/modules/license/LicensePage.cpp" line="185"/>
<source>&lt;strong&gt;%1 package&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1 package&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="190"/>
<location filename="../src/modules/license/LicensePage.cpp" line="191"/>
<source>&lt;strong&gt;%1&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1&lt;/strong&gt;&lt;br/&gt;&lt;font color=&quot;Grey&quot;&gt;by %2&lt;/font&gt;</translation>
</message>
<message>
<location filename="../src/modules/license/LicensePage.cpp" line="202"/>
<location filename="../src/modules/license/LicensePage.cpp" line="203"/>
<source>&lt;a href=&quot;%1&quot;&gt;view license agreement&lt;/a&gt;</source>
<translation>&lt;a href=&quot;%1&quot;&gt;view license agreement&lt;/a&gt;</translation>
</message>
@ -1583,34 +1608,34 @@ The installer will quit and all changes will be lost.</translation>
<context>
<name>PartitionModel</name>
<message>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="137"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="169"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="138"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="170"/>
<source>Free Space</source>
<translation>Free Space</translation>
</message>
<message>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="141"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="173"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="142"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="174"/>
<source>New partition</source>
<translation>New partition</translation>
</message>
<message>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="257"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="258"/>
<source>Name</source>
<translation>Name</translation>
</message>
<message>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="259"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="260"/>
<source>File System</source>
<translation>File System</translation>
</message>
<message>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="261"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="262"/>
<source>Mount Point</source>
<translation>Mount Point</translation>
</message>
<message>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="263"/>
<location filename="../src/modules/partition/core/PartitionModel.cpp" line="264"/>
<source>Size</source>
<translation>Size</translation>
</message>
@ -1639,8 +1664,8 @@ The installer will quit and all changes will be lost.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="107"/>
<source>&amp;Create</source>
<translation>&amp;Create</translation>
<source>Cre&amp;ate</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.ui" line="114"/>
@ -1658,17 +1683,17 @@ The installer will quit and all changes will be lost.</translation>
<translation>Install boot &amp;loader on:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="169"/>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="171"/>
<source>Are you sure you want to create a new partition table on %1?</source>
<translation>Are you sure you want to create a new partition table on %1?</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="193"/>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="195"/>
<source>Can not create new partition</source>
<translation>Can not create new partition</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="194"/>
<location filename="../src/modules/partition/gui/PartitionPage.cpp" line="196"/>
<source>The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead.</source>
<translation>The partition table on %1 already has %2 primary partitions, and no more can be added. Please remove one primary partition and add an extended partition, instead.</translation>
</message>
@ -1676,97 +1701,97 @@ The installer will quit and all changes will be lost.</translation>
<context>
<name>PartitionViewStep</name>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="70"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="71"/>
<source>Gathering system information...</source>
<translation>Gathering system information...</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="121"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="122"/>
<source>Partitions</source>
<translation>Partitions</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="158"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="159"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system.</source>
<translation>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="162"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="163"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk and install %1.</source>
<translation>&lt;strong&gt;Erase&lt;/strong&gt; disk and install %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="166"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="167"/>
<source>&lt;strong&gt;Replace&lt;/strong&gt; a partition with %1.</source>
<translation>&lt;strong&gt;Replace&lt;/strong&gt; a partition with %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="171"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="172"/>
<source>&lt;strong&gt;Manual&lt;/strong&gt; partitioning.</source>
<translation>&lt;strong&gt;Manual&lt;/strong&gt; partitioning.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="184"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="185"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system on disk &lt;strong&gt;%2&lt;/strong&gt; (%3).</source>
<translation>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system on disk &lt;strong&gt;%2&lt;/strong&gt; (%3).</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="190"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="191"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk &lt;strong&gt;%2&lt;/strong&gt; (%3) and install %1.</source>
<translation>&lt;strong&gt;Erase&lt;/strong&gt; disk &lt;strong&gt;%2&lt;/strong&gt; (%3) and install %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="196"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="197"/>
<source>&lt;strong&gt;Replace&lt;/strong&gt; a partition on disk &lt;strong&gt;%2&lt;/strong&gt; (%3) with %1.</source>
<translation>&lt;strong&gt;Replace&lt;/strong&gt; a partition on disk &lt;strong&gt;%2&lt;/strong&gt; (%3) with %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="203"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="204"/>
<source>&lt;strong&gt;Manual&lt;/strong&gt; partitioning on disk &lt;strong&gt;%1&lt;/strong&gt; (%2).</source>
<translation>&lt;strong&gt;Manual&lt;/strong&gt; partitioning on disk &lt;strong&gt;%1&lt;/strong&gt; (%2).</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="211"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="212"/>
<source>Disk &lt;strong&gt;%1&lt;/strong&gt; (%2)</source>
<translation>Disk &lt;strong&gt;%1&lt;/strong&gt; (%2)</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="239"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="240"/>
<source>Current:</source>
<translation>Current:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="256"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="257"/>
<source>After:</source>
<translation>After:</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="399"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="400"/>
<source>No EFI system partition configured</source>
<translation>No EFI system partition configured</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="400"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="401"/>
<source>An EFI system partition is necessary to start %1.&lt;br/&gt;&lt;br/&gt;To configure an EFI system partition, go back and select or create a FAT32 filesystem with the &lt;strong&gt;esp&lt;/strong&gt; flag enabled and mount point &lt;strong&gt;%2&lt;/strong&gt;.&lt;br/&gt;&lt;br/&gt;You can continue without setting up an EFI system partition but your system may fail to start.</source>
<translation>An EFI system partition is necessary to start %1.&lt;br/&gt;&lt;br/&gt;To configure an EFI system partition, go back and select or create a FAT32 filesystem with the &lt;strong&gt;esp&lt;/strong&gt; flag enabled and mount point &lt;strong&gt;%2&lt;/strong&gt;.&lt;br/&gt;&lt;br/&gt;You can continue without setting up an EFI system partition but your system may fail to start.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="413"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="414"/>
<source>EFI system partition flag not set</source>
<translation>EFI system partition flag not set</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="414"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="415"/>
<source>An EFI system partition is necessary to start %1.&lt;br/&gt;&lt;br/&gt;A partition was configured with mount point &lt;strong&gt;%2&lt;/strong&gt; but its &lt;strong&gt;esp&lt;/strong&gt; flag is not set.&lt;br/&gt;To set the flag, go back and edit the partition.&lt;br/&gt;&lt;br/&gt;You can continue without setting the flag but your system may fail to start.</source>
<translation>An EFI system partition is necessary to start %1.&lt;br/&gt;&lt;br/&gt;A partition was configured with mount point &lt;strong&gt;%2&lt;/strong&gt; but its &lt;strong&gt;esp&lt;/strong&gt; flag is not set.&lt;br/&gt;To set the flag, go back and edit the partition.&lt;br/&gt;&lt;br/&gt;You can continue without setting the flag but your system may fail to start.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="449"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="450"/>
<source>Boot partition not encrypted</source>
<translation>Boot partition not encrypted</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="450"/>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="451"/>
<source>A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.&lt;br/&gt;&lt;br/&gt;There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.&lt;br/&gt;You may continue if you wish, but filesystem unlocking will happen later during system startup.&lt;br/&gt;To encrypt the boot partition, go back and recreate it, selecting &lt;strong&gt;Encrypt&lt;/strong&gt; in the partition creation window.</source>
<translation>A separate boot partition was set up together with an encrypted root partition, but the boot partition is not encrypted.&lt;br/&gt;&lt;br/&gt;There are security concerns with this kind of setup, because important system files are kept on an unencrypted partition.&lt;br/&gt;You may continue if you wish, but filesystem unlocking will happen later during system startup.&lt;br/&gt;To encrypt the boot partition, go back and recreate it, selecting &lt;strong&gt;Encrypt&lt;/strong&gt; in the partition creation window.</translation>
</message>
@ -1912,22 +1937,22 @@ Output:
<translation>Default</translation>
</message>
<message>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="206"/>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="207"/>
<source>unknown</source>
<translation>unknown</translation>
</message>
<message>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="208"/>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="209"/>
<source>extended</source>
<translation>extended</translation>
</message>
<message>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="210"/>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="211"/>
<source>unformatted</source>
<translation>unformatted</translation>
</message>
<message>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="212"/>
<location filename="../src/modules/partition/core/KPMHelpers.cpp" line="213"/>
<source>swap</source>
<translation>swap</translation>
</message>
@ -2109,29 +2134,29 @@ Output:
<context>
<name>SetHostNameJob</name>
<message>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="37"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="38"/>
<source>Set hostname %1</source>
<translation>Set hostname %1</translation>
</message>
<message>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="44"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="45"/>
<source>Set hostname &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation>Set hostname &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message>
<message>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="51"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="52"/>
<source>Setting hostname %1.</source>
<translation>Setting hostname %1.</translation>
</message>
<message>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="61"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="68"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="62"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="69"/>
<source>Internal Error</source>
<translation>Internal Error</translation>
</message>
<message>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="75"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="86"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="76"/>
<location filename="../src/modules/users/SetHostNameJob.cpp" line="87"/>
<source>Cannot write hostname to target system</source>
<translation>Cannot write hostname to target system</translation>
</message>
@ -2583,7 +2608,7 @@ Output:
<context>
<name>WelcomeViewStep</name>
<message>
<location filename="../src/modules/welcome/WelcomeViewStep.cpp" line="51"/>
<location filename="../src/modules/welcome/WelcomeViewStep.cpp" line="52"/>
<source>Welcome</source>
<translation>Welcome</translation>
</message>

View File

@ -343,7 +343,7 @@ El instalador terminará y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="942"/>
<source>%1 will be shrunk to %2MB and a new %3MB partition will be created for %4.</source>
<translation>%1 será reducido a %2MB y una nueva partición de %3MB será creado para %4.</translation>
<translation>%1 será reducido a %2MB y una nueva partición %3MB will be created for %4.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="126"/>
@ -439,12 +439,12 @@ El instalador terminará y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="45"/>
<source>Clear mounts for partitioning operations on %1</source>
<translation>Despejar puntos de montaje para operaciones de particionamiento en %1</translation>
<translation>Borrar puntos de montaje para operaciones de particionamiento en %1</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="53"/>
<source>Clearing mounts for partitioning operations on %1.</source>
<translation>Despejando puntos de montaje para operaciones de particionamiento en %1</translation>
<translation>Borrando puntos de montaje para operaciones de particionamiento en %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/ClearMountsJob.cpp" line="190"/>
@ -499,7 +499,7 @@ El instalador terminará y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/contextualprocess/ContextualProcessJob.cpp" line="117"/>
<source>Contextual Processes Job</source>
<translation>Tareas de procesos contextuales.</translation>
<translation>Tareas de procesos contextuales</translation>
</message>
</context>
<context>
@ -507,7 +507,7 @@ El instalador terminará y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="14"/>
<source>Create a Partition</source>
<translation>Crear una partición</translation>
<translation>Crear una Partición</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/CreatePartitionDialog.ui" line="48"/>
@ -636,7 +636,7 @@ El instalador terminará y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="45"/>
<source>Create new %1 partition table on %2.</source>
<translation> Crear nueva tabla de particiones %1 en %2</translation>
<translation> Crear nueva tabla de partición %1 en %2.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/CreatePartitionTableJob.cpp" line="52"/>
@ -878,7 +878,7 @@ El instalador terminará y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="147"/>
<source>Install %1 on &lt;strong&gt;new&lt;/strong&gt; %2 system partition.</source>
<translation>Instalar %1 en &lt;strong&gt;nueva&lt;/strong&gt; partición de sistema %2.</translation>
<translation>Instalar %1 en &lt;strong&gt;nueva&lt;/strong&gt; %2 partición de sistema.</translation>
</message>
<message>
<location filename="../src/modules/partition/jobs/FillGlobalStorageJob.cpp" line="151"/>
@ -1714,7 +1714,7 @@ El instalador terminará y se perderán todos los cambios.</translation>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="190"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk &lt;strong&gt;%2&lt;/strong&gt; (%3) and install %1.</source>
<translation> &lt;strong&gt;Borrar&lt;/strong&gt; el disco &lt;strong&gt;%2&lt;strong&gt; (%3) e instalar %1.</translation>
<translation>&lt;strong&gt;Borrar&lt;/strong&gt; el disco &lt;strong&gt;%2&lt;strong&gt; (%3) e instalar %1.</translation>
</message>
<message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="196"/>

File diff suppressed because it is too large Load Diff

View File

@ -1325,12 +1325,12 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="201"/>
<source>The password contains less than %1 character classes</source>
<translation type="unfinished"/>
<translation>Пароль содержит менее %1 классов символов</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="202"/>
<source>The password does not contain enough character classes</source>
<translation type="unfinished"/>
<translation>Пароль содержит недостаточно классов символов</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
@ -1345,27 +1345,27 @@ The installer will quit and all changes will be lost.</source>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>Пароль содержит более %1 символов одного и того же класса последовательно</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
<source>The password contains too many characters of the same class consecutively</source>
<translation type="unfinished"/>
<translation>Пароль содержит слишком длинную последовательность символов одного и того же класса</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains monotonic sequence longer than %1 characters</source>
<translation type="unfinished"/>
<translation>Пароль содержит монотонную последовательность длиннее %1 символов</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains too long of a monotonic character sequence</source>
<translation type="unfinished"/>
<translation>Пароль содержит слишком длинную монотонную последовательность символов</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="216"/>
<source>No password supplied</source>
<translation type="unfinished"/>
<translation>Не задан пароль</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="218"/>
@ -1841,7 +1841,9 @@ There was no output from the command.</source>
<source>
Output:
</source>
<translation type="unfinished"/>
<translation>
Вывод:
</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="275"/>
@ -1856,17 +1858,17 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="281"/>
<source>External command failed to start.</source>
<translation type="unfinished"/>
<translation>Не удалось запустить внешнюю команду.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="282"/>
<source>Command &lt;i&gt;%1&lt;/i&gt; failed to start.</source>
<translation type="unfinished"/>
<translation>Не удалось запустить команду &lt;i&gt;%1&lt;/i&gt;.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="286"/>
<source>Internal error when starting command.</source>
<translation type="unfinished"/>
<translation>Внутренняя ошибка при запуске команды.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="287"/>
@ -1876,7 +1878,7 @@ Output:
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="290"/>
<source>External command failed to finish.</source>
<translation type="unfinished"/>
<translation>Не удалось завершить внешнюю команду.</translation>
</message>
<message>
<location filename="../src/libcalamares/utils/CalamaresUtilsSystem.cpp" line="291"/>
@ -2364,12 +2366,12 @@ Output:
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="43"/>
<source>Installation feedback</source>
<translation type="unfinished"/>
<translation>Отчёт об установке</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="53"/>
<source>Sending installation feedback.</source>
<translation type="unfinished"/>
<translation>Отправка отчёта об установке.</translation>
</message>
<message>
<location filename="../src/modules/tracking/TrackingJobs.cpp" line="88"/>

View File

@ -8,51 +8,51 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"POT-Creation-Date: 2018-06-18 07:46-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr "Unmount file systems."
msgstr ""
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr "Dummy python job."
msgstr ""
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr "Dummy python step {}"
msgstr ""
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr "Generate machine-id."
msgstr ""
#: src/modules/packages/main.py:61
#: src/modules/packages/main.py:62
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr "Processing packages (%(count)d / %(total)d)"
msgstr ""
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
#: src/modules/packages/main.py:64 src/modules/packages/main.py:74
msgid "Install packages."
msgstr "Install packages."
msgstr ""
#: src/modules/packages/main.py:66
#: src/modules/packages/main.py:67
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] "Installing one package."
msgstr[1] "Installing %(num)d packages."
msgstr[0] ""
msgstr[1] ""
#: src/modules/packages/main.py:69
#: src/modules/packages/main.py:70
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] "Removing one package."
msgstr[1] "Removing %(num)d packages."
msgstr[0] ""
msgstr[1] ""

Binary file not shown.

View File

@ -20,24 +20,24 @@ msgstr ""
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr ""
msgstr "फ़ाइल सिस्टम माउंट से हटाएँ।"
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr "Dummy python job."
msgstr "डमी पाइथन प्रक्रिया ।"
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr "Dummy python step {}"
msgstr "डमी पाइथन प्रक्रिया की चरण संख्या {}"
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr "machine-id generate करें।"
msgstr "मशीन-आईडी उत्पन्न करें।"
#: src/modules/packages/main.py:61
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr "पैकेज (%(count)d / %(total)d) process किए जा रहे हैं"
msgstr "पैकेज (%(count)d / %(total)d) संसाधित किए जा रहे हैं"
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
msgid "Install packages."

Binary file not shown.

View File

@ -10,6 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Ji-Hyeon Gim <potatogim@potatogim.net>, 2018\n"
"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,37 +20,37 @@ msgstr ""
#: src/modules/umount/main.py:40
msgid "Unmount file systems."
msgstr ""
msgstr "파일 시스템 마운트를 해제합니다."
#: src/modules/dummypython/main.py:44
msgid "Dummy python job."
msgstr ""
msgstr "더미 파이썬 작업."
#: src/modules/dummypython/main.py:97
msgid "Dummy python step {}"
msgstr ""
msgstr "더미 파이썬 단계 {}"
#: src/modules/machineid/main.py:35
msgid "Generate machine-id."
msgstr ""
msgstr "장치 식별자를 생성합니다."
#: src/modules/packages/main.py:61
#, python-format
msgid "Processing packages (%(count)d / %(total)d)"
msgstr ""
msgstr "패키지들을 처리하는 중입니다 (%(count)d / %(total)d)"
#: src/modules/packages/main.py:63 src/modules/packages/main.py:73
msgid "Install packages."
msgstr ""
msgstr "패키지들을 설치합니다."
#: src/modules/packages/main.py:66
#, python-format
msgid "Installing one package."
msgid_plural "Installing %(num)d packages."
msgstr[0] ""
msgstr[0] "%(num)d개의 패키지들을 설치하는 중입니다."
#: src/modules/packages/main.py:69
#, python-format
msgid "Removing one package."
msgid_plural "Removing %(num)d packages."
msgstr[0] ""
msgstr[0] "%(num)d개의 패키지들을 제거하는 중입니다."

View File

@ -29,13 +29,19 @@
#include <yaml-cpp/yaml.h>
static bool
hasValue( const YAML::Node& v )
{
return v.IsDefined() && !v.IsNull();
}
/** Helper function to grab a QString out of the config, and to warn if not present. */
static QString
requireString( const YAML::Node& config, const char* key )
{
if ( config[ key ] )
return QString::fromStdString( config[ key ].as< std::string >() );
auto v = config[ key ];
if ( hasValue(v) )
return QString::fromStdString( v.as< std::string >() );
else
{
cWarning() << "Required settings.conf key" << key << "is missing.";
@ -47,8 +53,9 @@ requireString( const YAML::Node& config, const char* key )
static bool
requireBool( const YAML::Node& config, const char* key, bool d )
{
if ( config[ key ] )
return config[ key ].as< bool >();
auto v = config[ key ];
if ( hasValue(v) )
return v.as< bool >();
else
{
cWarning() << "Required settings.conf key" << key << "is missing.";
@ -175,7 +182,7 @@ Settings::Settings( const QString& settingsFilePath,
m_brandingComponentName = requireString( config, "branding" );
m_promptInstall = requireBool( config, "prompt-install", false );
m_doChroot = requireBool( config, "dont-chroot", true );
m_doChroot = !requireBool( config, "dont-chroot", false );
}
catch ( YAML::Exception& e )
{

View File

@ -26,7 +26,8 @@
#include <QDir>
#include <QPluginLoader>
namespace Calamares {
namespace Calamares
{
Module::Type
@ -55,7 +56,7 @@ CppJobModule::loadSelf()
return;
}
CppJob *cppJob = pf->create< Calamares::CppJob >();
CppJob* cppJob = pf->create< Calamares::CppJob >();
if ( !cppJob )
{
cDebug() << Q_FUNC_INFO << m_loader->errorString();
@ -68,7 +69,7 @@ CppJobModule::loadSelf()
cppJob->setModuleInstanceKey( instanceKey() );
cppJob->setConfigurationMap( m_configurationMap );
m_job = Calamares::job_ptr( static_cast< Calamares::Job * >( cppJob ) );
m_job = Calamares::job_ptr( static_cast< Calamares::Job* >( cppJob ) );
m_loaded = true;
cDebug() << "CppJobModule" << instanceKey() << "loading complete.";
}

View File

@ -71,8 +71,7 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
QString typeString = moduleDescriptor.value( "type" ).toString();
QString intfString = moduleDescriptor.value( "interface" ).toString();
if ( typeString.isEmpty() ||
intfString.isEmpty() )
if ( typeString.isEmpty() || intfString.isEmpty() )
{
cError() << "Bad module descriptor format" << instanceId;
return nullptr;
@ -80,9 +79,7 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
if ( ( typeString == "view" ) || ( typeString == "viewmodule" ) )
{
if ( intfString == "qtplugin" )
{
m.reset( new ViewModule() );
}
else if ( intfString == "pythonqt" )
{
#ifdef WITH_PYTHONQT
@ -97,13 +94,9 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
else if ( typeString == "job" )
{
if ( intfString == "qtplugin" )
{
m.reset( new CppJobModule() );
}
else if ( intfString == "process" )
{
m.reset( new ProcessJobModule() );
}
else if ( intfString == "python" )
{
#ifdef WITH_PYTHON
@ -121,8 +114,8 @@ Module::fromDescriptor( const QVariantMap& moduleDescriptor,
if ( !m )
{
cError() << "Bad module type (" << typeString
<< ") or interface string (" << intfString
<< ") for module " << instanceId;
<< ") or interface string (" << intfString
<< ") for module " << instanceId;
return nullptr;
}
@ -168,8 +161,7 @@ Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Ex
{
configFilesByPriority.append(
QDir( QDir::currentPath() ).absoluteFilePath(
QString( "src/modules/%1/%2" ).arg( m_name )
.arg( configFileName ) ) );
QString( "src/modules/%1/%2" ).arg( m_name ).arg( configFileName ) ) );
}
configFilesByPriority.append(
@ -201,8 +193,8 @@ Module::loadConfigurationFile( const QString& configFileName ) //throws YAML::Ex
m_configurationMap = CalamaresUtils::yamlMapToVariant( doc ).toMap();
m_emergency = m_maybe_emergency
&& m_configurationMap.contains( EMERGENCY )
&& m_configurationMap[ EMERGENCY ].toBool();
&& m_configurationMap.contains( EMERGENCY )
&& m_configurationMap[ EMERGENCY ].toBool();
return;
}
else
@ -228,8 +220,7 @@ Module::instanceId() const
QString
Module::instanceKey() const
{
return QString( "%1@%2" ).arg( m_name )
.arg( m_instanceId );
return QString( "%1@%2" ).arg( m_name ).arg( m_instanceId );
}
@ -297,9 +288,7 @@ Module::initFrom( const QVariantMap& moduleDescriptor )
m_name = moduleDescriptor.value( "name" ).toString();
if ( moduleDescriptor.contains( EMERGENCY ) )
{
m_maybe_emergency = moduleDescriptor[ EMERGENCY ].toBool();
}
}
} //ns

View File

@ -147,7 +147,10 @@ public:
* @brief isLoaded reports on the loaded status of a module.
* @return true if the module's loading phase has finished, otherwise false.
*/
bool isLoaded() const { return m_loaded; }
bool isLoaded() const
{
return m_loaded;
}
/**
* @brief loadSelf initialized the module.
@ -164,7 +167,10 @@ public:
* are not run (in the common case where there is only
* one exec block, this doesn't really matter).
*/
bool isEmergency() const { return m_emergency; }
bool isEmergency() const
{
return m_emergency;
}
/**
* @brief jobs returns any jobs exposed by this module.

View File

@ -60,10 +60,8 @@ ModuleManager::ModuleManager( const QStringList& paths, QObject* parent )
ModuleManager::~ModuleManager()
{
// The map is populated with Module::fromDescriptor(), which allocates on the heap.
for( auto moduleptr : m_loadedModulesByInstanceKey )
{
for ( auto moduleptr : m_loadedModulesByInstanceKey )
delete moduleptr;
}
}
@ -119,14 +117,12 @@ ModuleManager::doInit()
else
{
cWarning() << "Cannot cd into module directory "
<< path << "/" << subdir;
<< path << "/" << subdir;
}
}
}
else
{
cDebug() << "ModuleManager bad search path" << path;
}
}
// At this point m_availableModules is filled with whatever was found in the
// search paths.
@ -182,10 +178,10 @@ ModuleManager::loadModules()
{
QStringList failedModules;
Settings::InstanceDescriptionList customInstances =
Settings::instance()->customModuleInstances();
Settings::instance()->customModuleInstances();
const auto modulesSequence = Settings::instance()->modulesSequence();
for ( const auto &modulePhase : modulesSequence )
for ( const auto& modulePhase : modulesSequence )
{
ModuleAction currentAction = modulePhase.first;
@ -197,7 +193,7 @@ ModuleManager::loadModules()
QString instanceId;
QString configFileName;
if ( moduleEntrySplit.length() < 1 ||
moduleEntrySplit.length() > 2 )
moduleEntrySplit.length() > 2 )
{
cError() << "Wrong module entry format for module" << moduleEntry;
failedModules.append( moduleEntry );
@ -208,20 +204,20 @@ ModuleManager::loadModules()
configFileName = QString( "%1.conf" ).arg( moduleName );
if ( !m_availableDescriptorsByModuleName.contains( moduleName ) ||
m_availableDescriptorsByModuleName.value( moduleName ).isEmpty() )
m_availableDescriptorsByModuleName.value( moduleName ).isEmpty() )
{
cError() << "Module" << moduleName << "not found in module search paths."
<< Logger::DebugList( m_paths );
<< Logger::DebugList( m_paths );
failedModules.append( moduleName );
continue;
}
if ( moduleName != instanceId ) //means this is a custom instance
{
if ( int found = findCustomInstance( customInstances, moduleName, instanceId ) > -1 )
{
int found = findCustomInstance( customInstances, moduleName, instanceId );
if ( found > -1 )
configFileName = customInstances[ found ].value( "config" );
}
else //ought to be a custom instance, but cannot find instance entry
{
cError() << "Custom instance" << moduleEntry << "not found in custom instances section.";
@ -252,9 +248,7 @@ ModuleManager::loadModules()
}
if ( thisModule && thisModule->isLoaded() )
{
cDebug() << "Module" << instanceKey << "already loaded.";
}
else
{
thisModule =
@ -316,10 +310,10 @@ ModuleManager::checkDependencies()
forever
{
for ( auto it = m_availableDescriptorsByModuleName.begin();
it != m_availableDescriptorsByModuleName.end(); ++it )
it != m_availableDescriptorsByModuleName.end(); ++it )
{
foreach ( const QString& depName,
(*it).value( "requiredModules" ).toStringList() )
( *it ).value( "requiredModules" ).toStringList() )
{
if ( !m_availableDescriptorsByModuleName.contains( depName ) )
{

View File

@ -22,7 +22,8 @@
#include <QDir>
namespace Calamares {
namespace Calamares
{
Module::Type
@ -68,23 +69,17 @@ ProcessJobModule::initFrom( const QVariantMap& moduleDescriptor )
m_workingPath = directory.absolutePath();
if ( !moduleDescriptor.value( "command" ).toString().isEmpty() )
{
m_command = moduleDescriptor.value( "command" ).toString();
}
m_secondsTimeout = 30;
if ( moduleDescriptor.contains( "timeout" ) &&
!moduleDescriptor.value( "timeout" ).isNull() )
{
!moduleDescriptor.value( "timeout" ).isNull() )
m_secondsTimeout = moduleDescriptor.value( "timeout" ).toInt();
}
m_runInChroot = false;
if ( moduleDescriptor.contains( "chroot" )&&
!moduleDescriptor.value( "chroot" ).isNull() )
{
!moduleDescriptor.value( "chroot" ).isNull() )
m_runInChroot = moduleDescriptor.value( "chroot" ).toBool();
}
}

View File

@ -23,7 +23,8 @@
#include <QDir>
namespace Calamares {
namespace Calamares
{
Module::Type
@ -46,9 +47,7 @@ PythonJobModule::loadSelf()
if ( m_loaded )
return;
m_job = Calamares::job_ptr( new PythonJob( m_scriptFileName,
m_workingPath,
m_configurationMap ) );
m_job = Calamares::job_ptr( new PythonJob( m_scriptFileName, m_workingPath, m_configurationMap ) );
m_loaded = true;
}
@ -68,9 +67,7 @@ PythonJobModule::initFrom( const QVariantMap& moduleDescriptor )
m_workingPath = directory.absolutePath();
if ( !moduleDescriptor.value( "script" ).toString().isEmpty() )
{
m_scriptFileName = moduleDescriptor.value( "script" ).toString();
}
}

View File

@ -23,7 +23,8 @@
#include "UiDllMacro.h"
namespace Calamares {
namespace Calamares
{
class UIDLLEXPORT PythonJobModule : public Module
{

View File

@ -40,7 +40,8 @@
static QPointer< GlobalStorage > s_gs = nullptr;
static QPointer< Utils > s_utils = nullptr;
namespace Calamares {
namespace Calamares
{
Module::Type
PythonQtViewModule::type() const
@ -98,20 +99,21 @@ PythonQtViewModule::loadSelf()
cala.addObject( "utils", s_utils );
// Append configuration object, in module PythonQt.calamares
cala.addVariable("configuration", m_configurationMap);
cala.addVariable( "configuration", m_configurationMap );
// Basic stdout/stderr handling
QObject::connect( PythonQt::self(), &PythonQt::pythonStdOut,
[]( const QString& message )
{
cDebug() << "PythonQt OUT>" << message;
} );
[]( const QString& message )
{
cDebug() << "PythonQt OUT>" << message;
}
);
QObject::connect( PythonQt::self(), &PythonQt::pythonStdErr,
[]( const QString& message )
{
cDebug() << "PythonQt ERR>" << message;
} );
[]( const QString& message )
{
cDebug() << "PythonQt ERR>" << message;
}
);
}
QDir workingDir( m_workingPath );
@ -137,8 +139,8 @@ PythonQtViewModule::loadSelf()
// Construct empty Python module with the given name
PythonQtObjectPtr cxt =
PythonQt::self()->
createModuleFromScript( name() );
PythonQt::self()->
createModuleFromScript( name() );
if ( cxt.isNull() )
{
cDebug() << "Cannot load PythonQt context from file"
@ -149,11 +151,11 @@ PythonQtViewModule::loadSelf()
}
static const QLatin1Literal calamares_module_annotation(
"_calamares_module_typename = ''\n"
"def calamares_module(viewmodule_type):\n"
" global _calamares_module_typename\n"
" _calamares_module_typename = viewmodule_type.__name__\n"
" return viewmodule_type\n");
"_calamares_module_typename = ''\n"
"def calamares_module(viewmodule_type):\n"
" global _calamares_module_typename\n"
" _calamares_module_typename = viewmodule_type.__name__\n"
" return viewmodule_type\n" );
// Load in the decorator
PythonQt::self()->evalScript( cxt, calamares_module_annotation );
@ -191,9 +193,7 @@ PythonQtViewModule::initFrom( const QVariantMap& moduleDescriptor )
m_workingPath = directory.absolutePath();
if ( !moduleDescriptor.value( "script" ).toString().isEmpty() )
{
m_scriptFileName = moduleDescriptor.value( "script" ).toString();
}
}
PythonQtViewModule::PythonQtViewModule()

View File

@ -22,7 +22,8 @@
#include "UiDllMacro.h"
#include "Module.h"
namespace Calamares {
namespace Calamares
{
class ViewStep;

View File

@ -27,7 +27,8 @@
#include <QDir>
#include <QPluginLoader>
namespace Calamares {
namespace Calamares
{
Module::Type

View File

@ -21,12 +21,14 @@ fallbackKernelLine: ", with _manjaro_kernel_ (fallback initramfs)"
# GRUB 2 binary names and boot directory
# Some distributions (e.g. Fedora) use grub2-* (resp. /boot/grub2/) names.
# These names are also used when using sb-shim, since that needs some
# GRUB functionality (notably grub-probe) to work.
# GRUB functionality (notably grub-probe) to work. As needed, you may use
# complete paths like `/usr/bin/efibootmgr` for the executables.
#
grubInstall: "grub-install"
grubMkconfig: "grub-mkconfig"
grubCfg: "/boot/grub/grub.cfg"
grubProbe: "/usr/sbin/grub2-probe"
grubProbe: "grub-probe"
efiBootMgr: "efibootmgr"
# Optionally set the bootloader ID to use for EFI. This is passed to
# grub-install --bootloader-id.

View File

@ -8,7 +8,7 @@
# Copyright 2014, Daniel Hillenbrand <codeworkx@bbqlinux.org>
# Copyright 2014, Benjamin Vaudour <benjamin.vaudour@yahoo.fr>
# Copyright 2014, Kevin Kofler <kevin.kofler@chello.at>
# Copyright 2015-2017, Philip Mueller <philm@manjaro.org>
# Copyright 2015-2018, Philip Mueller <philm@manjaro.org>
# Copyright 2016-2017, Teo Mrnjavac <teo@kde.org>
# Copyright 2017, Alf Gaida <agaida@siduction.org>
# Copyright 2017-2018, Adriaan de Groot <groot@kde.org>
@ -351,7 +351,7 @@ def install_secureboot(efi_directory):
raise ValueError("No partition number found for %s" % install_efi_directory)
subprocess.call([
"/usr/sbin/efibootmgr",
libcalamares.job.configuration["efiBootMgr"],
"-c",
"-w",
"-L", efi_bootloader_id,

View File

@ -8,35 +8,35 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-02-07 18:58+0100\n"
"POT-Creation-Date: 2018-06-18 07:46-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: src/modules/dummypythonqt/main.py:84
msgid "Click me!"
msgstr "Click me!"
msgstr ""
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
msgstr "A new QLabel."
msgstr ""
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr "Dummy PythonQt ViewStep"
msgstr ""
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr "The Dummy PythonQt Job"
msgstr ""
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr "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 "A status message for Dummy PythonQt Job."
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-04-13 10:28-0400\n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Panwar108 <caspian7pena@gmail.com>, 2018\n"
"Language-Team: Hindi (https://www.transifex.com/calamares/teams/20061/hi/)\n"
@ -28,16 +28,16 @@ msgstr "नया QLabel।"
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr "Dummy PythonQt ViewStep"
msgstr "डमी पाइथन प्रक्रिया की चरण संख्या देखें"
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr "The Dummy PythonQt Job"
msgstr "डमी पाइथन प्रक्रिया"
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr "यह Dummy PythonQt Job है।The dummy job says: {}"
msgstr "यह डमी पाइथन प्रक्रिया है। डमी प्रक्रिया संबंधी संदेश : {}"
#: src/modules/dummypythonqt/main.py:190
msgid "A status message for Dummy PythonQt Job."
msgstr "Dummy PythonQt Job के लिए एक status संदेश।"
msgstr "डमी पाइथन प्रक्रिया की अवस्था संबंधी संदेश।"

View File

@ -10,6 +10,7 @@ msgstr ""
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2018-05-28 04:57-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Ji-Hyeon Gim <potatogim@potatogim.net>, 2018\n"
"Language-Team: Korean (https://www.transifex.com/calamares/teams/20061/ko/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@ -19,24 +20,24 @@ msgstr ""
#: src/modules/dummypythonqt/main.py:84
msgid "Click me!"
msgstr ""
msgstr "여기를 클릭하세요!"
#: src/modules/dummypythonqt/main.py:94
msgid "A new QLabel."
msgstr ""
msgstr "새로운 QLabel."
#: src/modules/dummypythonqt/main.py:97
msgid "Dummy PythonQt ViewStep"
msgstr ""
msgstr "더미 PythonQt ViewStep"
#: src/modules/dummypythonqt/main.py:183
msgid "The Dummy PythonQt Job"
msgstr ""
msgstr "더미 PythonQt Job"
#: src/modules/dummypythonqt/main.py:186
msgid "This is the Dummy PythonQt Job. The dummy job says: {}"
msgstr ""
msgstr "더미 PythonQt Job입니다. 이 더미 Job의 출력은 다음과 같습니다: {}"
#: src/modules/dummypythonqt/main.py:190
msgid "A status message for Dummy PythonQt Job."
msgstr ""
msgstr "더미 PythonQt Job의 상태 메시지"

View File

@ -7,6 +7,7 @@
# Copyright 2015, Philip Müller <philm@manjaro.org>
# Copyright 2016, Teo Mrnjavac <teo@kde.org>
# Copyright 2018, AlmAck <gluca86@gmail.com>
# Copyright 2018, Adriaan de Groot <groot@kde.org>
#
# Calamares is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -22,14 +23,91 @@
# along with Calamares. If not, see <http://www.gnu.org/licenses/>.
import os
import re
import shutil
import libcalamares
RE_IS_COMMENT = re.compile("^ *#")
def is_comment(line):
"""
Does the @p line look like a comment? Whitespace, followed by a #
is a comment-only line.
"""
return bool(RE_IS_COMMENT.match(line))
RE_TRAILING_COMMENT = re.compile("#.*$")
RE_REST_OF_LINE = re.compile("\\s.*$")
def extract_locale(line):
"""
Extracts a locale from the @p line, and returns a pair of
(extracted-locale, uncommented line). The locale is the
first word of the line after uncommenting (in the human-
readable text explanation at the top of most /etc/locale.gen
files, the locales may be bogus -- either "" or e.g. "Configuration")
"""
# Remove leading spaces and comment signs
line = RE_IS_COMMENT.sub("", line)
uncommented = line.strip()
fields = RE_TRAILING_COMMENT.sub("", uncommented).strip().split()
if len(fields) != 2:
# Not exactly two fields, can't be a proper locale line
return "", uncommented
else:
# Drop all but first field
locale = RE_REST_OF_LINE.sub("", uncommented)
return locale, uncommented
def rewrite_locale_gen(srcfilename, destfilename, locale_conf):
"""
Copies a locale.gen file from @p srcfilename to @p destfilename
(this may be the same name), enabling those locales that can
be found in the map @p locale_conf. Also always enables en_US.UTF-8.
"""
en_us_locale = 'en_US.UTF-8'
# Get entire source-file contents
text = []
with open(srcfilename, "r") as gen:
text = gen.readlines()
# we want unique values, so locale_values should have 1 or 2 items
locale_values = set(locale_conf.values())
locale_values.add(en_us_locale) # Always enable en_US as well
enabled_locales = {}
seen_locales = set()
# Write source out again, enabling some
with open(destfilename, "w") as gen:
for line in text:
c = is_comment(line)
locale, uncommented = extract_locale(line)
# Non-comment lines are preserved, and comment lines
# may be enabled if they match a desired locale
if not c:
seen_locales.add(locale)
else:
for locale_value in locale_values:
if locale.startswith(locale_value):
enabled_locales[locale] = uncommented
gen.write(line)
gen.write("\n###\n#\n# Locales enabled by Calamares\n")
for locale, line in enabled_locales.items():
if locale not in seen_locales:
gen.write(line + "\n")
seen_locales.add(locale)
for locale in locale_values:
if locale not in seen_locales:
gen.write("# Missing: %s\n" % locale)
def run():
""" Create locale """
en_us_locale = 'en_US.UTF-8'
import libcalamares
locale_conf = libcalamares.globalstorage.value("localeConf")
if not locale_conf:
@ -47,50 +125,36 @@ def run():
}
install_path = libcalamares.globalstorage.value("rootMountPoint")
target_locale_gen = "{!s}/etc/locale.gen".format(install_path)
target_locale_gen_bak = target_locale_gen + ".bak"
target_locale_conf_path = "{!s}/etc/locale.conf".format(install_path)
target_etc_default_path = "{!s}/etc/default".format(install_path)
# restore backup if available
if os.path.exists('/etc/locale.gen.bak'):
shutil.copy2("{!s}/etc/locale.gen.bak".format(install_path),
"{!s}/etc/locale.gen".format(install_path))
if os.path.exists(target_locale_gen_bak):
shutil.copy2(target_locale_gen_bak, target_locale_gen)
libcalamares.utils.debug("Restored backup {!s} -> {!s}"
.format(target_locale_gen_bak).format(target_locale_gen))
# run locale-gen if detected
# run locale-gen if detected; this *will* cause an exception
# if the live system has locale.gen, but the target does not:
# in that case, fix your installation filesystem.
if os.path.exists('/etc/locale.gen'):
text = []
with open("{!s}/etc/locale.gen".format(install_path), "r") as gen:
text = gen.readlines()
# we want unique values, so locale_values should have 1 or 2 items
locale_values = set(locale_conf.values())
with open("{!s}/etc/locale.gen".format(install_path), "w") as gen:
for line in text:
# always enable en_US
if line.startswith("#" + en_us_locale):
# uncomment line
line = line[1:].lstrip()
for locale_value in locale_values:
if line.startswith("#" + locale_value):
# uncomment line
line = line[1:].lstrip()
gen.write(line)
rewrite_locale_gen(target_locale_gen, target_locale_gen, locale_conf)
libcalamares.utils.target_env_call(['locale-gen'])
print('locale.gen done')
libcalamares.utils.debug('{!s} done'.format(target_locale_gen))
# write /etc/locale.conf
locale_conf_path = os.path.join(install_path, "etc/locale.conf")
with open(locale_conf_path, "w") as lcf:
with open(target_locale_conf_path, "w") as lcf:
for k, v in locale_conf.items():
lcf.write("{!s}={!s}\n".format(k, v))
libcalamares.utils.debug('{!s} done'.format(target_locale_conf_path))
# write /etc/default/locale if /etc/default exists and is a dir
etc_default_path = os.path.join(install_path, "etc/default")
if os.path.isdir(etc_default_path):
with open(os.path.join(etc_default_path, "locale"), "w") as edl:
if os.path.isdir(target_etc_default_path):
with open(os.path.join(target_etc_default_path, "locale"), "w") as edl:
for k, v in locale_conf.items():
edl.write("{!s}={!s}\n".format(k, v))
libcalamares.utils.debug('{!s} done'.format(target_etc_default_path))
return None

View File

@ -1,3 +1,6 @@
# Enable the configured locales (those set by the user on the
# user page) in /etc/locale.gen, if they are available in the
# target system.
---
type: "job"
name: "localecfg"

View File

@ -8,6 +8,7 @@
# Copyright 2016-2017, Kyle Robbertze <kyle@aims.ac.za>
# Copyright 2017, Alf Gaida <agaida@siduction.org>
# Copyright 2018, Adriaan de Groot <groot@kde.org>
# Copyright 2018, Philip Müller <philm@manjaro.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
@ -153,6 +154,8 @@ class PMPackageKit(PackageManager):
def update_db(self):
check_target_env_call(["pkcon", "refresh"])
def update_system(self):
check_target_env_call(["pkcon", "-py", "update"])
class PMZypp(PackageManager):
backend = "zypp"
@ -170,12 +173,15 @@ class PMZypp(PackageManager):
def update_db(self):
check_target_env_call(["zypper", "--non-interactive", "update"])
def update_system(self):
# Doesn't need to update the system explicitly
pass
class PMYum(PackageManager):
backend = "yum"
def install(self, pkgs, from_local=False):
check_target_env_call(["yum", "install", "-y"] + pkgs)
check_target_env_call(["yum", "-y", "install"] + pkgs)
def remove(self, pkgs):
check_target_env_call(["yum", "--disablerepo=*", "-C", "-y",
@ -185,12 +191,14 @@ class PMYum(PackageManager):
# Doesn't need updates
pass
def update_system(self):
check_target_env_call(["yum", "-y", "upgrade"])
class PMDnf(PackageManager):
backend = "dnf"
def install(self, pkgs, from_local=False):
check_target_env_call(["dnf", "install", "-y"] + pkgs)
check_target_env_call(["dnf", "-y", "install"] + pkgs)
def remove(self, pkgs):
# ignore the error code for now because dnf thinks removing a
@ -199,9 +207,12 @@ class PMDnf(PackageManager):
"remove"] + pkgs)
def update_db(self):
# Doesn't need to update explicitly
# Doesn't need updates
pass
def update_system(self):
check_target_env_call(["dnf", "-y", "upgrade"])
class PMUrpmi(PackageManager):
backend = "urpmi"
@ -218,6 +229,10 @@ class PMUrpmi(PackageManager):
def update_db(self):
check_target_env_call(["urpmi.update", "-a"])
def update_system(self):
# Doesn't need to update the system explicitly
pass
class PMApt(PackageManager):
backend = "apt"
@ -234,6 +249,10 @@ class PMApt(PackageManager):
def update_db(self):
check_target_env_call(["apt-get", "update"])
def update_system(self):
# Doesn't need to update the system explicitly
pass
class PMPacman(PackageManager):
backend = "pacman"
@ -242,7 +261,7 @@ class PMPacman(PackageManager):
if from_local:
pacman_flags = "-U"
else:
pacman_flags = "-Sy"
pacman_flags = "-S"
check_target_env_call(["pacman", pacman_flags,
"--noconfirm"] + pkgs)
@ -253,6 +272,9 @@ class PMPacman(PackageManager):
def update_db(self):
check_target_env_call(["pacman", "-Sy"])
def update_system(self):
check_target_env_call(["pacman", "-Su"])
class PMPortage(PackageManager):
backend = "portage"
@ -267,6 +289,10 @@ class PMPortage(PackageManager):
def update_db(self):
check_target_env_call(["emerge", "--sync"])
def update_system(self):
# Doesn't need to update the system explicitly
pass
class PMEntropy(PackageManager):
backend = "entropy"
@ -280,6 +306,10 @@ class PMEntropy(PackageManager):
def update_db(self):
check_target_env_call(["equo", "update"])
def update_system(self):
# Doesn't need to update the system explicitly
pass
class PMDummy(PackageManager):
backend = "dummy"
@ -293,6 +323,9 @@ class PMDummy(PackageManager):
def update_db(self):
libcalamares.utils.debug("Updating DB")
def update_system(self):
libcalamares.utils.debug("Updating System")
def run(self, script):
libcalamares.utils.debug("Running script '" + str(script) + "'")
@ -309,6 +342,10 @@ class PMPisi(PackageManager):
def update_db(self):
check_target_env_call(["pisi", "update-repo"])
def update_system(self):
# Doesn't need to update the system explicitly
pass
# Collect all the subclasses of PackageManager defined above,
# and index them based on the backend property of each class.
@ -452,6 +489,10 @@ def run():
if update_db and libcalamares.globalstorage.value("hasInternet"):
pkgman.update_db()
update_system = libcalamares.job.configuration.get("update_system", False)
if update_system and libcalamares.globalstorage.value("hasInternet"):
pkgman.update_system()
operations = libcalamares.job.configuration.get("operations", [])
if libcalamares.globalstorage.contains("packageOperations"):
operations += libcalamares.globalstorage.value("packageOperations")

View File

@ -14,21 +14,30 @@
#
backend: dummy
#
# Often package installation needs an internet connection.
# Since you may allow system installation without a connection
# and want to offer **optional** package installation, it's
# and want to offer OPTIONAL package installation, it's
# possible to have no internet, yet have this packages module
# enabled in settings.
#
# You can skip the whole module when there is no internet
# by setting *skip_if_no_internet* to true.
# by setting "skip_if_no_internet" to true.
#
# You can run a package-manager specific update procedure
# before installing packages (for instance, to update the
# list of packages and dependencies); this is done only if there
# is an internet connection. Set *update_db* to true to do so.
# is an internet connection.
#
# Set "update_db" to 'true' for refreshing the database on the
# target system. On target installations, which got installed by
# unsquashing, a full system update may be needed. Otherwise
# post-installing additional packages may result in conflicts.
# Therefore set also "update_system" to 'true'.
#
skip_if_no_internet: false
update_db: true
update_system: false
#
# List of maps with package operations such as install or remove.
@ -86,14 +95,14 @@ update_db: true
#
# - if the system locale is English (any variety), then the package is not
# installed at all,
# - otherwise $LOCALE or ${LOCALE} is replaced by the **lower-cased** BCP47
# name of the **language** part of the selected system locale (not the
# country/region/dialect part), e.g. selecting *nl_BE* will use *nl*
# - otherwise $LOCALE or ${LOCALE} is replaced by the 'lower-cased' BCP47
# name of the 'language' part of the selected system locale (not the
# country/region/dialect part), e.g. selecting "nl_BE" will use "nl"
# here.
#
# Take care that just plain LOCALE will not be replaced, so foo-LOCALE will
# be left unchanged, while foo-$LOCALE will be changed. However, foo-LOCALE
# **will** be removed from the list of packages, if English is selected.
# 'will' be removed from the list of packages, if English is selected.
#
# The following installs localizations for vi, if they are relevant; if
# there is no localization, installation continues normally.

View File

@ -104,7 +104,7 @@
<item>
<widget class="QPushButton" name="createButton">
<property name="text">
<string>&amp;Create</string>
<string>Cre&amp;ate</string>
</property>
</widget>
</item>