Merge pull request #2226 from bitigchi/strings

Improve string formatting and context
This commit is contained in:
Adriaan de Groot 2023-11-13 19:17:12 +01:00 committed by GitHub
commit eb77b208f8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
34 changed files with 138 additions and 135 deletions

View File

@ -139,17 +139,17 @@ Config::doNotify( bool hasFailed, bool sendAnyway )
QString message; QString message;
if ( hasFailed ) if ( hasFailed )
{ {
title = Calamares::Settings::instance()->isSetupMode() ? tr( "Setup Failed" ) : tr( "Installation Failed" ); title = Calamares::Settings::instance()->isSetupMode() ? tr( "Setup Failed", "@title" ) : tr( "Installation Failed", "@title" );
message = Calamares::Settings::instance()->isSetupMode() message = Calamares::Settings::instance()->isSetupMode()
? tr( "The setup of %1 did not complete successfully." ) ? tr( "The setup of %1 did not complete successfully.", "@info" )
: tr( "The installation of %1 did not complete successfully." ); : tr( "The installation of %1 did not complete successfully.", "@info" );
} }
else else
{ {
title = Calamares::Settings::instance()->isSetupMode() ? tr( "Setup Complete" ) title = Calamares::Settings::instance()->isSetupMode() ? tr( "Setup Complete", "@title" )
: tr( "Installation Complete" ); : tr( "Installation Complete", "@title" );
message = Calamares::Settings::instance()->isSetupMode() ? tr( "The setup of %1 is complete." ) message = Calamares::Settings::instance()->isSetupMode() ? tr( "The setup of %1 is complete.", "@info" )
: tr( "The installation of %1 is complete." ); : tr( "The installation of %1 is complete.", "@info" );
} }
const auto* branding = Calamares::Branding::instance(); const auto* branding = Calamares::Branding::instance();

View File

@ -74,26 +74,26 @@ FinishedPage::retranslate()
{ {
ui->mainText->setText( tr( "<h1>All done.</h1><br/>" ui->mainText->setText( tr( "<h1>All done.</h1><br/>"
"%1 has been set up on your computer.<br/>" "%1 has been set up on your computer.<br/>"
"You may now start using your new system." ) "You may now start using your new system.", "@info" )
.arg( branding->versionedName() ) ); .arg( branding->versionedName() ) );
ui->restartCheckBox->setToolTip( tr( "<html><head/><body>" ui->restartCheckBox->setToolTip( tr( "<html><head/><body>"
"<p>When this box is checked, your system will " "<p>When this box is checked, your system will "
"restart immediately when you click on " "restart immediately when you click on "
"<span style=\"font-style:italic;\">Done</span> " "<span style=\"font-style:italic;\">Done</span> "
"or close the setup program.</p></body></html>" ) ); "or close the setup program.</p></body></html>", "@tooltip" ) );
} }
else else
{ {
ui->mainText->setText( tr( "<h1>All done.</h1><br/>" ui->mainText->setText( tr( "<h1>All done.</h1><br/>"
"%1 has been installed on your computer.<br/>" "%1 has been installed on your computer.<br/>"
"You may now restart into your new system, or continue " "You may now restart into your new system, or continue "
"using the %2 Live environment." ) "using the %2 Live environment.", "@info" )
.arg( branding->versionedName(), branding->productName() ) ); .arg( branding->versionedName(), branding->productName() ) );
ui->restartCheckBox->setToolTip( tr( "<html><head/><body>" ui->restartCheckBox->setToolTip( tr( "<html><head/><body>"
"<p>When this box is checked, your system will " "<p>When this box is checked, your system will "
"restart immediately when you click on " "restart immediately when you click on "
"<span style=\"font-style:italic;\">Done</span> " "<span style=\"font-style:italic;\">Done</span> "
"or close the installer.</p></body></html>" ) ); "or close the installer.</p></body></html>", "@tooltip" ) );
} }
} }
else else
@ -104,7 +104,7 @@ FinishedPage::retranslate()
{ {
ui->mainText->setText( tr( "<h1>Setup Failed</h1><br/>" ui->mainText->setText( tr( "<h1>Setup Failed</h1><br/>"
"%1 has not been set up on your computer.<br/>" "%1 has not been set up on your computer.<br/>"
"The error message was: %2." ) "The error message was: %2.", "@info, %1 is product name with version" )
.arg( branding->versionedName() ) .arg( branding->versionedName() )
.arg( message ) ); .arg( message ) );
} }
@ -112,7 +112,7 @@ FinishedPage::retranslate()
{ {
ui->mainText->setText( tr( "<h1>Installation Failed</h1><br/>" ui->mainText->setText( tr( "<h1>Installation Failed</h1><br/>"
"%1 has not been installed on your computer.<br/>" "%1 has not been installed on your computer.<br/>"
"The error message was: %2." ) "The error message was: %2.", "@info, %1 is product name with version" )
.arg( branding->versionedName() ) .arg( branding->versionedName() )
.arg( message ) ); .arg( message ) );
} }

View File

@ -43,7 +43,7 @@ FinishedViewStep::~FinishedViewStep()
QString QString
FinishedViewStep::prettyName() const FinishedViewStep::prettyName() const
{ {
return tr( "Finish" ); return tr( "Finish", "@label" );
} }

View File

@ -32,7 +32,7 @@ FinishedQmlViewStep::FinishedQmlViewStep( QObject* parent )
QString QString
FinishedQmlViewStep::prettyName() const FinishedQmlViewStep::prettyName() const
{ {
return tr( "Finish" ); return tr( "Finish", "@label" );
} }
bool bool

View File

