ui: show translated strings instead of internal names
This commit is contained in:
parent
d6c2b30760
commit
747d2e9c17
|
@ -918,9 +918,9 @@ _GESTURE2_PARAMS_LABELS = {
|
||||||
|
|
||||||
_GESTURE2_PARAMS_LABELS_SUB = {
|
_GESTURE2_PARAMS_LABELS_SUB = {
|
||||||
'left': (_('Left'), _('Left-most coordinate.')),
|
'left': (_('Left'), _('Left-most coordinate.')),
|
||||||
'top': (_('top'), _('Top-most coordinate.')),
|
'bottom': (_('Bottom'), _('Bottom coordinate.')),
|
||||||
'width': (_('width'), _('Width.')),
|
'width': (_('Width'), _('Width.')),
|
||||||
'height': (_('height'), _('Height.')),
|
'height': (_('Height'), _('Height.')),
|
||||||
'scale': (_('Scale'), _('Cursor speed.')),
|
'scale': (_('Scale'), _('Cursor speed.')),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,3 +66,4 @@ try:
|
||||||
except Exception:
|
except Exception:
|
||||||
_ = _gettext.gettext
|
_ = _gettext.gettext
|
||||||
ngettext = _gettext.ngettext
|
ngettext = _gettext.ngettext
|
||||||
|
pgettext = _gettext.pgettext
|
||||||
|
|
|
@ -37,7 +37,7 @@ from logitech_receiver.settings import KIND as _SKIND
|
||||||
from logitech_receiver.settings import Setting as _Setting
|
from logitech_receiver.settings import Setting as _Setting
|
||||||
from logitech_receiver.settings_templates import SETTINGS as _SETTINGS
|
from logitech_receiver.settings_templates import SETTINGS as _SETTINGS
|
||||||
from logitech_receiver.special_keys import CONTROL as _CONTROL
|
from logitech_receiver.special_keys import CONTROL as _CONTROL
|
||||||
from solaar.i18n import _
|
from solaar.i18n import _, pgettext
|
||||||
|
|
||||||
_log = getLogger(__name__)
|
_log = getLogger(__name__)
|
||||||
del getLogger
|
del getLogger
|
||||||
|
@ -1754,8 +1754,8 @@ class SetValueControl(Gtk.HBox):
|
||||||
def __init__(self, on_change, *args, **kwargs):
|
def __init__(self, on_change, *args, **kwargs):
|
||||||
super().__init__(*args, **kwargs)
|
super().__init__(*args, **kwargs)
|
||||||
self.on_change = on_change
|
self.on_change = on_change
|
||||||
self.toggle_widget = SmartComboBox([('~', _('Toggle'), _('Toggle')), (True, 'True', _('True'), 'yes', 'on', 't', 'y'),
|
self.toggle_widget = SmartComboBox([('Toggle', _('Toggle'), '~'), (True, _('True'), 'True', 'yes', 'on', 't', 'y'),
|
||||||
(False, 'False', _('False'), 'no', 'off', 'f', 'n')],
|
(False, _('False'), 'False', 'no', 'off', 'f', 'n')],
|
||||||
case_insensitive=True)
|
case_insensitive=True)
|
||||||
self.toggle_widget.connect('changed', self._changed)
|
self.toggle_widget.connect('changed', self._changed)
|
||||||
self.range_widget = Gtk.SpinButton.new_with_range(0, 0xFFFF, 1)
|
self.range_widget = Gtk.SpinButton.new_with_range(0, 0xFFFF, 1)
|
||||||
|
@ -1855,11 +1855,15 @@ class SetValueControl(Gtk.HBox):
|
||||||
self.range_widget.set_range(minimum, maximum)
|
self.range_widget.set_range(minimum, maximum)
|
||||||
self.range_widget.show()
|
self.range_widget.show()
|
||||||
|
|
||||||
def make_range_with_key(self, items):
|
def make_range_with_key(self, items, labels=None):
|
||||||
self.current_kind = 'range_with_key'
|
self.current_kind = 'range_with_key'
|
||||||
self._hide_all()
|
self._hide_all()
|
||||||
self.sub_key_range_items = items or None
|
self.sub_key_range_items = items or None
|
||||||
self.sub_key_widget.set_all_values(map(lambda item: item.id, items) if items else [])
|
if not labels:
|
||||||
|
labels = {}
|
||||||
|
self.sub_key_widget.set_all_values(
|
||||||
|
map(lambda item: (item.id, labels.get(item.id, [str(item.id)])[0]), items) if items else []
|
||||||
|
)
|
||||||
self.sub_key_widget.show()
|
self.sub_key_widget.show()
|
||||||
self.range_widget.show()
|
self.range_widget.show()
|
||||||
|
|
||||||
|
@ -1949,7 +1953,12 @@ class SetUI(ActionUI):
|
||||||
self.widgets[self.value_field] = (3, 1, 1, 1)
|
self.widgets[self.value_field] = (3, 1, 1, 1)
|
||||||
|
|
||||||
self.key_lbl = Gtk.Label(
|
self.key_lbl = Gtk.Label(
|
||||||
_('Key'), halign=Gtk.Align.CENTER, valign=Gtk.Align.CENTER, hexpand=True, vexpand=False, margin_top=m
|
pgettext('setting key, oppossed to value', 'Key'),
|
||||||
|
halign=Gtk.Align.CENTER,
|
||||||
|
valign=Gtk.Align.CENTER,
|
||||||
|
hexpand=True,
|
||||||
|
vexpand=False,
|
||||||
|
margin_top=m
|
||||||
)
|
)
|
||||||
self.key_lbl.hide()
|
self.key_lbl.hide()
|
||||||
self.widgets[self.key_lbl] = (2, 0, 1, 1)
|
self.widgets[self.key_lbl] = (2, 0, 1, 1)
|
||||||
|
@ -2105,7 +2114,10 @@ class SetUI(ActionUI):
|
||||||
elif kind == _SKIND.range:
|
elif kind == _SKIND.range:
|
||||||
self.value_field.make_range(val_class.min_value, val_class.max_value)
|
self.value_field.make_range(val_class.min_value, val_class.max_value)
|
||||||
elif kind == _SKIND.multiple_range:
|
elif kind == _SKIND.multiple_range:
|
||||||
self.value_field.make_range_with_key(getattr(setting, 'sub_items_universe', {}).get(key, {}) if setting else {})
|
self.value_field.make_range_with_key(
|
||||||
|
getattr(setting, 'sub_items_universe', {}).get(key, {}) if setting else {},
|
||||||
|
getattr(setting, '_labels_sub', None) if setting else None
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
self.value_field.make_unsupported()
|
self.value_field.make_unsupported()
|
||||||
|
|
||||||
|
@ -2178,21 +2190,26 @@ class SetUI(ActionUI):
|
||||||
device_disp = _('Originating device') if not device_str else device.display_name if device else shlex_quote(device_str)
|
device_disp = _('Originating device') if not device_str else device.display_name if device else shlex_quote(device_str)
|
||||||
setting_name = next(a, None)
|
setting_name = next(a, None)
|
||||||
setting, val_class, kind, keys = cls._setting_attributes(setting_name)
|
setting, val_class, kind, keys = cls._setting_attributes(setting_name)
|
||||||
disp = [setting_name]
|
disp = [setting.label or setting.name if setting else setting_name]
|
||||||
if kind in cls.MULTIPLE:
|
if kind in cls.MULTIPLE:
|
||||||
key = next(a, None)
|
key = next(a, None)
|
||||||
disp.append(_from_named_ints(key, keys) if keys else key)
|
key = _from_named_ints(key, keys) if keys else key
|
||||||
|
key_label = getattr(setting, '_labels', {}).get(key, [None])[0] if setting else None
|
||||||
|
disp.append(key_label or key)
|
||||||
value = next(a, None)
|
value = next(a, None)
|
||||||
if setting and (kind in (_SKIND.choice, _SKIND.map_choice)):
|
if setting and (kind in (_SKIND.choice, _SKIND.map_choice)):
|
||||||
all_values = cls._all_choices(setting_name)[0]
|
all_values = cls._all_choices(setting_name)[0]
|
||||||
if isinstance(all_values, NamedInts):
|
if isinstance(all_values, NamedInts):
|
||||||
value = all_values[value]
|
value = all_values[value]
|
||||||
if isinstance(value, dict) and len(value) == 1:
|
elif kind == _SKIND.multiple_range and isinstance(value, dict) and len(value) == 1:
|
||||||
k, v = next(iter(value.items()))
|
k, v = next(iter(value.items()))
|
||||||
|
k = (getattr(setting, '_labels_sub', {}).get(k, (None, ))[0] if setting else None) or k
|
||||||
disp.append(f'{k}={v}')
|
disp.append(f'{k}={v}')
|
||||||
|
elif kind in (_SKIND.toggle, _SKIND.multiple_toggle):
|
||||||
|
disp.append(_(str(value)))
|
||||||
else:
|
else:
|
||||||
disp.append(value)
|
disp.append(value)
|
||||||
return device_disp + ': ' + ' '.join(map(lambda s: shlex_quote(str(s)), [*disp, *a]))
|
return device_disp + ' ' + ' '.join(map(lambda s: shlex_quote(str(s)), [*disp, *a]))
|
||||||
|
|
||||||
|
|
||||||
COMPONENT_UI = {
|
COMPONENT_UI = {
|
||||||
|
|
Loading…
Reference in New Issue