Merge branch 'issue-1569' into calamares

FIXES #1569
This commit is contained in:
Adriaan de Groot 2020-11-09 16:19:03 +01:00
commit 8a7e9c4034
4 changed files with 441 additions and 365 deletions

View File

@ -4,17 +4,17 @@
<context> <context>
<name>BootInfoWidget</name> <name>BootInfoWidget</name>
<message> <message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="61"/> <location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="62"/>
<source>The &lt;strong&gt;boot environment&lt;/strong&gt; of this system.&lt;br&gt;&lt;br&gt;Older x86 systems only support &lt;strong&gt;BIOS&lt;/strong&gt;.&lt;br&gt;Modern systems usually use &lt;strong&gt;EFI&lt;/strong&gt;, but may also show up as BIOS if started in compatibility mode.</source> <source>The &lt;strong&gt;boot environment&lt;/strong&gt; of this system.&lt;br&gt;&lt;br&gt;Older x86 systems only support &lt;strong&gt;BIOS&lt;/strong&gt;.&lt;br&gt;Modern systems usually use &lt;strong&gt;EFI&lt;/strong&gt;, but may also show up as BIOS if started in compatibility mode.</source>
<translation>The &lt;strong&gt;boot environment&lt;/strong&gt; of this system.&lt;br&gt;&lt;br&gt;Older x86 systems only support &lt;strong&gt;BIOS&lt;/strong&gt;.&lt;br&gt;Modern systems usually use &lt;strong&gt;EFI&lt;/strong&gt;, but may also show up as BIOS if started in compatibility mode.</translation> <translation>The &lt;strong&gt;boot environment&lt;/strong&gt; of this system.&lt;br&gt;&lt;br&gt;Older x86 systems only support &lt;strong&gt;BIOS&lt;/strong&gt;.&lt;br&gt;Modern systems usually use &lt;strong&gt;EFI&lt;/strong&gt;, but may also show up as BIOS if started in compatibility mode.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="71"/> <location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="72"/>
<source>This system was started with an &lt;strong&gt;EFI&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from an EFI environment, this installer must deploy a boot loader application, like &lt;strong&gt;GRUB&lt;/strong&gt; or &lt;strong&gt;systemd-boot&lt;/strong&gt; on an &lt;strong&gt;EFI System Partition&lt;/strong&gt;. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</source> <source>This system was started with an &lt;strong&gt;EFI&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from an EFI environment, this installer must deploy a boot loader application, like &lt;strong&gt;GRUB&lt;/strong&gt; or &lt;strong&gt;systemd-boot&lt;/strong&gt; on an &lt;strong&gt;EFI System Partition&lt;/strong&gt;. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</source>
<translation>This system was started with an &lt;strong&gt;EFI&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from an EFI environment, this installer must deploy a boot loader application, like &lt;strong&gt;GRUB&lt;/strong&gt; or &lt;strong&gt;systemd-boot&lt;/strong&gt; on an &lt;strong&gt;EFI System Partition&lt;/strong&gt;. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</translation> <translation>This system was started with an &lt;strong&gt;EFI&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from an EFI environment, this installer must deploy a boot loader application, like &lt;strong&gt;GRUB&lt;/strong&gt; or &lt;strong&gt;systemd-boot&lt;/strong&gt; on an &lt;strong&gt;EFI System Partition&lt;/strong&gt;. This is automatic, unless you choose manual partitioning, in which case you must choose it or create it on your own.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="83"/> <location filename="../src/modules/partition/gui/BootInfoWidget.cpp" line="84"/>
<source>This system was started with a &lt;strong&gt;BIOS&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from a BIOS environment, this installer must install a boot loader, like &lt;strong&gt;GRUB&lt;/strong&gt;, either at the beginning of a partition or on the &lt;strong&gt;Master Boot Record&lt;/strong&gt; near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</source> <source>This system was started with a &lt;strong&gt;BIOS&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from a BIOS environment, this installer must install a boot loader, like &lt;strong&gt;GRUB&lt;/strong&gt;, either at the beginning of a partition or on the &lt;strong&gt;Master Boot Record&lt;/strong&gt; near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</source>
<translation>This system was started with a &lt;strong&gt;BIOS&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from a BIOS environment, this installer must install a boot loader, like &lt;strong&gt;GRUB&lt;/strong&gt;, either at the beginning of a partition or on the &lt;strong&gt;Master Boot Record&lt;/strong&gt; near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</translation> <translation>This system was started with a &lt;strong&gt;BIOS&lt;/strong&gt; boot environment.&lt;br&gt;&lt;br&gt;To configure startup from a BIOS environment, this installer must install a boot loader, like &lt;strong&gt;GRUB&lt;/strong&gt;, either at the beginning of a partition or on the &lt;strong&gt;Master Boot Record&lt;/strong&gt; near the beginning of the partition table (preferred). This is automatic, unless you choose manual partitioning, in which case you must set it up on your own.</translation>
</message> </message>
@ -533,7 +533,7 @@ The installer will quit and all changes will be lost.</translation>
<translation>&lt;strong&gt;Manual partitioning&lt;/strong&gt;&lt;br/&gt;You can create or resize partitions yourself.</translation> <translation>&lt;strong&gt;Manual partitioning&lt;/strong&gt;&lt;br/&gt;You can create or resize partitions yourself.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="831"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="828"/>
<source>Reuse %1 as home partition for %2.</source> <source>Reuse %1 as home partition for %2.</source>
<translation>Reuse %1 as home partition for %2.</translation> <translation>Reuse %1 as home partition for %2.</translation>
</message> </message>
@ -558,101 +558,101 @@ The installer will quit and all changes will be lost.</translation>
<translation>&lt;strong&gt;Select a partition to install on&lt;/strong&gt;</translation> <translation>&lt;strong&gt;Select a partition to install on&lt;/strong&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1146"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1148"/>
<source>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1.</source> <source>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1.</source>
<translation>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1.</translation> <translation>An EFI system partition cannot be found anywhere on this system. Please go back and use manual partitioning to set up %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1154"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1156"/>
<source>The EFI system partition at %1 will be used for starting %2.</source> <source>The EFI system partition at %1 will be used for starting %2.</source>
<translation>The EFI system partition at %1 will be used for starting %2.</translation> <translation>The EFI system partition at %1 will be used for starting %2.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1162"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1164"/>
<source>EFI system partition:</source> <source>EFI system partition:</source>
<translation>EFI system partition:</translation> <translation>EFI system partition:</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1296"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1297"/>
<source>This storage device does not seem to have an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source> <source>This storage device does not seem to have an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source>
<translation>This storage device does not seem to have an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation> <translation>This storage device does not seem to have an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1301"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1302"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1338"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1339"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1360"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1361"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1385"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1386"/>
<source>&lt;strong&gt;Erase disk&lt;/strong&gt;&lt;br/&gt;This will &lt;font color="red"&gt;delete&lt;/font&gt; all data currently present on the selected storage device.</source> <source>&lt;strong&gt;Erase disk&lt;/strong&gt;&lt;br/&gt;This will &lt;font color="red"&gt;delete&lt;/font&gt; all data currently present on the selected storage device.</source>
<translation>&lt;strong&gt;Erase disk&lt;/strong&gt;&lt;br/&gt;This will &lt;font color="red"&gt;delete&lt;/font&gt; all data currently present on the selected storage device.</translation> <translation>&lt;strong&gt;Erase disk&lt;/strong&gt;&lt;br/&gt;This will &lt;font color="red"&gt;delete&lt;/font&gt; all data currently present on the selected storage device.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1305"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1306"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1334"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1335"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1356"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1357"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1381"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1382"/>
<source>&lt;strong&gt;Install alongside&lt;/strong&gt;&lt;br/&gt;The installer will shrink a partition to make room for %1.</source> <source>&lt;strong&gt;Install alongside&lt;/strong&gt;&lt;br/&gt;The installer will shrink a partition to make room for %1.</source>
<translation>&lt;strong&gt;Install alongside&lt;/strong&gt;&lt;br/&gt;The installer will shrink a partition to make room for %1.</translation> <translation>&lt;strong&gt;Install alongside&lt;/strong&gt;&lt;br/&gt;The installer will shrink a partition to make room for %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1309"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1310"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1343"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1344"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1364"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1365"/>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1389"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1390"/>
<source>&lt;strong&gt;Replace a partition&lt;/strong&gt;&lt;br/&gt;Replaces a partition with %1.</source> <source>&lt;strong&gt;Replace a partition&lt;/strong&gt;&lt;br/&gt;Replaces a partition with %1.</source>
<translation>&lt;strong&gt;Replace a partition&lt;/strong&gt;&lt;br/&gt;Replaces a partition with %1.</translation> <translation>&lt;strong&gt;Replace a partition&lt;/strong&gt;&lt;br/&gt;Replaces a partition with %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1328"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1329"/>
<source>This storage device has %1 on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source> <source>This storage device has %1 on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source>
<translation>This storage device has %1 on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation> <translation>This storage device has %1 on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1351"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1352"/>
<source>This storage device already has an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source> <source>This storage device already has an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source>
<translation>This storage device already has an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation> <translation>This storage device already has an operating system on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1376"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1377"/>
<source>This storage device has multiple operating systems on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source> <source>This storage device has multiple operating systems on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</source>
<translation>This storage device has multiple operating systems on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation> <translation>This storage device has multiple operating systems on it. What would you like to do?&lt;br/&gt;You will be able to review and confirm your choices before any change is made to the storage device.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1448"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1449"/>
<source>This storage device already has an operating system on it, but the partition table &lt;strong&gt;%1&lt;/strong&gt; is different from the needed &lt;strong&gt;%2&lt;/strong&gt;.&lt;br/&gt;</source> <source>This storage device already has an operating system on it, but the partition table &lt;strong&gt;%1&lt;/strong&gt; is different from the needed &lt;strong&gt;%2&lt;/strong&gt;.&lt;br/&gt;</source>
<translation>This storage device already has an operating system on it, but the partition table &lt;strong&gt;%1&lt;/strong&gt; is different from the needed &lt;strong&gt;%2&lt;/strong&gt;.&lt;br/&gt;</translation> <translation>This storage device already has an operating system on it, but the partition table &lt;strong&gt;%1&lt;/strong&gt; is different from the needed &lt;strong&gt;%2&lt;/strong&gt;.&lt;br/&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1471"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1472"/>
<source>This storage device has one of its partitions &lt;strong&gt;mounted&lt;/strong&gt;.</source> <source>This storage device has one of its partitions &lt;strong&gt;mounted&lt;/strong&gt;.</source>
<translation>This storage device has one of its partitions &lt;strong&gt;mounted&lt;/strong&gt;.</translation> <translation>This storage device has one of its partitions &lt;strong&gt;mounted&lt;/strong&gt;.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1476"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1477"/>
<source>This storage device is a part of an &lt;strong&gt;inactive RAID&lt;/strong&gt; device.</source> <source>This storage device is a part of an &lt;strong&gt;inactive RAID&lt;/strong&gt; device.</source>
<translation>This storage device is a part of an &lt;strong&gt;inactive RAID&lt;/strong&gt; device.</translation> <translation>This storage device is a part of an &lt;strong&gt;inactive RAID&lt;/strong&gt; device.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1603"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1604"/>
<source>No Swap</source> <source>No Swap</source>
<translation>No Swap</translation> <translation>No Swap</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1611"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1612"/>
<source>Reuse Swap</source> <source>Reuse Swap</source>
<translation>Reuse Swap</translation> <translation>Reuse Swap</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1614"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1615"/>
<source>Swap (no Hibernate)</source> <source>Swap (no Hibernate)</source>
<translation>Swap (no Hibernate)</translation> <translation>Swap (no Hibernate)</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1617"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1618"/>
<source>Swap (with Hibernate)</source> <source>Swap (with Hibernate)</source>
<translation>Swap (with Hibernate)</translation> <translation>Swap (with Hibernate)</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1620"/> <location filename="../src/modules/partition/gui/ChoicePage.cpp" line="1621"/>
<source>Swap to file</source> <source>Swap to file</source>
<translation>Swap to file</translation> <translation>Swap to file</translation>
</message> </message>
@ -720,12 +720,12 @@ The installer will quit and all changes will be lost.</translation>
<context> <context>
<name>Config</name> <name>Config</name>
<message> <message>
<location filename="../src/modules/keyboard/Config.cpp" line="340"/> <location filename="../src/modules/keyboard/Config.cpp" line="326"/>
<source>Set keyboard model to %1.&lt;br/&gt;</source> <source>Set keyboard model to %1.&lt;br/&gt;</source>
<translation>Set keyboard model to %1.&lt;br/&gt;</translation> <translation>Set keyboard model to %1.&lt;br/&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/keyboard/Config.cpp" line="347"/> <location filename="../src/modules/keyboard/Config.cpp" line="333"/>
<source>Set keyboard layout to %1/%2.</source> <source>Set keyboard layout to %1/%2.</source>
<translation>Set keyboard layout to %1/%2.</translation> <translation>Set keyboard layout to %1/%2.</translation>
</message> </message>
@ -810,47 +810,47 @@ The installer will quit and all changes will be lost.</translation>
<translation>&lt;h1&gt;Welcome to the %1 installer&lt;/h1&gt;</translation> <translation>&lt;h1&gt;Welcome to the %1 installer&lt;/h1&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="164"/> <location filename="../src/modules/users/Config.cpp" line="200"/>
<source>Your username is too long.</source> <source>Your username is too long.</source>
<translation>Your username is too long.</translation> <translation>Your username is too long.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="170"/> <location filename="../src/modules/users/Config.cpp" line="206"/>
<source>'%1' is not allowed as username.</source> <source>'%1' is not allowed as username.</source>
<translation>'%1' is not allowed as username.</translation> <translation>'%1' is not allowed as username.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="177"/> <location filename="../src/modules/users/Config.cpp" line="213"/>
<source>Your username must start with a lowercase letter or underscore.</source> <source>Your username must start with a lowercase letter or underscore.</source>
<translation>Your username must start with a lowercase letter or underscore.</translation> <translation>Your username must start with a lowercase letter or underscore.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="181"/> <location filename="../src/modules/users/Config.cpp" line="217"/>
<source>Only lowercase letters, numbers, underscore and hyphen are allowed.</source> <source>Only lowercase letters, numbers, underscore and hyphen are allowed.</source>
<translation>Only lowercase letters, numbers, underscore and hyphen are allowed.</translation> <translation>Only lowercase letters, numbers, underscore and hyphen are allowed.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="227"/> <location filename="../src/modules/users/Config.cpp" line="262"/>
<source>Your hostname is too short.</source> <source>Your hostname is too short.</source>
<translation>Your hostname is too short.</translation> <translation>Your hostname is too short.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="231"/> <location filename="../src/modules/users/Config.cpp" line="266"/>
<source>Your hostname is too long.</source> <source>Your hostname is too long.</source>
<translation>Your hostname is too long.</translation> <translation>Your hostname is too long.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="237"/> <location filename="../src/modules/users/Config.cpp" line="272"/>
<source>'%1' is not allowed as hostname.</source> <source>'%1' is not allowed as hostname.</source>
<translation>'%1' is not allowed as hostname.</translation> <translation>'%1' is not allowed as hostname.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="243"/> <location filename="../src/modules/users/Config.cpp" line="278"/>
<source>Only letters, numbers, underscore and hyphen are allowed.</source> <source>Only letters, numbers, underscore and hyphen are allowed.</source>
<translation>Only letters, numbers, underscore and hyphen are allowed.</translation> <translation>Only letters, numbers, underscore and hyphen are allowed.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="446"/> <location filename="../src/modules/users/Config.cpp" line="481"/>
<source>Your passwords do not match!</source> <source>Your passwords do not match!</source>
<translation>Your passwords do not match!</translation> <translation>Your passwords do not match!</translation>
</message> </message>
@ -1018,29 +1018,39 @@ The installer will quit and all changes will be lost.</translation>
<context> <context>
<name>CreateUserJob</name> <name>CreateUserJob</name>
<message> <message>
<location filename="../src/modules/users/CreateUserJob.cpp" line="40"/> <location filename="../src/modules/users/CreateUserJob.cpp" line="36"/>
<source>Create user %1</source> <source>Create user %1</source>
<translation>Create user %1</translation> <translation>Create user %1</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CreateUserJob.cpp" line="47"/> <location filename="../src/modules/users/CreateUserJob.cpp" line="43"/>
<source>Create user &lt;strong&gt;%1&lt;/strong&gt;.</source> <source>Create user &lt;strong&gt;%1&lt;/strong&gt;.</source>
<translation>Create user &lt;strong&gt;%1&lt;/strong&gt;.</translation> <translation>Create user &lt;strong&gt;%1&lt;/strong&gt;.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CreateUserJob.cpp" line="54"/> <location filename="../src/modules/users/CreateUserJob.cpp" line="50"/>
<source>Creating user %1.</source> <source>Creating user %1.</source>
<translation>Creating user %1.</translation> <translation>Creating user %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CreateUserJob.cpp" line="186"/> <location filename="../src/modules/users/CreateUserJob.cpp" line="126"/>
<source>Cannot create sudoers file for writing.</source> <source>Preserving home directory</source>
<translation>Cannot create sudoers file for writing.</translation> <translation type="unfinished"/>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CreateUserJob.cpp" line="181"/> <location filename="../src/modules/users/CreateUserJob.cpp" line="143"/>
<source>Cannot chmod sudoers file.</source> <source>Creating user %1</source>
<translation>Cannot chmod sudoers file.</translation> <translation type="unfinished">Creating user %1. {1?}</translation>
</message>
<message>
<location filename="../src/modules/users/CreateUserJob.cpp" line="151"/>
<source>Configuring user %1</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/modules/users/CreateUserJob.cpp" line="159"/>
<source>Setting file permissions</source>
<translation type="unfinished"/>
</message> </message>
</context> </context>
<context> <context>
@ -1243,7 +1253,7 @@ The installer will quit and all changes will be lost.</translation>
<translation>Flags:</translation> <translation>Flags:</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/EditExistingPartitionDialog.cpp" line="272"/> <location filename="../src/modules/partition/gui/EditExistingPartitionDialog.cpp" line="275"/>
<source>Mountpoint already in use. Please select another one.</source> <source>Mountpoint already in use. Please select another one.</source>
<translation>Mountpoint already in use. Please select another one.</translation> <translation>Mountpoint already in use. Please select another one.</translation>
</message> </message>
@ -1558,23 +1568,10 @@ The installer will quit and all changes will be lost.</translation>
<translation>Script</translation> <translation>Script</translation>
</message> </message>
</context> </context>
<context>
<name>KeyboardPage</name>
<message>
<location filename="../src/modules/keyboard/KeyboardPage.cpp" line="204"/>
<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="208"/>
<source>Set keyboard layout to %1/%2.</source>
<translation>Set keyboard layout to %1/%2.</translation>
</message>
</context>
<context> <context>
<name>KeyboardQmlViewStep</name> <name>KeyboardQmlViewStep</name>
<message> <message>
<location filename="../src/modules/keyboardq/KeyboardQmlViewStep.cpp" line="33"/> <location filename="../src/modules/keyboardq/KeyboardQmlViewStep.cpp" line="32"/>
<source>Keyboard</source> <source>Keyboard</source>
<translation>Keyboard</translation> <translation>Keyboard</translation>
</message> </message>
@ -1582,7 +1579,7 @@ The installer will quit and all changes will be lost.</translation>
<context> <context>
<name>KeyboardViewStep</name> <name>KeyboardViewStep</name>
<message> <message>
<location filename="../src/modules/keyboard/KeyboardViewStep.cpp" line="45"/> <location filename="../src/modules/keyboard/KeyboardViewStep.cpp" line="42"/>
<source>Keyboard</source> <source>Keyboard</source>
<translation>Keyboard</translation> <translation>Keyboard</translation>
</message> </message>
@ -1664,59 +1661,59 @@ The installer will quit and all changes will be lost.</translation>
<context> <context>
<name>LicenseWidget</name> <name>LicenseWidget</name>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="87"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="88"/>
<source>URL: %1</source> <source>URL: %1</source>
<translation>URL: %1</translation> <translation>URL: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="108"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="109"/>
<source>&lt;strong&gt;%1 driver&lt;/strong&gt;&lt;br/&gt;by %2</source> <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> <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> <translation>&lt;strong&gt;%1 driver&lt;/strong&gt;&lt;br/&gt;by %2</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="115"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="116"/>
<source>&lt;strong&gt;%1 graphics driver&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source> <source>&lt;strong&gt;%1 graphics driver&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source>
<extracomment>%1 is usually a vendor name, example: Nvidia graphics driver</extracomment> <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="Grey"&gt;by %2&lt;/font&gt;</translation> <translation>&lt;strong&gt;%1 graphics driver&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="121"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="122"/>
<source>&lt;strong&gt;%1 browser plugin&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source> <source>&lt;strong&gt;%1 browser plugin&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1 browser plugin&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation> <translation>&lt;strong&gt;%1 browser plugin&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="127"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="128"/>
<source>&lt;strong&gt;%1 codec&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source> <source>&lt;strong&gt;%1 codec&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1 codec&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation> <translation>&lt;strong&gt;%1 codec&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="133"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="134"/>
<source>&lt;strong&gt;%1 package&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source> <source>&lt;strong&gt;%1 package&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1 package&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation> <translation>&lt;strong&gt;%1 package&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="139"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="140"/>
<source>&lt;strong&gt;%1&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source> <source>&lt;strong&gt;%1&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</source>
<translation>&lt;strong&gt;%1&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation> <translation>&lt;strong&gt;%1&lt;/strong&gt;&lt;br/&gt;&lt;font color="Grey"&gt;by %2&lt;/font&gt;</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="162"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="163"/>
<source>File: %1</source> <source>File: %1</source>
<translation>File: %1</translation> <translation>File: %1</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="185"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="186"/>
<source>Hide license text</source> <source>Hide license text</source>
<translation>Hide license text</translation> <translation>Hide license text</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="185"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="186"/>
<source>Show the license text</source> <source>Show the license text</source>
<translation>Show the license text</translation> <translation>Show the license text</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/license/LicenseWidget.cpp" line="189"/> <location filename="../src/modules/license/LicenseWidget.cpp" line="190"/>
<source>Open license agreement in browser.</source> <source>Open license agreement in browser.</source>
<translation>Open license agreement in browser.</translation> <translation>Open license agreement in browser.</translation>
</message> </message>
@ -1724,18 +1721,18 @@ The installer will quit and all changes will be lost.</translation>
<context> <context>
<name>LocalePage</name> <name>LocalePage</name>
<message> <message>
<location filename="../src/modules/locale/LocalePage.cpp" line="124"/> <location filename="../src/modules/locale/LocalePage.cpp" line="130"/>
<source>Region:</source> <source>Region:</source>
<translation>Region:</translation> <translation>Region:</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/locale/LocalePage.cpp" line="125"/> <location filename="../src/modules/locale/LocalePage.cpp" line="131"/>
<source>Zone:</source> <source>Zone:</source>
<translation>Zone:</translation> <translation>Zone:</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/locale/LocalePage.cpp" line="126"/> <location filename="../src/modules/locale/LocalePage.cpp" line="132"/>
<location filename="../src/modules/locale/LocalePage.cpp" line="127"/> <location filename="../src/modules/locale/LocalePage.cpp" line="133"/>
<source>&amp;Change...</source> <source>&amp;Change...</source>
<translation>&amp;Change...</translation> <translation>&amp;Change...</translation>
</message> </message>
@ -2057,188 +2054,215 @@ The installer will quit and all changes will be lost.</translation>
<source>The password contains forbidden words in some form</source> <source>The password contains forbidden words in some form</source>
<translation>The password contains forbidden words in some form</translation> <translation>The password contains forbidden words in some form</translation>
</message> </message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="175"/>
<source>The password contains less than %1 digits</source>
<translation>The password contains less than %1 digits</translation>
</message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="178"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="178"/>
<source>The password contains too few digits</source> <source>The password contains too few digits</source>
<translation>The password contains too few digits</translation> <translation>The password contains too few digits</translation>
</message> </message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="182"/>
<source>The password contains less than %1 uppercase letters</source>
<translation>The password contains less than %1 uppercase letters</translation>
</message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="185"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="185"/>
<source>The password contains too few uppercase letters</source> <source>The password contains too few uppercase letters</source>
<translation>The password contains too few uppercase letters</translation> <translation>The password contains too few uppercase letters</translation>
</message> </message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="189"/>
<source>The password contains less than %1 lowercase letters</source>
<translation>The password contains less than %1 lowercase letters</translation>
</message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="192"/>
<source>The password contains too few lowercase letters</source> <source>The password contains too few lowercase letters</source>
<translation>The password contains too few lowercase letters</translation> <translation>The password contains too few lowercase letters</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="201"/>
<source>The password contains less than %1 non-alphanumeric characters</source>
<translation>The password contains less than %1 non-alphanumeric characters</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="200"/>
<source>The password contains too few non-alphanumeric characters</source> <source>The password contains too few non-alphanumeric characters</source>
<translation>The password contains too few non-alphanumeric characters</translation> <translation>The password contains too few non-alphanumeric characters</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="204"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="208"/>
<source>The password is shorter than %1 characters</source>
<translation>The password is shorter than %1 characters</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="207"/>
<source>The password is too short</source> <source>The password is too short</source>
<translation>The password is too short</translation> <translation>The password is too short</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="209"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="217"/>
<source>The password is just rotated old one</source>
<translation>The password is just rotated old one</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="213"/>
<source>The password contains less than %1 character classes</source>
<translation>The password contains less than %1 character classes</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="216"/>
<source>The password does not contain enough character classes</source> <source>The password does not contain enough character classes</source>
<translation>The password does not contain enough character classes</translation> <translation>The password does not contain enough character classes</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="220"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="226"/>
<source>The password contains more than %1 same characters consecutively</source>
<translation>The password contains more than %1 same characters consecutively</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="224"/>
<source>The password contains too many same characters consecutively</source> <source>The password contains too many same characters consecutively</source>
<translation>The password contains too many same characters consecutively</translation> <translation>The password contains too many same characters consecutively</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="228"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="236"/>
<source>The password contains more than %1 characters of the same class consecutively</source>
<translation>The password contains more than %1 characters of the same class consecutively</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="232"/>
<source>The password contains too many characters of the same class consecutively</source> <source>The password contains too many characters of the same class consecutively</source>
<translation>The password contains too many characters of the same class consecutively</translation> <translation>The password contains too many characters of the same class consecutively</translation>
</message> </message>
<message> <message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="237"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="175"/>
<source>The password contains monotonic sequence longer than %1 characters</source> <source>The password contains fewer than %n digits</source>
<translation>The password contains monotonic sequence longer than %1 characters</translation> <translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="182"/>
<source>The password contains fewer than %n uppercase letters</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="189"/>
<source>The password contains fewer than %n lowercase letters</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="196"/>
<source>The password contains fewer than %n non-alphanumeric characters</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="205"/>
<source>The password is shorter than %n characters</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="210"/>
<source>The password is a rotated version of the previous one</source>
<translation type="unfinished"/>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="214"/>
<source>The password contains fewer than %n character classes</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="221"/>
<source>The password contains more than %n same characters consecutively</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="230"/>
<source>The password contains more than %n characters of the same class consecutively</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message numerus="yes">
<location filename="../src/modules/users/CheckPWQuality.cpp" line="241"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="241"/>
<source>The password contains monotonic sequence longer than %n characters</source>
<translation type="unfinished">
<numerusform/>
<numerusform/>
</translation>
</message>
<message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="247"/>
<source>The password contains too long of a monotonic character sequence</source> <source>The password contains too long of a monotonic character sequence</source>
<translation>The password contains too long of a monotonic character sequence</translation> <translation>The password contains too long of a monotonic character sequence</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="244"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="250"/>
<source>No password supplied</source> <source>No password supplied</source>
<translation>No password supplied</translation> <translation>No password supplied</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="246"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="252"/>
<source>Cannot obtain random numbers from the RNG device</source> <source>Cannot obtain random numbers from the RNG device</source>
<translation>Cannot obtain random numbers from the RNG device</translation> <translation>Cannot obtain random numbers from the RNG device</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="248"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="254"/>
<source>Password generation failed - required entropy too low for settings</source> <source>Password generation failed - required entropy too low for settings</source>
<translation>Password generation failed - required entropy too low for settings</translation> <translation>Password generation failed - required entropy too low for settings</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="254"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="260"/>
<source>The password fails the dictionary check - %1</source> <source>The password fails the dictionary check - %1</source>
<translation>The password fails the dictionary check - %1</translation> <translation>The password fails the dictionary check - %1</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="257"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="263"/>
<source>The password fails the dictionary check</source> <source>The password fails the dictionary check</source>
<translation>The password fails the dictionary check</translation> <translation>The password fails the dictionary check</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="261"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="267"/>
<source>Unknown setting - %1</source> <source>Unknown setting - %1</source>
<translation>Unknown setting - %1</translation> <translation>Unknown setting - %1</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="265"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="271"/>
<source>Unknown setting</source> <source>Unknown setting</source>
<translation>Unknown setting</translation> <translation>Unknown setting</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="269"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="275"/>
<source>Bad integer value of setting - %1</source> <source>Bad integer value of setting - %1</source>
<translation>Bad integer value of setting - %1</translation> <translation>Bad integer value of setting - %1</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="274"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="280"/>
<source>Bad integer value</source> <source>Bad integer value</source>
<translation>Bad integer value</translation> <translation>Bad integer value</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="278"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="284"/>
<source>Setting %1 is not of integer type</source> <source>Setting %1 is not of integer type</source>
<translation>Setting %1 is not of integer type</translation> <translation>Setting %1 is not of integer type</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="283"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="289"/>
<source>Setting is not of integer type</source> <source>Setting is not of integer type</source>
<translation>Setting is not of integer type</translation> <translation>Setting is not of integer type</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="287"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="293"/>
<source>Setting %1 is not of string type</source> <source>Setting %1 is not of string type</source>
<translation>Setting %1 is not of string type</translation> <translation>Setting %1 is not of string type</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="292"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="298"/>
<source>Setting is not of string type</source> <source>Setting is not of string type</source>
<translation>Setting is not of string type</translation> <translation>Setting is not of string type</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="294"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="300"/>
<source>Opening the configuration file failed</source> <source>Opening the configuration file failed</source>
<translation>Opening the configuration file failed</translation> <translation>Opening the configuration file failed</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="296"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="302"/>
<source>The configuration file is malformed</source> <source>The configuration file is malformed</source>
<translation>The configuration file is malformed</translation> <translation>The configuration file is malformed</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="298"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="304"/>
<source>Fatal failure</source> <source>Fatal failure</source>
<translation>Fatal failure</translation> <translation>Fatal failure</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/CheckPWQuality.cpp" line="300"/> <location filename="../src/modules/users/CheckPWQuality.cpp" line="306"/>
<source>Unknown error</source> <source>Unknown error</source>
<translation>Unknown error</translation> <translation>Unknown error</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/users/Config.cpp" line="651"/> <location filename="../src/modules/users/Config.cpp" line="729"/>
<source>Password is empty</source> <source>Password is empty</source>
<translation>Password is empty</translation> <translation>Password is empty</translation>
</message> </message>
@ -2572,117 +2596,117 @@ The installer will quit and all changes will be lost.</translation>
<context> <context>
<name>PartitionViewStep</name> <name>PartitionViewStep</name>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="69"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="70"/>
<source>Gathering system information...</source> <source>Gathering system information...</source>
<translation>Gathering system information...</translation> <translation>Gathering system information...</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="124"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="125"/>
<source>Partitions</source> <source>Partitions</source>
<translation>Partitions</translation> <translation>Partitions</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="162"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="163"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system.</source> <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> <translation>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system.</translation>
</message> </message>
<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;Erase&lt;/strong&gt; disk and install %1.</source> <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> <translation>&lt;strong&gt;Erase&lt;/strong&gt; disk and install %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="169"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="170"/>
<source>&lt;strong&gt;Replace&lt;/strong&gt; a partition with %1.</source> <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> <translation>&lt;strong&gt;Replace&lt;/strong&gt; a partition with %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="173"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="174"/>
<source>&lt;strong&gt;Manual&lt;/strong&gt; partitioning.</source> <source>&lt;strong&gt;Manual&lt;/strong&gt; partitioning.</source>
<translation>&lt;strong&gt;Manual&lt;/strong&gt; partitioning.</translation> <translation>&lt;strong&gt;Manual&lt;/strong&gt; partitioning.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="186"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="187"/>
<source>Install %1 &lt;strong&gt;alongside&lt;/strong&gt; another operating system on disk &lt;strong&gt;%2&lt;/strong&gt; (%3).</source> <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> <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>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="193"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="194"/>
<source>&lt;strong&gt;Erase&lt;/strong&gt; disk &lt;strong&gt;%2&lt;/strong&gt; (%3) and install %1.</source> <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> <translation>&lt;strong&gt;Erase&lt;/strong&gt; disk &lt;strong&gt;%2&lt;/strong&gt; (%3) and install %1.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="199"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="200"/>
<source>&lt;strong&gt;Replace&lt;/strong&gt; a partition on disk &lt;strong&gt;%2&lt;/strong&gt; (%3) with %1.</source> <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> <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>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="206"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="207"/>
<source>&lt;strong&gt;Manual&lt;/strong&gt; partitioning on disk &lt;strong&gt;%1&lt;/strong&gt; (%2).</source> <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> <translation>&lt;strong&gt;Manual&lt;/strong&gt; partitioning on disk &lt;strong&gt;%1&lt;/strong&gt; (%2).</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="215"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="216"/>
<source>Disk &lt;strong&gt;%1&lt;/strong&gt; (%2)</source> <source>Disk &lt;strong&gt;%1&lt;/strong&gt; (%2)</source>
<translation>Disk &lt;strong&gt;%1&lt;/strong&gt; (%2)</translation> <translation>Disk &lt;strong&gt;%1&lt;/strong&gt; (%2)</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="241"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="242"/>
<source>Current:</source> <source>Current:</source>
<translation>Current:</translation> <translation>Current:</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="259"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="260"/>
<source>After:</source> <source>After:</source>
<translation>After:</translation> <translation>After:</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="426"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="427"/>
<source>No EFI system partition configured</source> <source>No EFI system partition configured</source>
<translation>No EFI system partition configured</translation> <translation>No EFI system partition configured</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="427"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="428"/>
<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;%3&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> <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;%3&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;%3&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> <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;%3&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>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="441"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="442"/>
<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;%3&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> <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;%3&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;%3&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> <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;%3&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>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="440"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="441"/>
<source>EFI system partition flag not set</source> <source>EFI system partition flag not set</source>
<translation>EFI system partition flag not set</translation> <translation>EFI system partition flag not set</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="467"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="468"/>
<source>Option to use GPT on BIOS</source> <source>Option to use GPT on BIOS</source>
<translation>Option to use GPT on BIOS</translation> <translation>Option to use GPT on BIOS</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="468"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="469"/>
<source>A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.&lt;br/&gt;&lt;br/&gt;To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the &lt;strong&gt;bios_grub&lt;/strong&gt; flag enabled.&lt;br/&gt;&lt;br/&gt;An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT.</source> <source>A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.&lt;br/&gt;&lt;br/&gt;To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the &lt;strong&gt;bios_grub&lt;/strong&gt; flag enabled.&lt;br/&gt;&lt;br/&gt;An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT.</source>
<translation>A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.&lt;br/&gt;&lt;br/&gt;To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the &lt;strong&gt;bios_grub&lt;/strong&gt; flag enabled.&lt;br/&gt;&lt;br/&gt;An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT.</translation> <translation>A GPT partition table is the best option for all systems. This installer supports such a setup for BIOS systems too.&lt;br/&gt;&lt;br/&gt;To configure a GPT partition table on BIOS, (if not done so already) go back and set the partition table to GPT, next create a 8 MB unformatted partition with the &lt;strong&gt;bios_grub&lt;/strong&gt; flag enabled.&lt;br/&gt;&lt;br/&gt;An unformatted 8 MB partition is necessary to start %1 on a BIOS system with GPT.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="496"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="497"/>
<source>Boot partition not encrypted</source> <source>Boot partition not encrypted</source>
<translation>Boot partition not encrypted</translation> <translation>Boot partition not encrypted</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="497"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="498"/>
<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> <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> <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> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="626"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="627"/>
<source>has at least one disk device available.</source> <source>has at least one disk device available.</source>
<translation>has at least one disk device available.</translation> <translation>has at least one disk device available.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="627"/> <location filename="../src/modules/partition/gui/PartitionViewStep.cpp" line="628"/>
<source>There are no partitions to install on.</source> <source>There are no partitions to install on.</source>
<translation>There are no partitions to install on.</translation> <translation>There are no partitions to install on.</translation>
</message> </message>
@ -2842,13 +2866,8 @@ Output:
<translation>swap</translation> <translation>swap</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/keyboard/keyboardwidget/keyboardglobal.cpp" line="90"/> <location filename="../src/modules/keyboard/keyboardwidget/keyboardglobal.cpp" line="130"/>
<source>Default Keyboard Model</source> <location filename="../src/modules/keyboard/keyboardwidget/keyboardglobal.cpp" line="167"/>
<translation>Default Keyboard Model</translation>
</message>
<message>
<location filename="../src/modules/keyboard/keyboardwidget/keyboardglobal.cpp" line="136"/>
<location filename="../src/modules/keyboard/keyboardwidget/keyboardglobal.cpp" line="173"/>
<source>Default</source> <source>Default</source>
<translation>Default</translation> <translation>Default</translation>
</message> </message>
@ -3232,29 +3251,29 @@ Output:
<context> <context>
<name>SetKeyboardLayoutJob</name> <name>SetKeyboardLayoutJob</name>
<message> <message>
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="53"/> <location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="55"/>
<source>Set keyboard model to %1, layout to %2-%3</source> <source>Set keyboard model to %1, layout to %2-%3</source>
<translation>Set keyboard model to %1, layout to %2-%3</translation> <translation>Set keyboard model to %1, layout to %2-%3</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="356"/> <location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="368"/>
<source>Failed to write keyboard configuration for the virtual console.</source> <source>Failed to write keyboard configuration for the virtual console.</source>
<translation>Failed to write keyboard configuration for the virtual console.</translation> <translation>Failed to write keyboard configuration for the virtual console.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="357"/> <location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="369"/>
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="361"/> <location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="397"/>
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="368"/> <location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="414"/>
<source>Failed to write to %1</source> <source>Failed to write to %1</source>
<translation>Failed to write to %1</translation> <translation>Failed to write to %1</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="360"/> <location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="396"/>
<source>Failed to write keyboard configuration for X11.</source> <source>Failed to write keyboard configuration for X11.</source>
<translation>Failed to write keyboard configuration for X11.</translation> <translation>Failed to write keyboard configuration for X11.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="367"/> <location filename="../src/modules/keyboard/SetKeyboardLayoutJob.cpp" line="413"/>
<source>Failed to write keyboard configuration to existing /etc/default directory.</source> <source>Failed to write keyboard configuration to existing /etc/default directory.</source>
<translation>Failed to write keyboard configuration to existing /etc/default directory.</translation> <translation>Failed to write keyboard configuration to existing /etc/default directory.</translation>
</message> </message>
@ -3423,6 +3442,43 @@ Output:
<translation>Cannot open /etc/timezone for writing</translation> <translation>Cannot open /etc/timezone for writing</translation>
</message> </message>
</context> </context>
<context>
<name>SetupGroupsJob</name>
<message>
<location filename="../src/modules/users/MiscJobs.cpp" line="166"/>
<source>Preparing groups.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/modules/users/MiscJobs.cpp" line="178"/>
<location filename="../src/modules/users/MiscJobs.cpp" line="183"/>
<source>Could not create groups in target system</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/modules/users/MiscJobs.cpp" line="184"/>
<source>These groups are missing in the target system: %1</source>
<translation type="unfinished"/>
</message>
</context>
<context>
<name>SetupSudoJob</name>
<message>
<location filename="../src/modules/users/MiscJobs.cpp" line="33"/>
<source>Configure &lt;pre&gt;sudo&lt;/pre&gt; users.</source>
<translation type="unfinished"/>
</message>
<message>
<location filename="../src/modules/users/MiscJobs.cpp" line="55"/>
<source>Cannot chmod sudoers file.</source>
<translation type="unfinished">Cannot chmod sudoers file.</translation>
</message>
<message>
<location filename="../src/modules/users/MiscJobs.cpp" line="60"/>
<source>Cannot create sudoers file for writing.</source>
<translation type="unfinished">Cannot create sudoers file for writing.</translation>
</message>
</context>
<context> <context>
<name>ShellProcessJob</name> <name>ShellProcessJob</name>
<message> <message>
@ -3443,12 +3499,12 @@ Output:
<context> <context>
<name>SummaryPage</name> <name>SummaryPage</name>
<message> <message>
<location filename="../src/modules/summary/SummaryPage.cpp" line="47"/> <location filename="../src/modules/summary/SummaryPage.cpp" line="48"/>
<source>This is an overview of what will happen once you start the setup procedure.</source> <source>This is an overview of what will happen once you start the setup procedure.</source>
<translation>This is an overview of what will happen once you start the setup procedure.</translation> <translation>This is an overview of what will happen once you start the setup procedure.</translation>
</message> </message>
<message> <message>
<location filename="../src/modules/summary/SummaryPage.cpp" line="49"/> <location filename="../src/modules/summary/SummaryPage.cpp" line="50"/>
<source>This is an overview of what will happen once you start the install procedure.</source> <source>This is an overview of what will happen once you start the install procedure.</source>
<translation>This is an overview of what will happen once you start the install procedure.</translation> <translation>This is an overview of what will happen once you start the install procedure.</translation>
</message> </message>

