Add translations to enum values

CURA-11783
This commit is contained in:
c.lamboo 2024-03-29 11:52:09 +01:00
parent cf61a78fbf
commit b2c0767165
2 changed files with 13 additions and 5 deletions

View file

@ -3,6 +3,7 @@
from PyQt6.QtCore import Qt, pyqtSignal from PyQt6.QtCore import Qt, pyqtSignal
from UM import i18nCatalog
from UM.Logger import Logger from UM.Logger import Logger
from UM.Settings.SettingDefinition import SettingDefinition from UM.Settings.SettingDefinition import SettingDefinition
from UM.Qt.ListModel import ListModel from UM.Qt.ListModel import ListModel
@ -19,7 +20,7 @@ class SpecificSettingsModel(ListModel):
self.addRoleName(self.LabelRole, "label") self.addRoleName(self.LabelRole, "label")
self.addRoleName(self.ValueRole, "value") self.addRoleName(self.ValueRole, "value")
self._i18n_catalog = None self._i18n_catalog = i18nCatalog("cura")
self._update() self._update()
modelChanged = pyqtSignal() modelChanged = pyqtSignal()
@ -32,11 +33,14 @@ class SpecificSettingsModel(ListModel):
setting_type = stack.getProperty(setting, "type") setting_type = stack.getProperty(setting, "type")
if setting_type is not None: if setting_type is not None:
# This is not very good looking, but will do for now # 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": if setting_type == "enum":
options = stack.getProperty(setting, "options") 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: else:
value = str(value) value = str(value)

View file

@ -6,6 +6,7 @@ from typing import Optional, cast, List, Dict, Pattern, Set
from PyQt6.QtCore import QObject, pyqtProperty from PyQt6.QtCore import QObject, pyqtProperty
from UM import i18nCatalog
from UM.Settings.SettingDefinition import SettingDefinition from UM.Settings.SettingDefinition import SettingDefinition
from UM.Settings.InstanceContainer import InstanceContainer from UM.Settings.InstanceContainer import InstanceContainer
from UM.Settings.SettingFunction import SettingFunction from UM.Settings.SettingFunction import SettingFunction
@ -109,6 +110,7 @@ class SettingsExportModel(QObject):
@staticmethod @staticmethod
def _exportSettings(settings_stack): def _exportSettings(settings_stack):
i18n_catalog = i18nCatalog("cura")
user_settings_container = settings_stack.userChanges user_settings_container = settings_stack.userChanges
user_keys = user_settings_container.getAllKeys() user_keys = user_settings_container.getAllKeys()
exportable_settings = SettingsExportModel.EXPORTABLE_SETTINGS exportable_settings = SettingsExportModel.EXPORTABLE_SETTINGS
@ -122,7 +124,9 @@ class SettingsExportModel(QObject):
value = settings_stack.getProperty(setting_to_export, "value") value = settings_stack.getProperty(setting_to_export, "value")
unit = settings_stack.getProperty(setting_to_export, "unit") unit = settings_stack.getProperty(setting_to_export, "unit")
options = settings_stack.getProperty(setting_to_export, "options") 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") setting_type = settings_stack.getProperty(setting_to_export, "type")
if setting_type is not None: if setting_type is not None: