Browse Source

Add translations to enum values

CURA-11783
c.lamboo 11 months ago
parent
commit
b2c0767165

+ 8 - 4
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)
 

+ 5 - 1
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: