From b2c0767165b978746472583a9b39aa07bd93b66f Mon Sep 17 00:00:00 2001 From: "c.lamboo" Date: Fri, 29 Mar 2024 11:52:09 +0100 Subject: [PATCH] Add translations to enum values CURA-11783 --- plugins/3MFReader/SpecificSettingsModel.py | 12 ++++++++---- plugins/3MFWriter/SettingsExportModel.py | 6 +++++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/plugins/3MFReader/SpecificSettingsModel.py b/plugins/3MFReader/SpecificSettingsModel.py index 275b9c03ac..09efb453ed 100644 --- a/plugins/3MFReader/SpecificSettingsModel.py +++ b/plugins/3MFReader/SpecificSettingsModel.py @@ -3,6 +3,7 @@ from PyQt6.QtCore import Qt, pyqtSignal +from UM import i18nCatalog from UM.Logger import Logger from UM.Settings.SettingDefinition import SettingDefinition from UM.Qt.ListModel import ListModel @@ -19,7 +20,7 @@ class SpecificSettingsModel(ListModel): self.addRoleName(self.LabelRole, "label") self.addRoleName(self.ValueRole, "value") - self._i18n_catalog = None + self._i18n_catalog = i18nCatalog("cura") self._update() modelChanged = pyqtSignal() @@ -32,11 +33,14 @@ class SpecificSettingsModel(ListModel): setting_type = stack.getProperty(setting, "type") if setting_type is not None: # This is not very good looking, but will do for now - value = str(SettingDefinition.settingValueToString(setting_type, value)) + " " + str(unit) + value = str(SettingDefinition.settingValueToString(setting_type, value)) + if unit: + value += " " + str(unit) if setting_type == "enum": options = stack.getProperty(setting, "options") - value = options[stack.getProperty(setting, "value")] - + msgctxt = f"{str(setting)} option {str(value)}" + msgid = options[stack.getProperty(setting, "value")] + value = self._i18n_catalog.i18nc(msgctxt, msgid) else: value = str(value) diff --git a/plugins/3MFWriter/SettingsExportModel.py b/plugins/3MFWriter/SettingsExportModel.py index 0251a6c4fa..e8e3e4a0da 100644 --- a/plugins/3MFWriter/SettingsExportModel.py +++ b/plugins/3MFWriter/SettingsExportModel.py @@ -6,6 +6,7 @@ from typing import Optional, cast, List, Dict, Pattern, Set from PyQt6.QtCore import QObject, pyqtProperty +from UM import i18nCatalog from UM.Settings.SettingDefinition import SettingDefinition from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.SettingFunction import SettingFunction @@ -109,6 +110,7 @@ class SettingsExportModel(QObject): @staticmethod def _exportSettings(settings_stack): + i18n_catalog = i18nCatalog("cura") user_settings_container = settings_stack.userChanges user_keys = user_settings_container.getAllKeys() exportable_settings = SettingsExportModel.EXPORTABLE_SETTINGS @@ -122,7 +124,9 @@ class SettingsExportModel(QObject): value = settings_stack.getProperty(setting_to_export, "value") unit = settings_stack.getProperty(setting_to_export, "unit") options = settings_stack.getProperty(setting_to_export, "options") - value_name = value if options == {} else options[value] + msgctxt = f"{setting_to_export} option {value}" + msgid = options.get(value, "") + value_name = i18n_catalog.i18nc(msgctxt, msgid) setting_type = settings_stack.getProperty(setting_to_export, "type") if setting_type is not None: