diff --git a/faces/ConfigAppearance.qml b/faces/ConfigAppearance.qml --- a/faces/ConfigAppearance.qml +++ b/faces/ConfigAppearance.qml @@ -100,16 +100,16 @@ } } RowLayout { - Kirigami.FormData.label: i18n("Presets:") + Kirigami.FormData.label: i18nc("KSysGuardSensorFaces", "Presets:") QQC2.Button { icon.name: "document-open" - text: i18n("Load Preset...") + text: i18nc("KSysGuardSensorFaces", "Load Preset...") onClicked: presetSheet.open() } NewStuff.Button { - Accessible.name: i18n("Get new presets...") + Accessible.name: i18nc("KSysGuardSensorFaces", "Get new presets...") configFile: "systemmonitor-presets.knsrc" text: "" onChangedEntriesChanged: controller.availablePresetsModel.reload(); @@ -121,7 +121,7 @@ QQC2.Button { id: saveButton icon.name: "document-save" - text: i18n("Save Settings As Preset") + text: i18nc("KSysGuardSensorFaces", "Save Settings As Preset") enabled: controller.currentPreset.length == 0 onClicked: controller.savePreset(); } @@ -133,11 +133,11 @@ QQC2.TextField { id: titleField - Kirigami.FormData.label: i18n("Title:") + Kirigami.FormData.label: i18nc("KSysGuardSensorFaces", "Title:") } RowLayout { - Kirigami.FormData.label: i18n("Display Style:") + Kirigami.FormData.label: i18nc("KSysGuardSensorFaces", "Display Style:") QQC2.ComboBox { id: faceCombo model: controller.availableFacesModel @@ -157,7 +157,7 @@ } NewStuff.Button { - text: i18n("Get New Display Styles...") + text: i18nc("KSysGuardSensorFaces", "Get New Display Styles...") configFile: "systemmonitor-faces.knsrc" onChangedEntriesChanged: controller.availableFacesModel.reload(); } diff --git a/faces/ConfigSensors.qml b/faces/ConfigSensors.qml --- a/faces/ConfigSensors.qml +++ b/faces/ConfigSensors.qml @@ -94,7 +94,7 @@ width: usedSensorsView.width actions: Kirigami.Action { icon.name: "list-remove" - text: i18n("Remove") + text: i18nc("KSysGuardSensorFaces", "Remove") onTriggered: { usedSensorsModel.remove(index, 1); usedSensorsModel.save(); @@ -133,11 +133,11 @@ Layout.preferredHeight: sensorListHeader.implicitHeight visible: controller.supportsTotalSensors QQC2.Label { - text: i18n("Total Sensor:") + text: i18nc("KSysGuardSensorFaces", "Total Sensor:") } QQC2.Label { Layout.fillWidth: true - text: cfg_totalSensors.length > 0 ? totalSensor.name : i18n("Drop Sensor Here") + text: cfg_totalSensors.length > 0 ? totalSensor.name : i18nc("KSysGuardSensorFaces", "Drop Sensor Here") elide: Text.ElideRight DropArea { anchors.fill: parent @@ -174,16 +174,16 @@ Kirigami.Heading { Layout.preferredHeight: sensorListHeader.implicitHeight level: 3 - text: i18n("Chart Sensors") + text: i18nc("KSysGuardSensorFaces", "Chart Sensors") } Local.UsedSensorsView { id: usedSensorsView showColor: controller.supportsSensorsColors sensorColors: root.controller.sensorColors } Kirigami.Heading { Layout.preferredHeight: sensorListHeader.implicitHeight - text: i18n("Text Only Sensors") + text: i18nc("KSysGuardSensorFaces", "Text Only Sensors") level: 3 visible: lowPrioritySensorsView.visible } @@ -207,7 +207,7 @@ Layout.fillWidth: true Layout.alignment: Qt.AlignVCenter level: 3 - text: i18n("All Sensors") + text: i18nc("KSysGuardSensorFaces", "All Sensors") } } Kirigami.SearchField { diff --git a/faces/Messages.sh b/faces/Messages.sh new file mode 100755 --- /dev/null +++ b/faces/Messages.sh @@ -0,0 +1,2 @@ +#! /usr/bin/env bash +$XGETTEXT `find . -name \*.qml -o -name \*.cpp` -o $podir/KSysGuardSensorFaces.pot diff --git a/faces/SensorFaceController.cpp b/faces/SensorFaceController.cpp --- a/faces/SensorFaceController.cpp +++ b/faces/SensorFaceController.cpp @@ -152,6 +152,7 @@ bool configNeedsSave = false; KPackage::Package facePackage; QString faceId; + KLocalizedContext *contextObj = nullptr; KConfigGroup configGroup; KConfigGroup appearanceGroup; KConfigGroup sensorsGroup; @@ -183,17 +184,17 @@ return nullptr; } - //TODO: add i18n context object QQmlContext *context = new QQmlContext(engine); + context->setContextObject(contextObj); QObject *guiObject = component->beginCreate(context); SensorFace *gui = qobject_cast(guiObject); if (!gui) { qWarning()<<"ERROR: QML gui" << guiObject << "not a SensorFace instance"; guiObject->deleteLater(); context->deleteLater(); return nullptr; } - // context->setParent(gui); + context->setParent(gui); gui->setController(q); @@ -216,12 +217,13 @@ return nullptr; } - //TODO: add i18n context object QQmlContext *context = new QQmlContext(engine); + context->setContextObject(contextObj); QObject *guiObject = component->createWithInitialProperties( initialProperties, context); QQuickItem *gui = qobject_cast(guiObject); Q_ASSERT(gui); + context->setParent(gui); component->deleteLater(); @@ -398,6 +400,7 @@ d->facePackage = KPackage::PackageLoader::self()->loadPackage(QStringLiteral("KSysguard/SensorFace"), face); + d->contextObj->deleteLater(); if (d->faceConfiguration) { d->faceConfiguration->deleteLater(); d->faceConfiguration = nullptr; @@ -412,6 +415,9 @@ return; } + d->contextObj = new KLocalizedContext(d->engine); + d->contextObj->setTranslationDomain(QLatin1String("ksysguard_face_") + face); + //TODO: should be in a different config file rather than metadata d->faceProperties = KConfigGroup(KSharedConfig::openConfig(d->facePackage.filePath("FaceProperties")), QStringLiteral("Config")); diff --git a/faces/SensorFaceController_p.h b/faces/SensorFaceController_p.h --- a/faces/SensorFaceController_p.h +++ b/faces/SensorFaceController_p.h @@ -21,6 +21,7 @@ #include #include +#include class QQmlEngine; diff --git a/faces/UsedSensorsView.qml b/faces/UsedSensorsView.qml --- a/faces/UsedSensorsView.qml +++ b/faces/UsedSensorsView.qml @@ -69,7 +69,7 @@ id: listItem actions: Kirigami.Action { icon.name: "list-remove" - text: i18n("Remove") + text: i18nc("KSysGuardSensorFaces", "Remove") onTriggered: { usedSensorsModel.remove(index, 1); usedSensorsModel.save(); @@ -131,7 +131,7 @@ anchors.centerIn: parent z: 2 visible: usedSensorsView.count == 0 - text: i18n("Drop Sensors Here") + text: i18nc("KSysGuardSensorFaces", "Drop Sensors Here") } Rectangle { anchors { diff --git a/faces/facepackages/barchart/Messages.sh b/faces/facepackages/barchart/Messages.sh new file mode 100755 --- /dev/null +++ b/faces/facepackages/barchart/Messages.sh @@ -0,0 +1,2 @@ +#! /usr/bin/env bash +$XGETTEXT `find . -name \*.qml` -o $podir/ksysguard_face_org.kde.ksysguard.barchart.pot diff --git a/faces/facepackages/linechart/Messages.sh b/faces/facepackages/linechart/Messages.sh new file mode 100755 --- /dev/null +++ b/faces/facepackages/linechart/Messages.sh @@ -0,0 +1,2 @@ +#! /usr/bin/env bash +$XGETTEXT `find . -name \*.qml` -o $podir/ksysguard_face_org.kde.ksysguard.linechart.pot diff --git a/faces/facepackages/piechart/Messages.sh b/faces/facepackages/piechart/Messages.sh new file mode 100755 --- /dev/null +++ b/faces/facepackages/piechart/Messages.sh @@ -0,0 +1,2 @@ +#! /usr/bin/env bash +$XGETTEXT `find . -name \*.qml` -o $podir/ksysguard_face_org.kde.ksysguard.piechart.pot diff --git a/faces/facepackages/textonly/Messages.sh b/faces/facepackages/textonly/Messages.sh new file mode 100755 --- /dev/null +++ b/faces/facepackages/textonly/Messages.sh @@ -0,0 +1,2 @@ +#! /usr/bin/env bash +$XGETTEXT `find . -name \*.qml` -o $podir/ksysguard_face_org.kde.ksysguard.textonly.pot