View File

@ -8,26 +8,26 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-16 22:35+0200\n" "POT-Creation-Date: 2020-11-09 15:12+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n" "Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
#: src/modules/grubcfg/main.py:28 #: src/modules/grubcfg/main.py:28
msgid "Configure GRUB." msgid "Configure GRUB."
msgstr "Configure GRUB." msgstr ""
#: src/modules/mount/main.py:29 #: src/modules/mount/main.py:30
msgid "Mounting partitions." msgid "Mounting partitions."
msgstr "Mounting partitions." msgstr ""
#: src/modules/mount/main.py:141 src/modules/initcpiocfg/main.py:196 #: src/modules/mount/main.py:127 src/modules/initcpiocfg/main.py:199
#: src/modules/initcpiocfg/main.py:200 #: src/modules/initcpiocfg/main.py:203
#: src/modules/luksopenswaphookcfg/main.py:86 #: src/modules/luksopenswaphookcfg/main.py:86
#: src/modules/luksopenswaphookcfg/main.py:90 src/modules/rawfs/main.py:164 #: src/modules/luksopenswaphookcfg/main.py:90 src/modules/rawfs/main.py:164
#: src/modules/initramfscfg/main.py:85 src/modules/initramfscfg/main.py:89 #: src/modules/initramfscfg/main.py:85 src/modules/initramfscfg/main.py:89
@ -36,327 +36,312 @@ msgstr "Mounting partitions."
#: src/modules/fstab/main.py:367 src/modules/localecfg/main.py:135 #: src/modules/fstab/main.py:367 src/modules/localecfg/main.py:135
#: src/modules/networkcfg/main.py:39 #: src/modules/networkcfg/main.py:39
msgid "Configuration Error" msgid "Configuration Error"
msgstr "Configuration Error" msgstr ""
#: src/modules/mount/main.py:142 src/modules/initcpiocfg/main.py:197 #: src/modules/mount/main.py:128 src/modules/initcpiocfg/main.py:200
#: src/modules/luksopenswaphookcfg/main.py:87 src/modules/rawfs/main.py:165 #: src/modules/luksopenswaphookcfg/main.py:87 src/modules/rawfs/main.py:165
#: src/modules/initramfscfg/main.py:86 src/modules/openrcdmcryptcfg/main.py:70 #: src/modules/initramfscfg/main.py:86 src/modules/openrcdmcryptcfg/main.py:70
#: src/modules/fstab/main.py:362 #: src/modules/fstab/main.py:362
msgid "No partitions are defined for <pre>{!s}</pre> to use." msgid "No partitions are defined for <pre>{!s}</pre> to use."
msgstr "No partitions are defined for <pre>{!s}</pre> to use." msgstr ""
#: src/modules/services-systemd/main.py:26 #: src/modules/services-systemd/main.py:26
msgid "Configure systemd services" msgid "Configure systemd services"
msgstr "Configure systemd services" msgstr ""
#: src/modules/services-systemd/main.py:59 #: src/modules/services-systemd/main.py:59
#: src/modules/services-openrc/main.py:93 #: src/modules/services-openrc/main.py:93
msgid "Cannot modify service" msgid "Cannot modify service"
msgstr "Cannot modify service" msgstr ""
#: src/modules/services-systemd/main.py:60 #: src/modules/services-systemd/main.py:60
msgid "" msgid ""
"<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}." "<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}."
msgstr "" msgstr ""
"<code>systemctl {arg!s}</code> call in chroot returned error code {num!s}."
#: src/modules/services-systemd/main.py:63 #: src/modules/services-systemd/main.py:63
#: src/modules/services-systemd/main.py:67 #: src/modules/services-systemd/main.py:67
msgid "Cannot enable systemd service <code>{name!s}</code>." msgid "Cannot enable systemd service <code>{name!s}</code>."
msgstr "Cannot enable systemd service <code>{name!s}</code>." msgstr ""
#: src/modules/services-systemd/main.py:65 #: src/modules/services-systemd/main.py:65
msgid "Cannot enable systemd target <code>{name!s}</code>." msgid "Cannot enable systemd target <code>{name!s}</code>."
msgstr "Cannot enable systemd target <code>{name!s}</code>." msgstr ""
#: src/modules/services-systemd/main.py:69 #: src/modules/services-systemd/main.py:69
msgid "Cannot disable systemd target <code>{name!s}</code>." msgid "Cannot disable systemd target <code>{name!s}</code>."
msgstr "Cannot disable systemd target <code>{name!s}</code>." msgstr ""
#: src/modules/services-systemd/main.py:71 #: src/modules/services-systemd/main.py:71
msgid "Cannot mask systemd unit <code>{name!s}</code>." msgid "Cannot mask systemd unit <code>{name!s}</code>."
msgstr "Cannot mask systemd unit <code>{name!s}</code>." msgstr ""
#: src/modules/services-systemd/main.py:73 #: src/modules/services-systemd/main.py:73
msgid "" msgid ""
"Unknown systemd commands <code>{command!s}</code> and " "Unknown systemd commands <code>{command!s}</code> and <code>{suffix!s}</"
"<code>{suffix!s}</code> for unit {name!s}." "code> for unit {name!s}."
msgstr "" msgstr ""
"Unknown systemd commands <code>{command!s}</code> and "
"<code>{suffix!s}</code> for unit {name!s}."
#: src/modules/umount/main.py:31 #: src/modules/umount/main.py:31
msgid "Unmount file systems." msgid "Unmount file systems."
msgstr "Unmount file systems." msgstr ""
#: src/modules/unpackfs/main.py:35 #: src/modules/unpackfs/main.py:35
msgid "Filling up filesystems." msgid "Filling up filesystems."
msgstr "Filling up filesystems." msgstr ""
#: src/modules/unpackfs/main.py:254 #: src/modules/unpackfs/main.py:254
msgid "rsync failed with error code {}." msgid "rsync failed with error code {}."
msgstr "rsync failed with error code {}." msgstr ""
#: src/modules/unpackfs/main.py:299 #: src/modules/unpackfs/main.py:299
msgid "Unpacking image {}/{}, file {}/{}" msgid "Unpacking image {}/{}, file {}/{}"
msgstr "Unpacking image {}/{}, file {}/{}" msgstr ""
#: src/modules/unpackfs/main.py:314 #: src/modules/unpackfs/main.py:314
msgid "Starting to unpack {}" msgid "Starting to unpack {}"
msgstr "Starting to unpack {}" msgstr ""
#: src/modules/unpackfs/main.py:323 src/modules/unpackfs/main.py:463 #: src/modules/unpackfs/main.py:323 src/modules/unpackfs/main.py:463
msgid "Failed to unpack image \"{}\"" msgid "Failed to unpack image \"{}\""
msgstr "Failed to unpack image \"{}\"" msgstr ""
#: src/modules/unpackfs/main.py:430 #: src/modules/unpackfs/main.py:430
msgid "No mount point for root partition" msgid "No mount point for root partition"
msgstr "No mount point for root partition" msgstr ""
#: src/modules/unpackfs/main.py:431 #: src/modules/unpackfs/main.py:431
msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgid "globalstorage does not contain a \"rootMountPoint\" key, doing nothing"
msgstr "globalstorage does not contain a \"rootMountPoint\" key, doing nothing" msgstr ""
#: src/modules/unpackfs/main.py:436 #: src/modules/unpackfs/main.py:436
msgid "Bad mount point for root partition" msgid "Bad mount point for root partition"
msgstr "Bad mount point for root partition" msgstr ""
#: src/modules/unpackfs/main.py:437 #: src/modules/unpackfs/main.py:437
msgid "rootMountPoint is \"{}\", which does not exist, doing nothing" msgid "rootMountPoint is \"{}\", which does not exist, doing nothing"
msgstr "rootMountPoint is \"{}\", which does not exist, doing nothing" msgstr ""
#: src/modules/unpackfs/main.py:453 src/modules/unpackfs/main.py:457 #: src/modules/unpackfs/main.py:453 src/modules/unpackfs/main.py:457
#: src/modules/unpackfs/main.py:477 #: src/modules/unpackfs/main.py:477
msgid "Bad unsquash configuration" msgid "Bad unsquash configuration"
msgstr "Bad unsquash configuration" msgstr ""
#: src/modules/unpackfs/main.py:454 #: src/modules/unpackfs/main.py:454
msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgid "The filesystem for \"{}\" ({}) is not supported by your current kernel"
msgstr "The filesystem for \"{}\" ({}) is not supported by your current kernel" msgstr ""
#: src/modules/unpackfs/main.py:458 #: src/modules/unpackfs/main.py:458
msgid "The source filesystem \"{}\" does not exist" msgid "The source filesystem \"{}\" does not exist"
msgstr "The source filesystem \"{}\" does not exist" msgstr ""
#: src/modules/unpackfs/main.py:464 #: src/modules/unpackfs/main.py:464
msgid "" msgid ""
"Failed to find unsquashfs, make sure you have the squashfs-tools package " "Failed to find unsquashfs, make sure you have the squashfs-tools package "
"installed" "installed"
msgstr "" msgstr ""
"Failed to find unsquashfs, make sure you have the squashfs-tools package "
"installed"
#: src/modules/unpackfs/main.py:478 #: src/modules/unpackfs/main.py:478
msgid "The destination \"{}\" in the target system is not a directory" msgid "The destination \"{}\" in the target system is not a directory"
msgstr "The destination \"{}\" in the target system is not a directory" msgstr ""
#: src/modules/displaymanager/main.py:514 #: src/modules/displaymanager/main.py:514
msgid "Cannot write KDM configuration file" msgid "Cannot write KDM configuration file"
msgstr "Cannot write KDM configuration file" msgstr ""
#: src/modules/displaymanager/main.py:515 #: src/modules/displaymanager/main.py:515
msgid "KDM config file {!s} does not exist" msgid "KDM config file {!s} does not exist"
msgstr "KDM config file {!s} does not exist" msgstr ""
#: src/modules/displaymanager/main.py:576 #: src/modules/displaymanager/main.py:576
msgid "Cannot write LXDM configuration file" msgid "Cannot write LXDM configuration file"
msgstr "Cannot write LXDM configuration file" msgstr ""
#: src/modules/displaymanager/main.py:577 #: src/modules/displaymanager/main.py:577
msgid "LXDM config file {!s} does not exist" msgid "LXDM config file {!s} does not exist"
msgstr "LXDM config file {!s} does not exist" msgstr ""
#: src/modules/displaymanager/main.py:660 #: src/modules/displaymanager/main.py:660
msgid "Cannot write LightDM configuration file" msgid "Cannot write LightDM configuration file"
msgstr "Cannot write LightDM configuration file" msgstr ""
#: src/modules/displaymanager/main.py:661 #: src/modules/displaymanager/main.py:661
msgid "LightDM config file {!s} does not exist" msgid "LightDM config file {!s} does not exist"
msgstr "LightDM config file {!s} does not exist" msgstr ""
#: src/modules/displaymanager/main.py:735 #: src/modules/displaymanager/main.py:735
msgid "Cannot configure LightDM" msgid "Cannot configure LightDM"
msgstr "Cannot configure LightDM" msgstr ""
#: src/modules/displaymanager/main.py:736 #: src/modules/displaymanager/main.py:736
msgid "No LightDM greeter installed." msgid "No LightDM greeter installed."
msgstr "No LightDM greeter installed." msgstr ""
#: src/modules/displaymanager/main.py:767 #: src/modules/displaymanager/main.py:767
msgid "Cannot write SLIM configuration file" msgid "Cannot write SLIM configuration file"
msgstr "Cannot write SLIM configuration file" msgstr ""
#: src/modules/displaymanager/main.py:768 #: src/modules/displaymanager/main.py:768
msgid "SLIM config file {!s} does not exist" msgid "SLIM config file {!s} does not exist"
msgstr "SLIM config file {!s} does not exist" msgstr ""
#: src/modules/displaymanager/main.py:894 #: src/modules/displaymanager/main.py:894
msgid "No display managers selected for the displaymanager module." msgid "No display managers selected for the displaymanager module."
msgstr "No display managers selected for the displaymanager module." msgstr ""
#: src/modules/displaymanager/main.py:895 #: src/modules/displaymanager/main.py:895
msgid "" msgid ""
"The displaymanagers list is empty or undefined in both globalstorage and " "The displaymanagers list is empty or undefined in both globalstorage and "
"displaymanager.conf." "displaymanager.conf."
msgstr "" msgstr ""
"The displaymanagers list is empty or undefined in both globalstorage and "
"displaymanager.conf."
#: src/modules/displaymanager/main.py:977 #: src/modules/displaymanager/main.py:977
msgid "Display manager configuration was incomplete" msgid "Display manager configuration was incomplete"
msgstr "Display manager configuration was incomplete" msgstr ""
#: src/modules/initcpiocfg/main.py:28 #: src/modules/initcpiocfg/main.py:28
msgid "Configuring mkinitcpio." msgid "Configuring mkinitcpio."
msgstr "Configuring mkinitcpio." msgstr ""
#: src/modules/initcpiocfg/main.py:201 #: src/modules/initcpiocfg/main.py:204
#: src/modules/luksopenswaphookcfg/main.py:91 #: src/modules/luksopenswaphookcfg/main.py:91
#: src/modules/initramfscfg/main.py:90 src/modules/openrcdmcryptcfg/main.py:74 #: src/modules/initramfscfg/main.py:90 src/modules/openrcdmcryptcfg/main.py:74
#: src/modules/fstab/main.py:368 src/modules/localecfg/main.py:136 #: src/modules/fstab/main.py:368 src/modules/localecfg/main.py:136
#: src/modules/networkcfg/main.py:40 #: src/modules/networkcfg/main.py:40
msgid "No root mount point is given for <pre>{!s}</pre> to use." msgid "No root mount point is given for <pre>{!s}</pre> to use."
msgstr "No root mount point is given for <pre>{!s}</pre> to use." msgstr ""
#: src/modules/luksopenswaphookcfg/main.py:26 #: src/modules/luksopenswaphookcfg/main.py:26
msgid "Configuring encrypted swap." msgid "Configuring encrypted swap."
msgstr "Configuring encrypted swap." msgstr ""
#: src/modules/rawfs/main.py:26 #: src/modules/rawfs/main.py:26
msgid "Installing data." msgid "Installing data."
msgstr "Installing data." msgstr ""
#: src/modules/services-openrc/main.py:29 #: src/modules/services-openrc/main.py:29
msgid "Configure OpenRC services" msgid "Configure OpenRC services"
msgstr "Configure OpenRC services" msgstr ""
#: src/modules/services-openrc/main.py:57 #: src/modules/services-openrc/main.py:57
msgid "Cannot add service {name!s} to run-level {level!s}." msgid "Cannot add service {name!s} to run-level {level!s}."
msgstr "Cannot add service {name!s} to run-level {level!s}." msgstr ""
#: src/modules/services-openrc/main.py:59 #: src/modules/services-openrc/main.py:59
msgid "Cannot remove service {name!s} from run-level {level!s}." msgid "Cannot remove service {name!s} from run-level {level!s}."
msgstr "Cannot remove service {name!s} from run-level {level!s}." msgstr ""
#: src/modules/services-openrc/main.py:61 #: src/modules/services-openrc/main.py:61
msgid "" msgid ""
"Unknown service-action <code>{arg!s}</code> for service {name!s} in run-" "Unknown service-action <code>{arg!s}</code> for service {name!s} in run-"
"level {level!s}." "level {level!s}."
msgstr "" msgstr ""
"Unknown service-action <code>{arg!s}</code> for service {name!s} in run-"
"level {level!s}."
#: src/modules/services-openrc/main.py:94 #: src/modules/services-openrc/main.py:94
msgid "" msgid ""
"<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}." "<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}."
msgstr "" msgstr ""
"<code>rc-update {arg!s}</code> call in chroot returned error code {num!s}."
#: src/modules/services-openrc/main.py:101 #: src/modules/services-openrc/main.py:101
msgid "Target runlevel does not exist" msgid "Target runlevel does not exist"
msgstr "Target runlevel does not exist" msgstr ""
#: src/modules/services-openrc/main.py:102 #: src/modules/services-openrc/main.py:102
msgid "" msgid ""
"The path for runlevel {level!s} is <code>{path!s}</code>, which does not " "The path for runlevel {level!s} is <code>{path!s}</code>, which does not "
"exist." "exist."
msgstr "" msgstr ""
"The path for runlevel {level!s} is <code>{path!s}</code>, which does not "
"exist."
#: src/modules/services-openrc/main.py:110 #: src/modules/services-openrc/main.py:110
msgid "Target service does not exist" msgid "Target service does not exist"
msgstr "Target service does not exist" msgstr ""
#: src/modules/services-openrc/main.py:111 #: src/modules/services-openrc/main.py:111
msgid "" msgid ""
"The path for service {name!s} is <code>{path!s}</code>, which does not " "The path for service {name!s} is <code>{path!s}</code>, which does not exist."
"exist."
msgstr "" msgstr ""
"The path for service {name!s} is <code>{path!s}</code>, which does not "
"exist."
#: src/modules/plymouthcfg/main.py:27 #: src/modules/plymouthcfg/main.py:27
msgid "Configure Plymouth theme" msgid "Configure Plymouth theme"
msgstr "Configure Plymouth theme" msgstr ""
#: src/modules/packages/main.py:50 src/modules/packages/main.py:59 #: src/modules/packages/main.py:50 src/modules/packages/main.py:59
#: src/modules/packages/main.py:69 #: src/modules/packages/main.py:69
msgid "Install packages." msgid "Install packages."
msgstr "Install packages." msgstr ""
#: src/modules/packages/main.py:57 #: src/modules/packages/main.py:57
#, python-format #, python-format
msgid "Processing packages (%(count)d / %(total)d)" msgid "Processing packages (%(count)d / %(total)d)"
msgstr "Processing packages (%(count)d / %(total)d)" msgstr ""
#: src/modules/packages/main.py:62 #: src/modules/packages/main.py:62
#, python-format #, python-format
msgid "Installing one package." msgid "Installing one package."
msgid_plural "Installing %(num)d packages." msgid_plural "Installing %(num)d packages."
msgstr[0] "Installing one package." msgstr[0] ""
msgstr[1] "Installing %(num)d packages." msgstr[1] ""
#: src/modules/packages/main.py:65 #: src/modules/packages/main.py:65
#, python-format #, python-format
msgid "Removing one package." msgid "Removing one package."
msgid_plural "Removing %(num)d packages." msgid_plural "Removing %(num)d packages."
msgstr[0] "Removing one package." msgstr[0] ""
msgstr[1] "Removing %(num)d packages." msgstr[1] ""
#: src/modules/bootloader/main.py:42 #: src/modules/bootloader/main.py:42
msgid "Install bootloader." msgid "Install bootloader."
msgstr "Install bootloader." msgstr ""
#: src/modules/hwclock/main.py:26 #: src/modules/hwclock/main.py:26
msgid "Setting hardware clock." msgid "Setting hardware clock."
msgstr "Setting hardware clock." msgstr ""
#: src/modules/mkinitfs/main.py:27 #: src/modules/mkinitfs/main.py:27
msgid "Creating initramfs with mkinitfs." msgid "Creating initramfs with mkinitfs."
msgstr "Creating initramfs with mkinitfs." msgstr ""
#: src/modules/mkinitfs/main.py:49 #: src/modules/mkinitfs/main.py:49
msgid "Failed to run mkinitfs on the target" msgid "Failed to run mkinitfs on the target"
msgstr "Failed to run mkinitfs on the target" msgstr ""
#: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50 #: src/modules/mkinitfs/main.py:50 src/modules/dracut/main.py:50
msgid "The exit code was {}" msgid "The exit code was {}"
msgstr "The exit code was {}" msgstr ""
#: src/modules/dracut/main.py:27 #: src/modules/dracut/main.py:27
msgid "Creating initramfs with dracut." msgid "Creating initramfs with dracut."
msgstr "Creating initramfs with dracut." msgstr ""
#: src/modules/dracut/main.py:49 #: src/modules/dracut/main.py:49
msgid "Failed to run dracut on the target" msgid "Failed to run dracut on the target"
msgstr "Failed to run dracut on the target" msgstr ""
#: src/modules/initramfscfg/main.py:32 #: src/modules/initramfscfg/main.py:32
msgid "Configuring initramfs." msgid "Configuring initramfs."
msgstr "Configuring initramfs." msgstr ""
#: src/modules/openrcdmcryptcfg/main.py:25 #: src/modules/openrcdmcryptcfg/main.py:25
msgid "Configuring OpenRC dmcrypt service." msgid "Configuring OpenRC dmcrypt service."
msgstr "Configuring OpenRC dmcrypt service." msgstr ""
#: src/modules/fstab/main.py:29 #: src/modules/fstab/main.py:29
msgid "Writing fstab." msgid "Writing fstab."
msgstr "Writing fstab." msgstr ""
#: src/modules/dummypython/main.py:35 #: src/modules/dummypython/main.py:35
msgid "Dummy python job." msgid "Dummy python job."
msgstr "Dummy python job." msgstr ""
#: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93 #: src/modules/dummypython/main.py:37 src/modules/dummypython/main.py:93
#: src/modules/dummypython/main.py:94 #: src/modules/dummypython/main.py:94
msgid "Dummy python step {}" msgid "Dummy python step {}"
msgstr "Dummy python step {}" msgstr ""
#: src/modules/localecfg/main.py:30 #: src/modules/localecfg/main.py:30
msgid "Configuring locales." msgid "Configuring locales."
msgstr "Configuring locales." msgstr ""
#: src/modules/networkcfg/main.py:28 #: src/modules/networkcfg/main.py:28
msgid "Saving network configuration." msgid "Saving network configuration."
msgstr "Saving network configuration." msgstr ""

View File

@ -8,35 +8,35 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-10-15 12:53+0200\n" "POT-Creation-Date: 2020-11-09 15:12+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
"Language: \n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Language: \n"
#: src/modules/dummypythonqt/main.py:75 #: src/modules/dummypythonqt/main.py:75
msgid "Click me!" msgid "Click me!"
msgstr "Click me!" msgstr ""
#: src/modules/dummypythonqt/main.py:85 #: src/modules/dummypythonqt/main.py:85
msgid "A new QLabel." msgid "A new QLabel."
msgstr "A new QLabel." msgstr ""
#: src/modules/dummypythonqt/main.py:88 #: src/modules/dummypythonqt/main.py:88
msgid "Dummy PythonQt ViewStep" msgid "Dummy PythonQt ViewStep"
msgstr "Dummy PythonQt ViewStep" msgstr ""
#: src/modules/dummypythonqt/main.py:174 #: src/modules/dummypythonqt/main.py:174
msgid "The Dummy PythonQt Job" msgid "The Dummy PythonQt Job"
msgstr "The Dummy PythonQt Job" msgstr ""
#: src/modules/dummypythonqt/main.py:177 #: src/modules/dummypythonqt/main.py:177
msgid "This is the Dummy PythonQt Job. The dummy job says: {}" 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:181 #: src/modules/dummypythonqt/main.py:181
msgid "A status message for Dummy PythonQt Job." msgid "A status message for Dummy PythonQt Job."
msgstr "A status message for Dummy PythonQt Job." msgstr ""

