mirror of
https://github.com/virt-manager/virt-manager.git
synced 2026-07-30 08:08:33 -05:00
i18n: improve translatability of vmmAddHardware.input_pretty_name
A single "Generic" message glued together with capitalized names of bus and type is a really bad string puzzle: a) the parts cannot be moved around, while they could depending on the language b) the type cannot be translated, and things like mouse/keyboard/tablet are usually translated c) "generic" as adjective must get the proper gender depending on the name it refers to Hence, unroll 6 more whole strings for the most common combinations of type and bus. Otherwise, use strings with the type, as it is needed because of (c) above. At last, fallback to a generic string, still allowing (a) above. In both cases of fallback, the bus is still properly translated. In all the cases, use constants instead of explicit identifier strings. Reviewed-by: Cole Robinson <crobinso@redhat.com> Signed-off-by: Pino Toscano <ptoscano@redhat.com>
This commit is contained in:
committed by
Cole Robinson
parent
cd1f5c3334
commit
90e2bdcb3e
@@ -616,13 +616,35 @@ class vmmAddHardware(vmmGObjectUI):
|
||||
|
||||
@staticmethod
|
||||
def input_pretty_name(typ, bus):
|
||||
if typ == "tablet" and bus == "usb":
|
||||
return _("EvTouch USB Graphics Tablet")
|
||||
|
||||
if bus in ["usb", "ps2"]:
|
||||
return _("Generic") + (" %s %s" %
|
||||
(bus.upper(), str(typ).capitalize()))
|
||||
return "%s %s" % (str(bus).capitalize(), str(typ).capitalize())
|
||||
pretty_mappings = {
|
||||
(DeviceInput.TYPE_MOUSE, DeviceInput.BUS_PS2): _("Generic PS/2 Mouse"),
|
||||
(DeviceInput.TYPE_MOUSE, DeviceInput.BUS_USB): _("Generic USB Mouse"),
|
||||
(DeviceInput.TYPE_TABLET, DeviceInput.BUS_USB): _("EvTouch USB Graphics Tablet"),
|
||||
(DeviceInput.TYPE_TABLET, DeviceInput.BUS_VIRTIO): _("Generic VirtIO Tablet"),
|
||||
(DeviceInput.TYPE_KEYBOARD, DeviceInput.BUS_PS2): _("Generic PS/2 Keyboard"),
|
||||
(DeviceInput.TYPE_KEYBOARD, DeviceInput.BUS_USB): _("Generic USB Keyboard"),
|
||||
(DeviceInput.TYPE_KEYBOARD, DeviceInput.BUS_VIRTIO): _("Generic VirtIO Keyboard"),
|
||||
}
|
||||
try:
|
||||
return pretty_mappings[(typ, bus)]
|
||||
except KeyError:
|
||||
bus_mappings = {
|
||||
DeviceInput.BUS_PS2: _("PS/2"),
|
||||
DeviceInput.BUS_USB: _("USB"),
|
||||
DeviceInput.BUS_VIRTIO: _("VirtIO"),
|
||||
DeviceInput.BUS_XEN: _("Xen"),
|
||||
}
|
||||
pretty_bus = bus_mappings.get(bus, str(bus).capitalize())
|
||||
if typ == DeviceInput.TYPE_MOUSE:
|
||||
return _("Generic %(bus)s Mouse") % {"bus": pretty_bus}
|
||||
if typ == DeviceInput.TYPE_TABLET:
|
||||
return _("Generic %(bus)s Tablet") % {"bus": pretty_bus}
|
||||
if typ == DeviceInput.TYPE_KEYBOARD:
|
||||
return _("Generic %(bus)s Keyboard") % {"bus": pretty_bus}
|
||||
return _("Generic %(bus)s %(type)s") % {
|
||||
"bus": pretty_bus,
|
||||
"type": str(typ).capitalize()
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
def interface_recommended_models(guest):
|
||||
|
||||
Reference in New Issue
Block a user