@ -32,7 +32,7 @@ Page {
horizontalAlignment: Qt.AlignHCenter horizontalAlignment: Qt.AlignHCenter
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
level: 1 level: 1
text: qsTr("Installation Completed") text: qsTr("Installation Completed", "@title")
Text { Text {
anchors.top: header.bottom anchors.top: header.bottom
@ -40,7 +40,8 @@ Page {
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
font.pointSize: 12 font.pointSize: 12
text: qsTr("%1 has been installed on your computer.<br/> text: qsTr("%1 has been installed on your computer.<br/>
You may now restart into your new system, or continue using the Live environment.").arg(Branding.string(Branding.ProductName)) You may now restart into your new system, or continue using the Live environment.", "@info, %1 is the product name")
.arg(Branding.string(Branding.ProductName))
} }
Image { Image {
@ -61,13 +62,13 @@ Page {
Button { Button {
id: button id: button
text: qsTr("Close Installer") text: qsTr("Close Installer", "@button")
icon.name: "application-exit" icon.name: "application-exit"
onClicked: { ViewManager.quit(); } onClicked: { ViewManager.quit(); }
} }
Button { Button {
text: qsTr("Restart System") text: qsTr("Restart System", "@button")
icon.name: "system-reboot" icon.name: "system-reboot"
onClicked: { config.doRestart(true); } onClicked: { config.doRestart(true); }
} }
@ -86,7 +87,7 @@ Page {
anchors.top: parent.top anchors.top: parent.top
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
text: qsTr("<p>A full log of the install is available as installation.log in the home directory of the Live user.<br/> text: qsTr("<p>A full log of the install is available as installation.log in the home directory of the Live user.<br/>
This log is copied to /var/log/installation.log of the target system.</p>") This log is copied to /var/log/installation.log of the target system.</p>", "@info")
} }
} }

View File

@ -33,7 +33,7 @@ Page {
horizontalAlignment: Qt.AlignHCenter horizontalAlignment: Qt.AlignHCenter
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
level: 1 level: 1
text: qsTr("Installation Completed") text: qsTr("Installation Completed", "@title")
Text { Text {
anchors.top: header.bottom anchors.top: header.bottom
@ -41,7 +41,8 @@ Page {
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
font.pointSize: 12 font.pointSize: 12
text: qsTr("%1 has been installed on your computer.<br/> text: qsTr("%1 has been installed on your computer.<br/>
You may now restart your device.").arg(Branding.string(Branding.ProductName)) You may now restart your device.", "@info, %1 is the product name")
.arg(Branding.string(Branding.ProductName))
} }
Image { Image {
@ -62,13 +63,13 @@ Page {
Button { Button {
id: button id: button
text: qsTr("Close") text: qsTr("Close", "@button")
icon.name: "application-exit" icon.name: "application-exit"
onClicked: { ViewManager.quit(); } onClicked: { ViewManager.quit(); }
} }
Button { Button {
text: qsTr("Restart") text: qsTr("Restart", "@button")
icon.name: "system-reboot" icon.name: "system-reboot"
onClicked: { config.doRestart(true); } onClicked: { config.doRestart(true); }
} }

View File

@ -40,7 +40,7 @@ ResizeFSJob::~ResizeFSJob() {}
QString QString
ResizeFSJob::prettyName() const ResizeFSJob::prettyName() const
{ {
return tr( "Resize Filesystem Job" ); return tr( "Performing file system resize…", "@status" );
} }
ResizeFSJob::PartitionMatch ResizeFSJob::PartitionMatch
@ -159,15 +159,15 @@ ResizeFSJob::exec()
if ( !isValid() ) if ( !isValid() )
{ {
return Calamares::JobResult::error( return Calamares::JobResult::error(
tr( "Invalid configuration" ), tr( "Invalid configuration", "@error" ),
tr( "The file-system resize job has an invalid configuration and will not run." ) ); tr( "The file-system resize job has an invalid configuration and will not run.", "@error" ) );
} }
if ( !m_kpmcore ) if ( !m_kpmcore )
{ {
cWarning() << "Could not load KPMCore backend (2)."; cWarning() << "Could not load KPMCore backend (2).";
return Calamares::JobResult::error( tr( "KPMCore not Available" ), return Calamares::JobResult::error( tr( "KPMCore not available", "@error" ),
tr( "Calamares cannot start KPMCore for the file-system resize job." ) ); tr( "Calamares cannot start KPMCore for the file system resize job.", "@error" ) );
} }
m_kpmcore.backend()->initFSSupport(); // Might not be enough, see below m_kpmcore.backend()->initFSSupport(); // Might not be enough, see below
@ -176,20 +176,20 @@ ResizeFSJob::exec()
if ( !m.first || !m.second ) if ( !m.first || !m.second )
{ {
return Calamares::JobResult::error( return Calamares::JobResult::error(
tr( "Resize Failed" ), tr( "Resize failed.", "@error" ),
!m_fsname.isEmpty() !m_fsname.isEmpty()
? tr( "The filesystem %1 could not be found in this system, and cannot be resized." ).arg( m_fsname ) ? tr( "The filesystem %1 could not be found in this system, and cannot be resized.", "@info" ).arg( m_fsname )
: tr( "The device %1 could not be found in this system, and cannot be resized." ).arg( m_devicename ) ); : tr( "The device %1 could not be found in this system, and cannot be resized.", "@info" ).arg( m_devicename ) );
} }
m.second->fileSystem().init(); // Initialize support for specific FS m.second->fileSystem().init(); // Initialize support for specific FS
if ( !ResizeOperation::canGrow( m.second ) ) if ( !ResizeOperation::canGrow( m.second ) )
{ {
cDebug() << "canGrow() returned false."; cDebug() << "canGrow() returned false.";
return Calamares::JobResult::error( tr( "Resize Failed" ), return Calamares::JobResult::error( tr( "Resize Failed", "@error" ),
!m_fsname.isEmpty() !m_fsname.isEmpty()
? tr( "The filesystem %1 cannot be resized." ).arg( m_fsname ) ? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
: tr( "The device %1 cannot be resized." ).arg( m_devicename ) ); : tr( "The device %1 cannot be resized.", "@error" ).arg( m_devicename ) );
} }
qint64 new_end = findGrownEnd( m ); qint64 new_end = findGrownEnd( m );
@ -198,10 +198,10 @@ ResizeFSJob::exec()
if ( new_end < 0 ) if ( new_end < 0 )
{ {
return Calamares::JobResult::error( tr( "Resize Failed" ), return Calamares::JobResult::error( tr( "Resize Failed", "@error" ),
!m_fsname.isEmpty() !m_fsname.isEmpty()
? tr( "The filesystem %1 cannot be resized." ).arg( m_fsname ) ? tr( "The filesystem %1 cannot be resized.", "@error" ).arg( m_fsname )
: tr( "The device %1 cannot be resized." ).arg( m_devicename ) ); : tr( "The device %1 cannot be resized.", "@error" ).arg( m_devicename ) );
} }
if ( new_end == 0 ) if ( new_end == 0 )
{ {
@ -209,9 +209,9 @@ ResizeFSJob::exec()
if ( m_required ) if ( m_required )
{ {
return Calamares::JobResult::error( return Calamares::JobResult::error(
tr( "Resize Failed" ), tr( "Resize Failed", "@error" ),
!m_fsname.isEmpty() ? tr( "The filesystem %1 must be resized, but cannot." ).arg( m_fsname ) !m_fsname.isEmpty() ? tr( "The file system %1 must be resized, but cannot.", "@info" ).arg( m_fsname )
: tr( "The device %1 must be resized, but cannot" ).arg( m_fsname ) ); : tr( "The device %1 must be resized, but cannot", "@info" ).arg( m_fsname ) );
} }
return Calamares::JobResult::ok(); return Calamares::JobResult::ok();
@ -228,7 +228,7 @@ ResizeFSJob::exec()
else else
{ {
cDebug() << "Resize failed." << op_report.output(); cDebug() << "Resize failed." << op_report.output();
return Calamares::JobResult::error( tr( "Resize Failed" ), op_report.toText() ); return Calamares::JobResult::error( tr( "Resize Failed", "@error" ), op_report.toText() );
} }
} }

View File

@ -36,7 +36,7 @@ HostInfoJob::~HostInfoJob() {}
QString QString
HostInfoJob::prettyName() const HostInfoJob::prettyName() const
{ {
return tr( "Collecting information about your machine." ); return tr( "Collecting information about your machine", "@status" );
} }
QString QString

View File

@ -28,7 +28,7 @@ InitcpioJob::~InitcpioJob() {}
QString QString
InitcpioJob::prettyName() const InitcpioJob::prettyName() const
{ {
return tr( "Creating initramfs with mkinitcpio." ); return tr( "Creating initramfs with mkinitcpio", "@status" );
} }
/** @brief Sets secure permissions on each initramfs /** @brief Sets secure permissions on each initramfs

View File

@ -24,7 +24,7 @@ InitramfsJob::~InitramfsJob() {}
QString QString
InitramfsJob::prettyName() const InitramfsJob::prettyName() const
{ {
return tr( "Creating initramfs." ); return tr( "Creating initramfs", "@status" );
} }
Calamares::JobResult Calamares::JobResult

View File

@ -46,8 +46,8 @@ void
InteractiveTerminalPage::errorKonsoleNotInstalled() InteractiveTerminalPage::errorKonsoleNotInstalled()
{ {
QMessageBox mb( QMessageBox::Critical, QMessageBox mb( QMessageBox::Critical,
tr( "Konsole not installed" ), tr( "Konsole not installed.", "@error" ),
tr( "Please install KDE Konsole and try again!" ), tr( "Please install KDE Konsole and try again!", "@info" ),
QMessageBox::Ok ); QMessageBox::Ok );
Calamares::fixButtonLabels( &mb ); Calamares::fixButtonLabels( &mb );
mb.exec(); mb.exec();
@ -119,5 +119,5 @@ InteractiveTerminalPage::setCommand( const QString& command )
{ {
m_command = command; m_command = command;
CALAMARES_RETRANSLATE( CALAMARES_RETRANSLATE(
m_headerLabel->setText( tr( "Executing script: &nbsp;<code>%1</code>" ).arg( m_command ) ); ); m_headerLabel->setText( tr( "Executing script: &nbsp;<code>%1</code>", "@info" ).arg( m_command ) ); );
} }

View File

@ -37,7 +37,7 @@ InteractiveTerminalViewStep::~InteractiveTerminalViewStep()
QString QString
InteractiveTerminalViewStep::prettyName() const InteractiveTerminalViewStep::prettyName() const
{ {
return tr( "Script" ); return tr( "Script", "@label" );
} }
QWidget* QWidget*

View File

@ -502,14 +502,14 @@ QString
Config::prettyStatus() const Config::prettyStatus() const
{ {
QString status; QString status;
status += tr( "Set keyboard model to %1.<br/>" ) status += tr( "Keyboard model has been set to %1<br/>.", "@label, %1 is keyboard model, as in Apple Magic Keyboard" )
.arg( m_keyboardModelsModel->label( m_keyboardModelsModel->currentIndex() ) ); .arg( m_keyboardModelsModel->label( m_keyboardModelsModel->currentIndex() ) );
QString layout = m_keyboardLayoutsModel->item( m_keyboardLayoutsModel->currentIndex() ).second.description; QString layout = m_keyboardLayoutsModel->item( m_keyboardLayoutsModel->currentIndex() ).second.description;
QString variant = m_keyboardVariantsModel->currentIndex() >= 0 QString variant = m_keyboardVariantsModel->currentIndex() >= 0
? m_keyboardVariantsModel->label( m_keyboardVariantsModel->currentIndex() ) ? m_keyboardVariantsModel->label( m_keyboardVariantsModel->currentIndex() )
: QString( "<default>" ); : QString( "<default>" );
status += tr( "Set keyboard layout to %1/%2." ).arg( layout, variant ); status += tr( "Keyboard layout has been set to %1/%2.", "@label, %1 is layout, %2 is layout variant" ).arg( layout, variant );
return status; return status;
} }

View File

@ -71,7 +71,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<item> <item>
<widget class="QLabel" name="label"> <widget class="QLabel" name="label">
<property name="text"> <property name="text">
<string>Keyboard Model:</string> <string>Keyboard model:</string>
</property> </property>
</widget> </widget>
</item> </item>
@ -150,7 +150,7 @@ SPDX-License-Identifier: GPL-3.0-or-later
<item> <item>
<widget class="QLabel" name="label_2"> <widget class="QLabel" name="label_2">
<property name="text"> <property name="text">
<string>Keyboard Switch:</string> <string>Keyboard switch:</string>
</property> </property>
</widget> </widget>
</item> </item>

View File

@ -38,7 +38,7 @@ KeyboardViewStep::~KeyboardViewStep()
QString QString
KeyboardViewStep::prettyName() const KeyboardViewStep::prettyName() const
{ {
return tr( "Keyboard" ); return tr( "Keyboard", "@label" );
} }

View File

@ -63,7 +63,8 @@ SetKeyboardLayoutJob::SetKeyboardLayoutJob( const QString& model,
QString QString
SetKeyboardLayoutJob::prettyName() const SetKeyboardLayoutJob::prettyName() const
{ {
return tr( "Set keyboard model to %1, layout to %2-%3" ).arg( m_model ).arg( m_layout ).arg( m_variant ); return tr( "Setting keyboard model to %1, layout as %2-%3…", "@status, %1 model, %2 layout, %3 variant" )
.arg( m_model ).arg( m_layout ).arg( m_variant );
} }
@ -364,8 +365,8 @@ SetKeyboardLayoutJob::exec()
if ( !writeVConsoleData( vconsoleConfPath, convertedKeymapPath ) ) if ( !writeVConsoleData( vconsoleConfPath, convertedKeymapPath ) )
{ {
return Calamares::JobResult::error( tr( "Failed to write keyboard configuration for the virtual console." ), return Calamares::JobResult::error( tr( "Failed to write keyboard configuration for the virtual console.", "@error" ),
tr( "Failed to write to %1" ).arg( vconsoleConfPath ) ); tr( "Failed to write to %1", "@error, %1 is virtual console configuration path" ).arg( vconsoleConfPath ) );
} }
// Get the path to the destination's /etc/X11/xorg.conf.d/00-keyboard.conf // Get the path to the destination's /etc/X11/xorg.conf.d/00-keyboard.conf
@ -390,8 +391,8 @@ SetKeyboardLayoutJob::exec()
if ( !writeX11Data( keyboardConfPath ) ) if ( !writeX11Data( keyboardConfPath ) )
{ {
return Calamares::JobResult::error( tr( "Failed to write keyboard configuration for X11." ), return Calamares::JobResult::error( tr( "Failed to write keyboard configuration for X11.", "@error" ),
tr( "Failed to write to %1" ).arg( keyboardConfPath ) ); tr( "Failed to write to %1", "@error, %1 is keyboard configuration path" ).arg( keyboardConfPath ) );
} }
} }
@ -407,8 +408,8 @@ SetKeyboardLayoutJob::exec()
if ( !writeDefaultKeyboardData( defaultKeyboardPath ) ) if ( !writeDefaultKeyboardData( defaultKeyboardPath ) )
{ {
return Calamares::JobResult::error( return Calamares::JobResult::error(
tr( "Failed to write keyboard configuration to existing /etc/default directory." ), tr( "Failed to write keyboard configuration to existing /etc/default directory.", "@error" ),
tr( "Failed to write to %1" ).arg( defaultKeyboardPath ) ); tr( "Failed to write to %1", "@error, %1 is default keyboard path" ).arg( defaultKeyboardPath ) );
} }
} }
} }

View File

@ -29,7 +29,7 @@ KeyboardQmlViewStep::KeyboardQmlViewStep( QObject* parent )
QString QString
KeyboardQmlViewStep::prettyName() const KeyboardQmlViewStep::prettyName() const
{ {
return tr( "Keyboard" ); return tr( "Keyboard", "@label" );
} }
QString QString

View File

@ -58,7 +58,7 @@ Item {
Label { Label {
id: header id: header
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("To activate keyboard preview, select a layout.") text: qsTr("Select a layout to activate keyboard preview", "@label")
color: textColor color: textColor
font.bold: true font.bold: true
} }
@ -141,7 +141,7 @@ Item {
} }
Text { Text {
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("<b>Keyboard Model:&nbsp;&nbsp;</b>") + models.currentItem.currentModel.label text: qsTr("<b>Keyboard model:&nbsp;&nbsp;</b>", "@label") + models.currentItem.currentModel.label
color: textColor color: textColor
} }
Image { Image {
@ -182,7 +182,7 @@ Item {
z: 2 z: 2
color:backgroundColor color:backgroundColor
Text { Text {
text: qsTr("Layout") text: qsTr("Layout", "@label")
anchors.centerIn: parent anchors.centerIn: parent
color: textColor color: textColor
font.bold: true font.bold: true
@ -255,7 +255,7 @@ Item {
z: 2 z: 2
color:backgroundColor color:backgroundColor
Text { Text {
text: qsTr("Variant") text: qsTr("Variant", "@label")
anchors.centerIn: parent anchors.centerIn: parent
color: textColor color: textColor
font.bold: true font.bold: true
@ -308,7 +308,7 @@ Item {
TextField { TextField {
id: textInput id: textInput
placeholderText: qsTr("Type here to test your keyboard") placeholderText: qsTr("Type here to test your keyboard…", "@label")
height: 36 height: 36
width: parent.width / 1.6 width: parent.width / 1.6
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter

View File

@ -58,7 +58,7 @@ Item {
Label { Label {
id: header id: header
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
text: qsTr("To activate keyboard preview, select a layout.") text: qsTr("Select a layout to activate keyboard preview", "@label")
color: textColor color: textColor
font.bold: true font.bold: true
} }
@ -141,7 +141,7 @@ Item {
} }
Text { Text {
anchors.centerIn: parent anchors.centerIn: parent
text: qsTr("<b>Keyboard Model:&nbsp;&nbsp;</b>") + models.currentItem.currentModel.label text: qsTr("<b>Keyboard model:&nbsp;&nbsp;</b>", "@label") + models.currentItem.currentModel.label
color: textColor color: textColor
} }
Image { Image {
@ -182,7 +182,7 @@ Item {
z: 2 z: 2
color:backgroundColor color:backgroundColor
Text { Text {
text: qsTr("Layout") text: qsTr("Layout", "@label")
anchors.centerIn: parent anchors.centerIn: parent
color: textColor color: textColor
font.bold: true font.bold: true
@ -255,7 +255,7 @@ Item {
z: 2 z: 2
color:backgroundColor color:backgroundColor
Text { Text {
text: qsTr("Variant") text: qsTr("Variant", "@label")
anchors.centerIn: parent anchors.centerIn: parent
color: textColor color: textColor
font.bold: true font.bold: true
@ -308,7 +308,7 @@ Item {
TextField { TextField {
id: textInput id: textInput
placeholderText: qsTr("Type here to test your keyboard") placeholderText: qsTr("Type here to test your keyboard…", "@label")
height: 36 height: 36
width: parent.width / 1.6 width: parent.width / 1.6
horizontalAlignment: TextInput.AlignHCenter horizontalAlignment: TextInput.AlignHCenter

View File

@ -139,17 +139,17 @@ LicensePage::setEntries( const QList< LicenseEntry >& entriesList )
void void
LicensePage::retranslate() LicensePage::retranslate()
{ {
ui->acceptCheckBox->setText( tr( "I accept the terms and conditions above." ) ); ui->acceptCheckBox->setText( tr( "I accept the terms and conditions above.", "@info" ) );
QString review = tr( "Please review the End User License Agreements (EULAs)." ); QString review = tr( "Please review the End User License Agreements (EULAs).", "@info" );
const auto br = QStringLiteral( "<br/>" ); const auto br = QStringLiteral( "<br/>" );
if ( !m_allLicensesOptional ) if ( !m_allLicensesOptional )
{ {
ui->mainText->setText( tr( "This setup procedure will install proprietary " ui->mainText->setText( tr( "This setup procedure will install proprietary "
"software that is subject to licensing terms." ) "software that is subject to licensing terms.", "@info" )
+ br + review ); + br + review );
QString mustAcceptText( tr( "If you do not agree with the terms, the setup procedure cannot continue." ) ); QString mustAcceptText( tr( "If you do not agree with the terms, the setup procedure cannot continue.", "@info" ) );
ui->acceptCheckBox->setToolTip( mustAcceptText ); ui->acceptCheckBox->setToolTip( mustAcceptText );
} }
else else
@ -157,10 +157,10 @@ LicensePage::retranslate()
ui->mainText->setText( tr( "This setup procedure can install proprietary " ui->mainText->setText( tr( "This setup procedure can install proprietary "
"software that is subject to licensing terms " "software that is subject to licensing terms "
"in order to provide additional features and enhance the user " "in order to provide additional features and enhance the user "
"experience." ) "experience.", "@info" )
+ br + review ); + br + review );
QString okAcceptText( tr( "If you do not agree with the terms, proprietary software will not " QString okAcceptText( tr( "If you do not agree with the terms, proprietary software will not "
"be installed, and open source alternatives will be used instead." ) ); "be installed, and open source alternatives will be used instead.", "@info" ) );
ui->acceptCheckBox->setToolTip( okAcceptText ); ui->acceptCheckBox->setToolTip( okAcceptText );
} }
ui->retranslateUi( this ); ui->retranslateUi( this );

View File

@ -42,7 +42,7 @@ LicenseViewStep::~LicenseViewStep()
QString QString
LicenseViewStep::prettyName() const LicenseViewStep::prettyName() const
{ {
return tr( "License" ); return tr( "License", "@label" );
} }

View File

@ -85,7 +85,7 @@ LicenseWidget::LicenseWidget( LicenseEntry entry, QWidget* parent )
} }
else else
{ {
m_licenceTextLabel->setText( tr( "URL: %1" ).arg( m_entry.m_url.toDisplayString() ) ); m_licenceTextLabel->setText( tr( "URL: %1", "@label" ).arg( m_entry.m_url.toDisplayString() ) );
connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::viewClicked ); connect( m_viewLicenseButton, &QAbstractButton::clicked, this, &LicenseWidget::viewClicked );
} }
m_licenceTextLabel->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum ); m_licenceTextLabel->setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
@ -107,38 +107,38 @@ LicenseWidget::retranslateUi()
case LicenseEntry::Type::Driver: case LicenseEntry::Type::Driver:
//: %1 is an untranslatable product name, example: Creative Audigy driver //: %1 is an untranslatable product name, example: Creative Audigy driver
productDescription = tr( "<strong>%1 driver</strong><br/>" productDescription = tr( "<strong>%1 driver</strong><br/>"
"by %2" ) "by %2", "@label, %1 is product name, %2 is product vendor" )
.arg( m_entry.m_prettyName ) .arg( m_entry.m_prettyName )
.arg( m_entry.m_prettyVendor ); .arg( m_entry.m_prettyVendor );
break; break;
case LicenseEntry::Type::GpuDriver: case LicenseEntry::Type::GpuDriver:
//: %1 is usually a vendor name, example: Nvidia graphics driver //: %1 is usually a vendor name, example: Nvidia graphics driver
productDescription = tr( "<strong>%1 graphics driver</strong><br/>" productDescription = tr( "<strong>%1 graphics driver</strong><br/>"
"<font color=\"Grey\">by %2</font>" ) "<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
.arg( m_entry.m_prettyName ) .arg( m_entry.m_prettyName )
.arg( m_entry.m_prettyVendor ); .arg( m_entry.m_prettyVendor );
break; break;
case LicenseEntry::Type::BrowserPlugin: case LicenseEntry::Type::BrowserPlugin:
productDescription = tr( "<strong>%1 browser plugin</strong><br/>" productDescription = tr( "<strong>%1 browser plugin</strong><br/>"
"<font color=\"Grey\">by %2</font>" ) "<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
.arg( m_entry.m_prettyName ) .arg( m_entry.m_prettyName )
.arg( m_entry.m_prettyVendor ); .arg( m_entry.m_prettyVendor );
break; break;
case LicenseEntry::Type::Codec: case LicenseEntry::Type::Codec:
productDescription = tr( "<strong>%1 codec</strong><br/>" productDescription = tr( "<strong>%1 codec</strong><br/>"
"<font color=\"Grey\">by %2</font>" ) "<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
.arg( m_entry.m_prettyName ) .arg( m_entry.m_prettyName )
.arg( m_entry.m_prettyVendor ); .arg( m_entry.m_prettyVendor );
break; break;
case LicenseEntry::Type::Package: case LicenseEntry::Type::Package:
productDescription = tr( "<strong>%1 package</strong><br/>" productDescription = tr( "<strong>%1 package</strong><br/>"
"<font color=\"Grey\">by %2</font>" ) "<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
.arg( m_entry.m_prettyName ) .arg( m_entry.m_prettyName )
.arg( m_entry.m_prettyVendor ); .arg( m_entry.m_prettyVendor );
break; break;
case LicenseEntry::Type::Software: case LicenseEntry::Type::Software:
productDescription = tr( "<strong>%1</strong><br/>" productDescription = tr( "<strong>%1</strong><br/>"
"<font color=\"Grey\">by %2</font>" ) "<font color=\"Grey\">by %2</font>", "@label, %1 is product name, %2 is product vendor" )
.arg( m_entry.m_prettyName ) .arg( m_entry.m_prettyName )
.arg( m_entry.m_prettyVendor ); .arg( m_entry.m_prettyVendor );
} }
@ -160,7 +160,7 @@ LicenseWidget::showLocalLicenseText()
{ {
fileName = fileName.remove( 0, 5 ); fileName = fileName.remove( 0, 5 );
} }
m_licenceTextLabel->setText( tr( "File: %1" ).arg( fileName ) ); m_licenceTextLabel->setText( tr( "File: %1", "@label" ).arg( fileName ) );
} }
} }
@ -183,11 +183,11 @@ LicenseWidget::updateExpandToolTip()
{ {
if ( m_entry.isLocal() ) if ( m_entry.isLocal() )
{ {
m_viewLicenseButton->setText( m_isExpanded ? tr( "Hide license text" ) : tr( "Show the license text" ) ); m_viewLicenseButton->setText( m_isExpanded ? tr( "Hide the license text", "@tooltip" ) : tr( "Show the license text", "@tooltip" ) );
} }
else else
{ {
m_viewLicenseButton->setText( tr( "Open license agreement in browser." ) ); m_viewLicenseButton->setText( tr( "Open the license agreement in browser", "@tooltip" ) );
} }
} }

View File

@ -370,7 +370,7 @@ Config::setLCLocaleExplicitly( const QString& locale )
QString QString
Config::currentLocationStatus() const Config::currentLocationStatus() const
{ {
return tr( "Set timezone to %1/%2." ) return tr( "Set timezone to %1/%2", "@action" )
.arg( m_currentLocation ? m_currentLocation->region() : QString(), .arg( m_currentLocation ? m_currentLocation->region() : QString(),
m_currentLocation ? m_currentLocation->zone() : QString() ); m_currentLocation ? m_currentLocation->zone() : QString() );
} }
@ -407,14 +407,14 @@ localeLabel( const QString& s )
QString QString
Config::currentLanguageStatus() const Config::currentLanguageStatus() const
{ {
return tr( "The system language will be set to %1." ) return tr( "The system language will be set to %1", "@info" )
.arg( localeLabel( m_selectedLocaleConfiguration.language() ) ); .arg( localeLabel( m_selectedLocaleConfiguration.language() ) );
} }
QString QString
Config::currentLCStatus() const Config::currentLCStatus() const
{ {
return tr( "The numbers and dates locale will be set to %1." ) return tr( "The numbers and dates locale will be set to %1", "@info" )
.arg( localeLabel( m_selectedLocaleConfiguration.lc_numeric ) ); .arg( localeLabel( m_selectedLocaleConfiguration.lc_numeric ) );
} }

View File

@ -20,7 +20,7 @@ LCLocaleDialog::LCLocaleDialog( const QString& guessedLCLocale, const QStringLis
: QDialog( parent ) : QDialog( parent )
{ {
setModal( true ); setModal( true );
setWindowTitle( tr( "System locale setting" ) ); setWindowTitle( tr( "System Locale Setting", "@title" ) );
QBoxLayout* mainLayout = new QVBoxLayout; QBoxLayout* mainLayout = new QVBoxLayout;
setLayout( mainLayout ); setLayout( mainLayout );
@ -29,7 +29,7 @@ LCLocaleDialog::LCLocaleDialog( const QString& guessedLCLocale, const QStringLis
upperText->setWordWrap( true ); upperText->setWordWrap( true );
upperText->setText( tr( "The system locale setting affects the language and character " upperText->setText( tr( "The system locale setting affects the language and character "
"set for some command line user interface elements.<br/>" "set for some command line user interface elements.<br/>"
"The current setting is <strong>%1</strong>." ) "The current setting is <strong>%1</strong>.", "@info" )
.arg( guessedLCLocale ) ); .arg( guessedLCLocale ) );
mainLayout->addWidget( upperText ); mainLayout->addWidget( upperText );
setMinimumWidth( upperText->fontMetrics().height() * 24 ); setMinimumWidth( upperText->fontMetrics().height() * 24 );
@ -51,8 +51,8 @@ LCLocaleDialog::LCLocaleDialog( const QString& guessedLCLocale, const QStringLis
QDialogButtonBox* dbb QDialogButtonBox* dbb
= new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this ); = new QDialogButtonBox( QDialogButtonBox::Ok | QDialogButtonBox::Cancel, Qt::Horizontal, this );
dbb->button( QDialogButtonBox::Cancel )->setText( tr( "&Cancel" ) ); dbb->button( QDialogButtonBox::Cancel )->setText( tr( "&Cancel", "@button" ) );
dbb->button( QDialogButtonBox::Ok )->setText( tr( "&OK" ) ); dbb->button( QDialogButtonBox::Ok )->setText( tr( "&OK", "@button" ) );
mainLayout->addWidget( dbb ); mainLayout->addWidget( dbb );

View File

@ -127,10 +127,10 @@ LocalePage::~LocalePage() {}
void void
LocalePage::updateLocaleLabels() LocalePage::updateLocaleLabels()
{ {
m_regionLabel->setText( tr( "Region:" ) ); m_regionLabel->setText( tr( "Region:", "@label" ) );
m_zoneLabel->setText( tr( "Zone:" ) ); m_zoneLabel->setText( tr( "Zone:", "@label" ) );
m_localeChangeButton->setText( tr( "&Change..." ) ); m_localeChangeButton->setText( tr( "&Change", "@button" ) );
m_formatsChangeButton->setText( tr( "&Change..." ) ); m_formatsChangeButton->setText( tr( "&Change", "@button" ) );
m_localeLabel->setText( m_config->currentLanguageStatus() ); m_localeLabel->setText( m_config->currentLanguageStatus() );
m_formatsLabel->setText( m_config->currentLCStatus() ); m_formatsLabel->setText( m_config->currentLCStatus() );
} }

View File

@ -68,7 +68,7 @@ LocaleViewStep::setUpPage()
QString QString
LocaleViewStep::prettyName() const LocaleViewStep::prettyName() const
{ {
return tr( "Location" ); return tr( "Location", "@label" );
} }
QString QString

View File

@ -29,7 +29,7 @@ SetTimezoneJob::SetTimezoneJob( const QString& region, const QString& zone )
QString QString
SetTimezoneJob::prettyName() const SetTimezoneJob::prettyName() const
{ {
return tr( "Set timezone to %1/%2" ).arg( m_region ).arg( m_zone ); return tr( "Setting timezone to %1/%2", "@status" ).arg( m_region ).arg( m_zone );
} }
Calamares::JobResult Calamares::JobResult
@ -57,8 +57,8 @@ SetTimezoneJob::exec()
QFileInfo zoneFile( gs->value( "rootMountPoint" ).toString() + zoneinfoPath ); QFileInfo zoneFile( gs->value( "rootMountPoint" ).toString() + zoneinfoPath );
if ( !zoneFile.exists() || !zoneFile.isReadable() ) if ( !zoneFile.exists() || !zoneFile.isReadable() )
{ {
return Calamares::JobResult::error( tr( "Cannot access selected timezone path." ), return Calamares::JobResult::error( tr( "Cannot access selected timezone path.", "@error" ),
tr( "Bad path: %1" ).arg( zoneFile.absolutePath() ) ); tr( "Bad path: %1", "@error" ).arg( zoneFile.absolutePath() ) );
} }
// Make sure /etc/localtime doesn't exist, otherwise symlinking will fail // Make sure /etc/localtime doesn't exist, otherwise symlinking will fail
@ -68,16 +68,16 @@ SetTimezoneJob::exec()
if ( ec ) if ( ec )
{ {
return Calamares::JobResult::error( return Calamares::JobResult::error(
tr( "Cannot set timezone." ), tr( "Cannot set timezone.", "@error" ),
tr( "Link creation failed, target: %1; link name: %2" ).arg( zoneinfoPath ).arg( "/etc/localtime" ) ); tr( "Link creation failed, target: %1; link name: %2", "@info" ).arg( zoneinfoPath ).arg( "/etc/localtime" ) );
} }
QFile timezoneFile( gs->value( "rootMountPoint" ).toString() + "/etc/timezone" ); QFile timezoneFile( gs->value( "rootMountPoint" ).toString() + "/etc/timezone" );
if ( !timezoneFile.open( QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate ) ) if ( !timezoneFile.open( QIODevice::WriteOnly | QIODevice::Text | QIODevice::Truncate ) )
{ {
return Calamares::JobResult::error( tr( "Cannot set timezone," ), return Calamares::JobResult::error( tr( "Cannot set timezone.", "@error" ),
tr( "Cannot open /etc/timezone for writing" ) ); tr( "Cannot open /etc/timezone for writing", "@info" ) );
} }
QTextStream out( &timezoneFile ); QTextStream out( &timezoneFile );

View File

@ -29,7 +29,7 @@ LocaleQmlViewStep::getConfig()
QString QString
LocaleQmlViewStep::prettyName() const LocaleQmlViewStep::prettyName() const
{ {
return tr( "Location" ); return tr( "Location", "@label" );
} }
QString QString

View File

@ -234,7 +234,7 @@ Column {
Text { Text {
id: tzText id: tzText
text: qsTr("Timezone: %1").arg(config.currentTimezoneName) text: qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
anchors.centerIn: parent anchors.centerIn: parent
} }
@ -257,7 +257,7 @@ Column {
Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor
text: qsTr("Please select your preferred location on the map so the installer can suggest the locale text: qsTr("Please select your preferred location on the map so the installer can suggest the locale
and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging
to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming.") to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming.", "@label")
} }
} }
} }

View File

@ -234,7 +234,7 @@ Column {
Text { Text {
id: tzText id: tzText
text: qsTr("Timezone: %1").arg(config.currentTimezoneName) text: qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
anchors.centerIn: parent anchors.centerIn: parent
} }
@ -257,7 +257,7 @@ Column {
Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor
text: qsTr("Please select your preferred location on the map so the installer can suggest the locale text: qsTr("Please select your preferred location on the map so the installer can suggest the locale
and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging and timezone settings for you. You can fine-tune the suggested settings below. Search the map by dragging
to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming.") to move and using the +/- buttons to zoom in/out or use mouse scrolling for zooming.", "@info")
} }
} }
} }

View File

@ -44,7 +44,7 @@ Page {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
color: textColor color: textColor
horizontalAlignment: Text.AlignCenter horizontalAlignment: Text.AlignCenter
text: qsTr("Select your preferred Region, or use the default settings.") text: qsTr("Select your preferred region, or use the default settings", "@label")
} }
ListView { ListView {
@ -100,7 +100,7 @@ Page {
list.currentIndex = index list.currentIndex = index
control.currentRegion = model.name control.currentRegion = model.name
config.regionalZonesModel.region = control.currentRegion config.regionalZonesModel.region = control.currentRegion
tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) tztext.text = qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
stack.push(zoneView) stack.push(zoneView)
} }
} }
@ -117,7 +117,7 @@ Page {
id: zone id: zone
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
color: textColor color: textColor
text: qsTr("Select your preferred Zone within your Region.") text: qsTr("Select your preferred zone within your region", "@label")
} }
ListView { ListView {
@ -177,7 +177,7 @@ Page {
list2.positionViewAtIndex(index, ListView.Center) list2.positionViewAtIndex(index, ListView.Center)
control.currentZone = model.name control.currentZone = model.name
config.setCurrentLocation(control.currentRegion, control.currentZone) config.setCurrentLocation(control.currentRegion, control.currentZone)
tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) tztext.text = qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
} }
} }
} }
@ -190,7 +190,7 @@ Page {
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: parent.width / 15 anchors.leftMargin: parent.width / 15
icon.name: "go-previous" icon.name: "go-previous"
text: qsTr("Zones") text: qsTr("Zones", "@button")
onClicked: stack.pop() onClicked: stack.pop()
} }
} }
@ -221,7 +221,7 @@ Page {
Text { Text {
id: tztext id: tztext
text: qsTr("Timezone: %1").arg(config.currentTimezoneName) text: qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
anchors.centerIn: parent anchors.centerIn: parent
} }
@ -237,7 +237,7 @@ Page {
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor
text: qsTr("You can fine-tune Language and Locale settings below.") text: qsTr("You can fine-tune language and locale settings below", "@label")
} }
} }
} }

View File

@ -44,7 +44,7 @@ Page {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
color: textColor color: textColor
horizontalAlignment: Text.AlignCenter horizontalAlignment: Text.AlignCenter
text: qsTr("Select your preferred Region, or use the default settings.") text: qsTr("Select your preferred region, or use the default settings", "@label")
} }
ListView { ListView {
@ -100,7 +100,7 @@ Page {
list.currentIndex = index list.currentIndex = index
control.currentRegion = model.name control.currentRegion = model.name
config.regionalZonesModel.region = control.currentRegion config.regionalZonesModel.region = control.currentRegion
tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) tztext.text = qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
stack.push(zoneView) stack.push(zoneView)
} }
} }
@ -117,7 +117,7 @@ Page {
id: zone id: zone
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
color: textColor color: textColor
text: qsTr("Select your preferred Zone within your Region.") text: qsTr("Select your preferred zone within your region", "@label")
} }
ListView { ListView {
@ -177,7 +177,7 @@ Page {
list2.positionViewAtIndex(index, ListView.Center) list2.positionViewAtIndex(index, ListView.Center)
control.currentZone = model.name control.currentZone = model.name
config.setCurrentLocation(control.currentRegion, control.currentZone) config.setCurrentLocation(control.currentRegion, control.currentZone)
tztext.text = qsTr("Timezone: %1").arg(config.currentTimezoneName) tztext.text = qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
} }
} }
} }
@ -190,7 +190,7 @@ Page {
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: parent.width / 15 anchors.leftMargin: parent.width / 15
icon.name: "go-previous" icon.name: "go-previous"
text: qsTr("Zones") text: qsTr("Zones", "@button")
onClicked: stack.pop() onClicked: stack.pop()
} }
} }
@ -221,7 +221,7 @@ Page {
Text { Text {
id: tztext id: tztext
text: qsTr("Timezone: %1").arg(config.currentTimezoneName) text: qsTr("Timezone: %1", "@label").arg(config.currentTimezoneName)
color: Kirigami.Theme.textColor color: Kirigami.Theme.textColor
anchors.centerIn: parent anchors.centerIn: parent
} }
@ -237,7 +237,7 @@ Page {
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor Kirigami.Theme.backgroundColor: Kirigami.Theme.backgroundColor
text: qsTr("You can fine-tune Language and Locale settings below.") text: qsTr("You can fine-tune language and locale settings below", "@label")
} }
} }
} }

View File

@ -73,7 +73,7 @@ Page {
Button { Button {
Layout.alignment: Qt.AlignRight|Qt.AlignVCenter Layout.alignment: Qt.AlignRight|Qt.AlignVCenter
Layout.columnSpan: 2 Layout.columnSpan: 2
text: qsTr("Change") text: qsTr("Change", "@button")
onClicked: { onClicked: {
drawerLanguage.open() drawerLanguage.open()
} }
@ -103,7 +103,7 @@ Page {
Button { Button {
Layout.alignment: Qt.AlignRight|Qt.AlignVCenter Layout.alignment: Qt.AlignRight|Qt.AlignVCenter
Layout.columnSpan: 2 Layout.columnSpan: 2
text: qsTr("Change") text: qsTr("Change", "@button")
onClicked: { onClicked: {
drawerLocale.open() drawerLocale.open()
} }
@ -140,7 +140,7 @@ Page {
anchors.fill: parent anchors.fill: parent
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text: qsTr("<h3>Languages</h3> </br> text: qsTr("<h3>Languages</h3> </br>
The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.").arg(config.currentLanguageCode) The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.", "@info").arg(config.currentLanguageCode)
font.pointSize: 10 font.pointSize: 10
} }
} }
@ -211,7 +211,7 @@ Page {
anchors.fill: parent anchors.fill: parent
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text: qsTr("<h3>Locales</h3> </br> text: qsTr("<h3>Locales</h3> </br>
The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>.").arg(config.currentLCCode) The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>.", "@info").arg(config.currentLCCode)
font.pointSize: 10 font.pointSize: 10
} }
} }

View File

@ -73,7 +73,7 @@ Page {
Button { Button {
Layout.alignment: Qt.AlignRight|Qt.AlignVCenter Layout.alignment: Qt.AlignRight|Qt.AlignVCenter
Layout.columnSpan: 2 Layout.columnSpan: 2
text: qsTr("Change") text: qsTr("Change", "@button")
onClicked: { onClicked: {
drawerLanguage.open() drawerLanguage.open()
} }
@ -103,7 +103,7 @@ Page {
Button { Button {
Layout.alignment: Qt.AlignRight|Qt.AlignVCenter Layout.alignment: Qt.AlignRight|Qt.AlignVCenter
Layout.columnSpan: 2 Layout.columnSpan: 2
text: qsTr("Change") text: qsTr("Change", "@button")
onClicked: { onClicked: {
drawerLocale.open() drawerLocale.open()
} }
@ -140,7 +140,7 @@ Page {
anchors.fill: parent anchors.fill: parent
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text: qsTr("<h3>Languages</h3> </br> text: qsTr("<h3>Languages</h3> </br>
The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.").arg(config.currentLanguageCode) The system locale setting affects the language and character set for some command line user interface elements. The current setting is <strong>%1</strong>.". "@info").arg(config.currentLanguageCode)
font.pointSize: 10 font.pointSize: 10
} }
} }
@ -211,7 +211,7 @@ Page {
anchors.fill: parent anchors.fill: parent
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
text: qsTr("<h3>Locales</h3> </br> text: qsTr("<h3>Locales</h3> </br>
The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>.").arg(config.currentLCCode) The system locale setting affects the numbers and dates format. The current setting is <strong>%1</strong>.", "@info").arg(config.currentLCCode)
font.pointSize: 10 font.pointSize: 10
} }
} }