View File

@ -104,7 +104,6 @@ public:
PWSettingsHolder() PWSettingsHolder()
: m_settings( pwquality_default_settings() ) : m_settings( pwquality_default_settings() )
, m_auxerror( nullptr )
{ {
} }
@ -113,27 +112,73 @@ public:
/// Sets an option via the configuration string @p v, <key>=<value> style. /// Sets an option via the configuration string @p v, <key>=<value> style.
int set( const QString& v ) { return pwquality_set_option( m_settings, v.toUtf8().constData() ); } int set( const QString& v ) { return pwquality_set_option( m_settings, v.toUtf8().constData() ); }
/// Checks the given password @p pwd against the current configuration /** @brief Checks the given password @p pwd against the current configuration
*
* Resets m_errorString and m_errorCount and then sets them appropriately
* so that explanation() can be called afterwards. Sets m_rv as well.
*/
int check( const QString& pwd ) int check( const QString& pwd )
{ {
void* auxerror = nullptr; void* auxerror = nullptr;
int r = pwquality_check( m_settings, pwd.toUtf8().constData(), nullptr, nullptr, &auxerror ); m_rv = pwquality_check( m_settings, pwd.toUtf8().constData(), nullptr, nullptr, &auxerror );
m_rv = r;
return r; // Positive return values could be ignored; some negative ones
// place extra information in auxerror, which is a void* and
// which needs interpretation to long- or string-values.
m_errorCount = 0;
m_errorString = QString();
switch ( m_rv )
{
case PWQ_ERROR_CRACKLIB_CHECK:
if ( auxerror )
{
/* Here the string comes from cracklib, don't free? */
m_errorString = mungeString( auxerror );
}
break;
case PWQ_ERROR_MEM_ALLOC:
case PWQ_ERROR_UNKNOWN_SETTING:
case PWQ_ERROR_INTEGER:
case PWQ_ERROR_NON_INT_SETTING:
case PWQ_ERROR_NON_STR_SETTING:
if ( auxerror )
{
m_errorString = mungeString( auxerror );
free( auxerror );
}
break;
case PWQ_ERROR_MIN_DIGITS:
case PWQ_ERROR_MIN_UPPERS:
case PWQ_ERROR_MIN_LOWERS:
case PWQ_ERROR_MIN_OTHERS:
case PWQ_ERROR_MIN_LENGTH:
case PWQ_ERROR_MIN_CLASSES:
case PWQ_ERROR_MAX_CONSECUTIVE:
case PWQ_ERROR_MAX_CLASS_REPEAT:
case PWQ_ERROR_MAX_SEQUENCE:
if ( auxerror )
{
m_errorCount = mungeLong( auxerror );
}
break;
default:
break;
}
return m_rv;
} }
bool hasExplanation() const { return m_rv < 0; } /** @brief Explain the results of the last call to check()
*
/* This is roughly the same as the function pwquality_strerror, * This is roughly the same as the function pwquality_strerror,
* only with QStrings instead, and using the Qt translation scheme. * only with QStrings instead, and using the Qt translation scheme.
* It is used under the terms of the GNU GPL v3 or later, as * It is used under the terms of the GNU GPL v3 or later, as
* allowed by the libpwquality license (LICENSES/GPLv2+-libpwquality) * allowed by the libpwquality license (LICENSES/GPLv2+-libpwquality)
*/ */
QString explanation() QString explanation()
{ {
void* auxerror = m_auxerror;
m_auxerror = nullptr;
if ( m_rv >= arbitrary_minimum_strength ) if ( m_rv >= arbitrary_minimum_strength )
{ {
return QString(); return QString();
@ -146,12 +191,10 @@ public:
switch ( m_rv ) switch ( m_rv )
{ {
case PWQ_ERROR_MEM_ALLOC: case PWQ_ERROR_MEM_ALLOC:
if ( auxerror ) if ( !m_errorString.isEmpty() )
{ {
QString s = QCoreApplication::translate( "PWQ", "Memory allocation error when setting '%1'" ) return QCoreApplication::translate( "PWQ", "Memory allocation error when setting '%1'" )
.arg( mungeString( auxerror ) ); .arg( m_errorString );
free( auxerror );
return s;
} }
return QCoreApplication::translate( "PWQ", "Memory allocation error" ); return QCoreApplication::translate( "PWQ", "Memory allocation error" );
case PWQ_ERROR_SAME_PASSWORD: case PWQ_ERROR_SAME_PASSWORD:
@ -170,73 +213,75 @@ public:
case PWQ_ERROR_BAD_WORDS: case PWQ_ERROR_BAD_WORDS:
return QCoreApplication::translate( "PWQ", "The password contains forbidden words in some form" ); return QCoreApplication::translate( "PWQ", "The password contains forbidden words in some form" );
case PWQ_ERROR_MIN_DIGITS: case PWQ_ERROR_MIN_DIGITS:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( "PWQ", "The password contains less than %1 digits" ) return QCoreApplication::translate(
.arg( mungeLong( auxerror ) ); "PWQ", "The password contains fewer than %n digits", nullptr, m_errorCount );
} }
return QCoreApplication::translate( "PWQ", "The password contains too few digits" ); return QCoreApplication::translate( "PWQ", "The password contains too few digits" );
case PWQ_ERROR_MIN_UPPERS: case PWQ_ERROR_MIN_UPPERS:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( "PWQ", "The password contains less than %1 uppercase letters" ) return QCoreApplication::translate(
.arg( mungeLong( auxerror ) ); "PWQ", "The password contains fewer than %n uppercase letters", nullptr, m_errorCount );
} }
return QCoreApplication::translate( "PWQ", "The password contains too few uppercase letters" ); return QCoreApplication::translate( "PWQ", "The password contains too few uppercase letters" );
case PWQ_ERROR_MIN_LOWERS: case PWQ_ERROR_MIN_LOWERS:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( "PWQ", "The password contains less than %1 lowercase letters" ) return QCoreApplication::translate(
.arg( mungeLong( auxerror ) ); "PWQ", "The password contains fewer than %n lowercase letters", nullptr, m_errorCount );
} }
return QCoreApplication::translate( "PWQ", "The password contains too few lowercase letters" ); return QCoreApplication::translate( "PWQ", "The password contains too few lowercase letters" );
case PWQ_ERROR_MIN_OTHERS: case PWQ_ERROR_MIN_OTHERS:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( "PWQ", return QCoreApplication::translate(
"The password contains less than %1 non-alphanumeric characters" ) "PWQ", "The password contains fewer than %n non-alphanumeric characters", nullptr, m_errorCount );
.arg( mungeLong( auxerror ) );
} }
return QCoreApplication::translate( "PWQ", "The password contains too few non-alphanumeric characters" ); return QCoreApplication::translate( "PWQ", "The password contains too few non-alphanumeric characters" );
case PWQ_ERROR_MIN_LENGTH: case PWQ_ERROR_MIN_LENGTH:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( "PWQ", "The password is shorter than %1 characters" ) return QCoreApplication::translate(
.arg( mungeLong( auxerror ) ); "PWQ", "The password is shorter than %n characters", nullptr, m_errorCount );
} }
return QCoreApplication::translate( "PWQ", "The password is too short" ); return QCoreApplication::translate( "PWQ", "The password is too short" );
case PWQ_ERROR_ROTATED: case PWQ_ERROR_ROTATED:
return QCoreApplication::translate( "PWQ", "The password is just rotated old one" ); return QCoreApplication::translate( "PWQ", "The password is a rotated version of the previous one" );
case PWQ_ERROR_MIN_CLASSES: case PWQ_ERROR_MIN_CLASSES:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( "PWQ", "The password contains less than %1 character classes" ) return QCoreApplication::translate(
.arg( mungeLong( auxerror ) ); "PWQ", "The password contains fewer than %n character classes", nullptr, m_errorCount );
} }
return QCoreApplication::translate( "PWQ", "The password does not contain enough character classes" ); return QCoreApplication::translate( "PWQ", "The password does not contain enough character classes" );
case PWQ_ERROR_MAX_CONSECUTIVE: case PWQ_ERROR_MAX_CONSECUTIVE:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( "PWQ", return QCoreApplication::translate(
"The password contains more than %1 same characters consecutively" ) "PWQ", "The password contains more than %n same characters consecutively", nullptr, m_errorCount );
.arg( mungeLong( auxerror ) );
} }
return QCoreApplication::translate( "PWQ", "The password contains too many same characters consecutively" ); return QCoreApplication::translate( "PWQ", "The password contains too many same characters consecutively" );
case PWQ_ERROR_MAX_CLASS_REPEAT: case PWQ_ERROR_MAX_CLASS_REPEAT:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( return QCoreApplication::translate(
"PWQ", "The password contains more than %1 characters of the same class consecutively" ) "PWQ",
.arg( mungeLong( auxerror ) ); "The password contains more than %n characters of the same class consecutively",
nullptr,
m_errorCount );
} }
return QCoreApplication::translate( return QCoreApplication::translate(
"PWQ", "The password contains too many characters of the same class consecutively" ); "PWQ", "The password contains too many characters of the same class consecutively" );
case PWQ_ERROR_MAX_SEQUENCE: case PWQ_ERROR_MAX_SEQUENCE:
if ( auxerror ) if ( m_errorCount )
{ {
return QCoreApplication::translate( return QCoreApplication::translate(
"PWQ", "The password contains monotonic sequence longer than %1 characters" ) "PWQ",
.arg( mungeLong( auxerror ) ); "The password contains monotonic sequence longer than %n characters",
nullptr,
m_errorCount );
} }
return QCoreApplication::translate( "PWQ", return QCoreApplication::translate( "PWQ",
"The password contains too long of a monotonic character sequence" ); "The password contains too long of a monotonic character sequence" );
@ -248,46 +293,34 @@ public:
return QCoreApplication::translate( "PWQ", return QCoreApplication::translate( "PWQ",
"Password generation failed - required entropy too low for settings" ); "Password generation failed - required entropy too low for settings" );
case PWQ_ERROR_CRACKLIB_CHECK: case PWQ_ERROR_CRACKLIB_CHECK:
if ( auxerror ) if ( !m_errorString.isEmpty() )
{ {
/* Here the string comes from cracklib, don't free? */
return QCoreApplication::translate( "PWQ", "The password fails the dictionary check - %1" ) return QCoreApplication::translate( "PWQ", "The password fails the dictionary check - %1" )
.arg( mungeString( auxerror ) ); .arg( m_errorString );
} }
return QCoreApplication::translate( "PWQ", "The password fails the dictionary check" ); return QCoreApplication::translate( "PWQ", "The password fails the dictionary check" );
case PWQ_ERROR_UNKNOWN_SETTING: case PWQ_ERROR_UNKNOWN_SETTING:
if ( auxerror ) if ( !m_errorString.isEmpty() )
{ {
QString s = QCoreApplication::translate( "PWQ", "Unknown setting - %1" ).arg( mungeString( auxerror ) ); return QCoreApplication::translate( "PWQ", "Unknown setting - %1" ).arg( m_errorString );
free( auxerror );
return s;
} }
return QCoreApplication::translate( "PWQ", "Unknown setting" ); return QCoreApplication::translate( "PWQ", "Unknown setting" );
case PWQ_ERROR_INTEGER: case PWQ_ERROR_INTEGER:
if ( auxerror ) if ( !m_errorString.isEmpty() )
{ {
QString s = QCoreApplication::translate( "PWQ", "Bad integer value of setting - %1" ) return QCoreApplication::translate( "PWQ", "Bad integer value of setting - %1" ).arg( m_errorString );
.arg( mungeString( auxerror ) );
free( auxerror );
return s;
} }
return QCoreApplication::translate( "PWQ", "Bad integer value" ); return QCoreApplication::translate( "PWQ", "Bad integer value" );
case PWQ_ERROR_NON_INT_SETTING: case PWQ_ERROR_NON_INT_SETTING:
if ( auxerror ) if ( !m_errorString.isEmpty() )
{ {
QString s = QCoreApplication::translate( "PWQ", "Setting %1 is not of integer type" ) return QCoreApplication::translate( "PWQ", "Setting %1 is not of integer type" ).arg( m_errorString );
.arg( mungeString( auxerror ) );
free( auxerror );
return s;
} }
return QCoreApplication::translate( "PWQ", "Setting is not of integer type" ); return QCoreApplication::translate( "PWQ", "Setting is not of integer type" );
case PWQ_ERROR_NON_STR_SETTING: case PWQ_ERROR_NON_STR_SETTING:
if ( auxerror ) if ( !m_errorString.isEmpty() )
{ {
QString s = QCoreApplication::translate( "PWQ", "Setting %1 is not of string type" ) return QCoreApplication::translate( "PWQ", "Setting %1 is not of string type" ).arg( m_errorString );
.arg( mungeString( auxerror ) );
free( auxerror );
return s;
} }
return QCoreApplication::translate( "PWQ", "Setting is not of string type" ); return QCoreApplication::translate( "PWQ", "Setting is not of string type" );
case PWQ_ERROR_CFGFILE_OPEN: case PWQ_ERROR_CFGFILE_OPEN:
@ -302,9 +335,11 @@ public:
} }
private: private:
pwquality_settings_t* m_settings; QString m_errorString; ///< Textual error from last call to check()
int m_rv; int m_errorCount = 0; ///< Count (used in %n) error from last call to check()
void* m_auxerror; int m_rv = 0; ///< Return value from libpwquality
pwquality_settings_t* m_settings = nullptr;
}; };
DEFINE_CHECK_FUNC( libpwquality ) DEFINE_CHECK_FUNC( libpwquality )