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 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)

View file

@ -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: