commit
aa08356823
|
@ -44,11 +44,13 @@ Currently Solaar has been translated in the following languages:
|
||||||
- Polski: [Adrian Piotrowicz][nexces]
|
- Polski: [Adrian Piotrowicz][nexces]
|
||||||
- Portuguese-BR: [Drovetto][drovetto], [Josenivaldo Benito Jr.][jrbenito]
|
- Portuguese-BR: [Drovetto][drovetto], [Josenivaldo Benito Jr.][jrbenito]
|
||||||
- Română: Daniel Pavel
|
- Română: Daniel Pavel
|
||||||
|
- Russian: [Dimitriy Ryazantcev][DJm00n]
|
||||||
- Svensk: [Daniel Zippert][zipperten], Emelie Snecker
|
- Svensk: [Daniel Zippert][zipperten], Emelie Snecker
|
||||||
|
|
||||||
[papoteur]: http://github.com/papoteur
|
[papoteur]: http://github.com/papoteur
|
||||||
[david-geiger]: http://github.com/david-geiger
|
[david-geiger]: http://github.com/david-geiger
|
||||||
[damsweb]: http://github.com/damsweb
|
[damsweb]: http://github.com/damsweb
|
||||||
|
[DJm00n]: https://github.com/DJm00n
|
||||||
[nexces]: http://github.com/nexces
|
[nexces]: http://github.com/nexces
|
||||||
[zipperten]: http://github.com/zipperten
|
[zipperten]: http://github.com/zipperten
|
||||||
[micheleolivo]: http://github.com/micheleolivo
|
[micheleolivo]: http://github.com/micheleolivo
|
||||||
|
|
|
@ -38,7 +38,7 @@ _DUMMY = (
|
||||||
_("empty"), _("critical"), _("low"), _("good"), _("full"),
|
_("empty"), _("critical"), _("low"), _("good"), _("full"),
|
||||||
|
|
||||||
# battery charging statuses
|
# battery charging statuses
|
||||||
_("discharging"), _("recharging"), _("almost full"), _("full"),
|
_("discharging"), _("recharging"), _("almost full"), _("charged"),
|
||||||
_("slow recharge"), _("invalid battery"), _("thermal error"),
|
_("slow recharge"), _("invalid battery"), _("thermal error"),
|
||||||
|
|
||||||
# pairing errors
|
# pairing errors
|
||||||
|
|
|
@ -64,7 +64,7 @@ def _process_receiver_notification(receiver, status, n):
|
||||||
# pairing lock notification
|
# pairing lock notification
|
||||||
if n.sub_id == 0x4A:
|
if n.sub_id == 0x4A:
|
||||||
status.lock_open = bool(n.address & 0x01)
|
status.lock_open = bool(n.address & 0x01)
|
||||||
reason = _("pairing lock is ") + (_("open") if status.lock_open else _("closed"))
|
reason = (_("pairing lock is open") if status.lock_open else _("pairing lock is closed"))
|
||||||
if _log.isEnabledFor(_INFO):
|
if _log.isEnabledFor(_INFO):
|
||||||
_log.info("%s: %s", receiver, reason)
|
_log.info("%s: %s", receiver, reason)
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ del getLogger
|
||||||
|
|
||||||
|
|
||||||
from .i18n import _
|
from .i18n import _
|
||||||
|
from gettext import ngettext
|
||||||
from .common import NamedInts as _NamedInts, NamedInt as _NamedInt
|
from .common import NamedInts as _NamedInts, NamedInt as _NamedInt
|
||||||
from . import hidpp10 as _hidpp10
|
from . import hidpp10 as _hidpp10
|
||||||
from . import hidpp20 as _hidpp20
|
from . import hidpp20 as _hidpp20
|
||||||
|
@ -96,8 +97,7 @@ class ReceiverStatus(dict):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
count = len(self._receiver)
|
count = len(self._receiver)
|
||||||
return (_("No paired devices.") if count == 0 else
|
return (_("No paired devices.") if count == 0 else
|
||||||
_("1 paired device.") if count == 1 else
|
ngettext("%(count)s paired device.", "%(count)s paired devices.", count) % { 'count': count })
|
||||||
(str(count) + _(" paired devices.")))
|
|
||||||
__unicode__ = __str__
|
__unicode__ = __str__
|
||||||
|
|
||||||
def changed(self, alert=ALERT.NOTIFICATION, reason=None):
|
def changed(self, alert=ALERT.NOTIFICATION, reason=None):
|
||||||
|
@ -146,9 +146,9 @@ class DeviceStatus(dict):
|
||||||
battery_level = self.get(KEYS.BATTERY_LEVEL)
|
battery_level = self.get(KEYS.BATTERY_LEVEL)
|
||||||
if battery_level is not None:
|
if battery_level is not None:
|
||||||
if isinstance(battery_level, _NamedInt):
|
if isinstance(battery_level, _NamedInt):
|
||||||
yield _("Battery") + ': ' + _(str(battery_level))
|
yield _("Battery: %(level)s") % { 'level': _(str(battery_level)) }
|
||||||
else:
|
else:
|
||||||
yield _("Battery") + ': ' + ('%d%%' % battery_level)
|
yield _("Battery: %(percent)d%%") % { 'percent': battery_level }
|
||||||
|
|
||||||
battery_status = self.get(KEYS.BATTERY_STATUS)
|
battery_status = self.get(KEYS.BATTERY_STATUS)
|
||||||
if battery_status is not None:
|
if battery_status is not None:
|
||||||
|
@ -159,7 +159,7 @@ class DeviceStatus(dict):
|
||||||
light_level = self.get(KEYS.LIGHT_LEVEL)
|
light_level = self.get(KEYS.LIGHT_LEVEL)
|
||||||
if light_level is not None:
|
if light_level is not None:
|
||||||
if comma: yield ', '
|
if comma: yield ', '
|
||||||
yield _("Lighting") + (': %d ' % light_level) + _("lux")
|
yield _("Lighting: %(level)s lux") % { 'level': light_level }
|
||||||
|
|
||||||
return ''.join(i for i in _items())
|
return ''.join(i for i in _items())
|
||||||
|
|
||||||
|
@ -200,9 +200,9 @@ class DeviceStatus(dict):
|
||||||
# only show the notification once
|
# only show the notification once
|
||||||
alert = ALERT.NOTIFICATION | ALERT.ATTENTION
|
alert = ALERT.NOTIFICATION | ALERT.ATTENTION
|
||||||
if isinstance(level, _NamedInt):
|
if isinstance(level, _NamedInt):
|
||||||
reason = '%s: %s (%s)' % (_("Battery"), _(str(level)), _(str(status)))
|
reason = _("Battery: %(level)s (%(status)s)") % { 'level': _(level), 'status': _(status) }
|
||||||
else:
|
else:
|
||||||
reason = '%s: %d%% (%s)' % (_("Battery"), level, _(str(status)))
|
reason = _("Battery: %(percent)d%% (%(status)s)") % { 'percent': level, 'status': _(status) }
|
||||||
|
|
||||||
if changed or reason:
|
if changed or reason:
|
||||||
# update the leds on the device, if any
|
# update the leds on the device, if any
|
||||||
|
|
|
@ -72,6 +72,7 @@ def _create():
|
||||||
'Drovetto, JrBenito (Portuguese-BR)',
|
'Drovetto, JrBenito (Portuguese-BR)',
|
||||||
'Daniel Pavel (română)',
|
'Daniel Pavel (română)',
|
||||||
'Daniel Zippert, Emelie Snecker (svensk)',
|
'Daniel Zippert, Emelie Snecker (svensk)',
|
||||||
|
'Dimitriy Ryazantcev (Russian)',
|
||||||
)))
|
)))
|
||||||
|
|
||||||
about.set_website('http://pwr.github.io/Solaar/')
|
about.set_website('http://pwr.github.io/Solaar/')
|
||||||
|
|
|
@ -152,7 +152,7 @@ def _pairing_succeeded(assistant, receiver, device):
|
||||||
|
|
||||||
page = _create_page(assistant, Gtk.AssistantPageType.SUMMARY)
|
page = _create_page(assistant, Gtk.AssistantPageType.SUMMARY)
|
||||||
|
|
||||||
header = Gtk.Label(_("Found a new device") + ':')
|
header = Gtk.Label(_("Found a new device:"))
|
||||||
header.set_alignment(0.5, 0)
|
header.set_alignment(0.5, 0)
|
||||||
page.pack_start(header, False, False, 0)
|
page.pack_start(header, False, False, 0)
|
||||||
|
|
||||||
|
@ -194,7 +194,7 @@ def create(receiver):
|
||||||
assert receiver.kind is None
|
assert receiver.kind is None
|
||||||
|
|
||||||
assistant = Gtk.Assistant()
|
assistant = Gtk.Assistant()
|
||||||
assistant.set_title(receiver.name + ': ' + _("pair new device"))
|
assistant.set_title(_('%(receiver_name)s: pair new device') % { 'receiver_name': receiver.name })
|
||||||
assistant.set_icon_name('list-add')
|
assistant.set_icon_name('list-add')
|
||||||
|
|
||||||
assistant.set_size_request(400, 240)
|
assistant.set_size_request(400, 240)
|
||||||
|
|
|
@ -29,6 +29,7 @@ from gi.repository.GObject import TYPE_PYOBJECT
|
||||||
|
|
||||||
from solaar import NAME
|
from solaar import NAME
|
||||||
from solaar.i18n import _
|
from solaar.i18n import _
|
||||||
|
from gettext import ngettext
|
||||||
# from solaar import __version__ as VERSION
|
# from solaar import __version__ as VERSION
|
||||||
from solaar.ui import async as _ui_async
|
from solaar.ui import async as _ui_async
|
||||||
from logitech_receiver import hidpp10 as _hidpp10
|
from logitech_receiver import hidpp10 as _hidpp10
|
||||||
|
@ -61,23 +62,6 @@ _TREE_SEPATATOR = (None, 0, False, None, None, None, None, None)
|
||||||
assert len(_TREE_SEPATATOR) == len(_COLUMN_TYPES)
|
assert len(_TREE_SEPATATOR) == len(_COLUMN_TYPES)
|
||||||
assert len(_COLUMN_TYPES) == len(_COLUMN)
|
assert len(_COLUMN_TYPES) == len(_COLUMN)
|
||||||
|
|
||||||
_TOOLTIP_LINK_SECURE = _("The wireless link between this device and its receiver is encrypted.")
|
|
||||||
_TOOLTIP_LINK_INSECURE = _("The wireless link between this device and its receiver is not encrypted.\n"
|
|
||||||
"\n"
|
|
||||||
"For pointing devices (mice, trackballs, trackpads), this is a minor security issue.\n"
|
|
||||||
"\n"
|
|
||||||
"It is, however, a major security issue for text-input devices (keyboards, numpads),\n"
|
|
||||||
"because typed text can be sniffed inconspicuously by 3rd parties within range.")
|
|
||||||
|
|
||||||
_UNIFYING_RECEIVER_TEXT = (
|
|
||||||
_("No device paired") + '.\n\n<small>' + _("Up to %d devices can be paired to this receiver") + '.</small>',
|
|
||||||
'%d ' + _("paired devices") + '\n\n<small>' + _("Up to %d devices can be paired to this receiver") + '.</small>',
|
|
||||||
)
|
|
||||||
_NANO_RECEIVER_TEXT = (
|
|
||||||
_("No device paired") + '.\n\n<small> </small>',
|
|
||||||
' \n\n<small>' + _("Only one device can be paired to this receiver") + '.</small>',
|
|
||||||
)
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# create UI layout
|
# create UI layout
|
||||||
#
|
#
|
||||||
|
@ -525,9 +509,9 @@ def _update_details(button):
|
||||||
yield (_("Index"), device.number)
|
yield (_("Index"), device.number)
|
||||||
yield (_("Wireless PID"), device.wpid)
|
yield (_("Wireless PID"), device.wpid)
|
||||||
hid_version = device.protocol
|
hid_version = device.protocol
|
||||||
yield (_("Protocol"), 'HID++ %1.1f' % hid_version if hid_version else 'unknown')
|
yield (_("Protocol"), 'HID++ %1.1f' % hid_version if hid_version else _('Unknown'))
|
||||||
if read_all and device.polling_rate:
|
if read_all and device.polling_rate:
|
||||||
yield (_("Polling rate"), '%d ms (%dHz)' % (device.polling_rate, 1000 // device.polling_rate))
|
yield (_("Polling rate"), _('%(rate)d ms (%(rate_hz)dHz)') % { 'rate': device.polling_rate, 'rate_hz': 1000 // device.polling_rate })
|
||||||
|
|
||||||
if read_all or not device.online:
|
if read_all or not device.online:
|
||||||
yield (_("Serial"), device.serial)
|
yield (_("Serial"), device.serial)
|
||||||
|
@ -578,16 +562,15 @@ def _update_receiver_panel(receiver, panel, buttons, full=False):
|
||||||
assert receiver
|
assert receiver
|
||||||
|
|
||||||
devices_count = len(receiver)
|
devices_count = len(receiver)
|
||||||
if receiver.max_devices > 1:
|
|
||||||
if devices_count == 0:
|
paired_text = _('No device paired.') if devices_count == 0 else ngettext('%(count)s paired device.', '%(count)s paired devices.', devices_count) % { 'count': devices_count }
|
||||||
panel._count.set_markup(_UNIFYING_RECEIVER_TEXT[0] % receiver.max_devices)
|
|
||||||
else:
|
if(receiver.max_devices > 0):
|
||||||
panel._count.set_markup(_UNIFYING_RECEIVER_TEXT[1] % (devices_count, receiver.max_devices))
|
paired_text += '\n\n<small>%s</small>' % ngettext('Up to %(max_count)s device can be paired to this receiver.', 'Up to %(max_count)s devices can be paired to this receiver.', receiver.max_devices) % { 'max_count': receiver.max_devices }
|
||||||
else:
|
elif(devices_count > 0):
|
||||||
if devices_count == 0:
|
paired_text += '\n\n<small>%s</small>' % _('Only one device can be paired to this receiver.')
|
||||||
panel._count.set_markup(_NANO_RECEIVER_TEXT[0])
|
|
||||||
else:
|
panel._count.set_markup(paired_text)
|
||||||
panel._count.set_markup(_NANO_RECEIVER_TEXT[1])
|
|
||||||
|
|
||||||
is_pairing = receiver.status.lock_open
|
is_pairing = receiver.status.lock_open
|
||||||
if is_pairing:
|
if is_pairing:
|
||||||
|
@ -635,7 +618,7 @@ def _update_device_panel(device, panel, buttons, full=False):
|
||||||
if isinstance(battery_level, _NamedInt):
|
if isinstance(battery_level, _NamedInt):
|
||||||
text = _(str(battery_level))
|
text = _(str(battery_level))
|
||||||
else:
|
else:
|
||||||
text = '%d%%' % battery_level
|
text = _("%(battery_percent)d%%") % { 'battery_percent': battery_level }
|
||||||
if is_online:
|
if is_online:
|
||||||
if charging:
|
if charging:
|
||||||
text += ' <small>(%s)</small>' % _("charging")
|
text += ' <small>(%s)</small>' % _("charging")
|
||||||
|
@ -649,11 +632,16 @@ def _update_device_panel(device, panel, buttons, full=False):
|
||||||
if not_secure:
|
if not_secure:
|
||||||
panel._secure._text.set_text(_("not encrypted"))
|
panel._secure._text.set_text(_("not encrypted"))
|
||||||
panel._secure._icon.set_from_icon_name('security-low', _INFO_ICON_SIZE)
|
panel._secure._icon.set_from_icon_name('security-low', _INFO_ICON_SIZE)
|
||||||
panel._secure.set_tooltip_text(_TOOLTIP_LINK_INSECURE)
|
panel._secure.set_tooltip_text(_("The wireless link between this device and its receiver is not encrypted.\n"
|
||||||
|
"\n"
|
||||||
|
"For pointing devices (mice, trackballs, trackpads), this is a minor security issue.\n"
|
||||||
|
"\n"
|
||||||
|
"It is, however, a major security issue for text-input devices (keyboards, numpads),\n"
|
||||||
|
"because typed text can be sniffed inconspicuously by 3rd parties within range."))
|
||||||
else:
|
else:
|
||||||
panel._secure._text.set_text(_("encrypted"))
|
panel._secure._text.set_text(_("encrypted"))
|
||||||
panel._secure._icon.set_from_icon_name('security-high', _INFO_ICON_SIZE)
|
panel._secure._icon.set_from_icon_name('security-high', _INFO_ICON_SIZE)
|
||||||
panel._secure.set_tooltip_text(_TOOLTIP_LINK_SECURE)
|
panel._secure.set_tooltip_text(_("The wireless link between this device and its receiver is encrypted."))
|
||||||
panel._secure._icon.set_visible(True)
|
panel._secure._icon.set_visible(True)
|
||||||
else:
|
else:
|
||||||
panel._secure._text.set_markup('<small>%s</small>' % _("offline"))
|
panel._secure._text.set_markup('<small>%s</small>' % _("offline"))
|
||||||
|
@ -666,7 +654,7 @@ def _update_device_panel(device, panel, buttons, full=False):
|
||||||
panel._lux.set_visible(False)
|
panel._lux.set_visible(False)
|
||||||
else:
|
else:
|
||||||
panel._lux._icon.set_from_icon_name(_icons.lux(light_level), _INFO_ICON_SIZE)
|
panel._lux._icon.set_from_icon_name(_icons.lux(light_level), _INFO_ICON_SIZE)
|
||||||
panel._lux._text.set_text('%d %s' % (light_level, _("lux")))
|
panel._lux._text.set_text(_("%(light_level)d lux") % { 'light_level': light_level })
|
||||||
panel._lux.set_visible(True)
|
panel._lux.set_visible(True)
|
||||||
else:
|
else:
|
||||||
panel._lux.set_visible(False)
|
panel._lux.set_visible(False)
|
||||||
|
@ -813,9 +801,9 @@ def update(device, need_popup=False):
|
||||||
_model.set_value(item, _COLUMN.STATUS_ICON, _CAN_SET_ROW_NONE)
|
_model.set_value(item, _COLUMN.STATUS_ICON, _CAN_SET_ROW_NONE)
|
||||||
else:
|
else:
|
||||||
if isinstance(battery_level, _NamedInt):
|
if isinstance(battery_level, _NamedInt):
|
||||||
status_text = str(battery_level)
|
status_text = _("%(battery_level)s") % { 'battery_level': _(str(battery_level)) }
|
||||||
else:
|
else:
|
||||||
status_text = '%d%%' % battery_level
|
status_text = _("%(battery_percent)d%%") % { 'battery_percent': battery_level }
|
||||||
_model.set_value(item, _COLUMN.STATUS_TEXT, status_text)
|
_model.set_value(item, _COLUMN.STATUS_TEXT, status_text)
|
||||||
|
|
||||||
charging = device.status.get(_K.BATTERY_CHARGING)
|
charging = device.status.get(_K.BATTERY_CHARGING)
|
||||||
|
|
|
@ -0,0 +1,510 @@
|
||||||
|
# Russian translations for solaar package.
|
||||||
|
# Copyright (C) 2013 THE solaar'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the solaar package.
|
||||||
|
#
|
||||||
|
# Automatically generated, 2013.
|
||||||
|
# Dmitry Ryazantcev <DJm00n@mail.ru>, 2013-2016.
|
||||||
|
msgid ""
|
||||||
|
msgstr "Project-Id-Version: solaar 0.9.2\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2016-12-21 00:13+0200\n"
|
||||||
|
"PO-Revision-Date: 2016-12-21 00:12+0200\n"
|
||||||
|
"Last-Translator: Dmitry Ryazantcev <DJm00n@mail.ru>\n"
|
||||||
|
"Language-Team: Russian <git@vger.kernel.org>\n"
|
||||||
|
"Language: ru\n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 "
|
||||||
|
"&& n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
|
"X-Generator: Poedit 1.5.4\n"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:38
|
||||||
|
msgid "critical"
|
||||||
|
msgstr "критический"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:38
|
||||||
|
msgid "empty"
|
||||||
|
msgstr "пусто"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:38
|
||||||
|
msgid "full"
|
||||||
|
msgstr "полный"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:38
|
||||||
|
msgid "good"
|
||||||
|
msgstr "средний"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:38
|
||||||
|
msgid "low"
|
||||||
|
msgstr "низкий"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:41
|
||||||
|
msgid "almost full"
|
||||||
|
msgstr "почти полная"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:41
|
||||||
|
msgid "charged"
|
||||||
|
msgstr "заряжено"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:41
|
||||||
|
msgid "discharging"
|
||||||
|
msgstr "разряжается"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:41
|
||||||
|
msgid "recharging"
|
||||||
|
msgstr "перезаряжается"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:42
|
||||||
|
msgid "invalid battery"
|
||||||
|
msgstr "недопустимая батарея"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:42
|
||||||
|
msgid "slow recharge"
|
||||||
|
msgstr "медленная разрядка"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:42
|
||||||
|
msgid "thermal error"
|
||||||
|
msgstr "тепловая ошибка"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:45
|
||||||
|
msgid "device not supported"
|
||||||
|
msgstr "устройство не поддерживается"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:45
|
||||||
|
msgid "device timeout"
|
||||||
|
msgstr "тайм аут устройства"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:45
|
||||||
|
msgid "sequence timeout"
|
||||||
|
msgstr "тайм аут последовательности"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:45
|
||||||
|
msgid "too many devices"
|
||||||
|
msgstr "слишком много устройств"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:48
|
||||||
|
msgid "Bootloader"
|
||||||
|
msgstr "Загрузчик"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:48 lib/solaar/ui/window.py:525
|
||||||
|
msgid "Firmware"
|
||||||
|
msgstr "Прошивка"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:48
|
||||||
|
msgid "Hardware"
|
||||||
|
msgstr "Оборудование"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:48
|
||||||
|
msgid "Other"
|
||||||
|
msgstr "Другое"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/notifications.py:67
|
||||||
|
msgid "pairing lock is closed"
|
||||||
|
msgstr "сопряжение заблокировано"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/notifications.py:67
|
||||||
|
msgid "pairing lock is open"
|
||||||
|
msgstr "сопряжение разблокировано"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/notifications.py:150 lib/solaar/ui/notify.py:123
|
||||||
|
msgid "unpaired"
|
||||||
|
msgstr "не сопряжено"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/notifications.py:192
|
||||||
|
msgid "powered on"
|
||||||
|
msgstr "включено"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/receiver.py:107 lib/solaar/ui/window.py:611
|
||||||
|
msgid "unknown"
|
||||||
|
msgstr "неизвестно"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:119
|
||||||
|
msgid "Smooth Scrolling"
|
||||||
|
msgstr "Плавная прокрутка"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:120
|
||||||
|
msgid "High-sensitivity mode for vertical scroll with the wheel."
|
||||||
|
msgstr "Режим высокой чувствительности для вертикальной прокрутки колесом."
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:121
|
||||||
|
msgid "Side Scrolling"
|
||||||
|
msgstr "Горизонтальная прокрутка"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:122
|
||||||
|
msgid "When disabled, pushing the wheel sideways sends custom button "
|
||||||
|
"events\n"
|
||||||
|
"instead of the standard side-scrolling events."
|
||||||
|
msgstr "Когда отключено, нажатие на колесо сбоку будет отправлять\n"
|
||||||
|
"пользовательские события нажатия, вместо стандартных\n"
|
||||||
|
"событий горизонтальной прокрутки."
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:124
|
||||||
|
msgid "Sensitivity (DPI)"
|
||||||
|
msgstr "Чувствительность (DPI)"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:125
|
||||||
|
msgid "Swap Fx function"
|
||||||
|
msgstr "Сменить поведение Fx"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:126
|
||||||
|
msgid "When set, the F1..F12 keys will activate their special function,\n"
|
||||||
|
"and you must hold the FN key to activate their standard function."
|
||||||
|
msgstr "Если включено, то кнопки F1..F12 будут активировать\n"
|
||||||
|
"их дополнительную функцию и вы должны будете зажать\n"
|
||||||
|
"кнопку FN для активации их стандартной функции."
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:129
|
||||||
|
msgid "When unset, the F1..F12 keys will activate their standard function,\n"
|
||||||
|
"and you must hold the FN key to activate their special function."
|
||||||
|
msgstr "Если выключено, то кнопки F1..F12 будут активировать\n"
|
||||||
|
"их стандартную функцию и вы должны будете зажать\n"
|
||||||
|
"кнопку FN для активации их дополнительной функции."
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:131
|
||||||
|
msgid "Hand Detection"
|
||||||
|
msgstr "Обнаружение рук"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:132
|
||||||
|
msgid "Turn on illumination when the hands hover over the keyboard."
|
||||||
|
msgstr "Включать подсветку, когда руки над клавиатурой."
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:133
|
||||||
|
msgid "Smart Shift"
|
||||||
|
msgstr "Smart Shift"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:134
|
||||||
|
msgid "Automatically switch the mouse wheel between ratchet and freespin "
|
||||||
|
"mode.\n"
|
||||||
|
"The mouse wheel is always free at 0, and always locked at 50"
|
||||||
|
msgstr "Автоматически переключать режим колесика между пошаговой и "
|
||||||
|
"сверхбыстрой прокруткой.\n"
|
||||||
|
"Колесико мыши всегда свободно при значении 0 и заблокировано при 50"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:99
|
||||||
|
msgid "No paired devices."
|
||||||
|
msgstr "Нет сопряженных устройств."
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:100 lib/solaar/ui/window.py:566
|
||||||
|
#, python-format
|
||||||
|
msgid "%(count)s paired device."
|
||||||
|
msgid_plural "%(count)s paired devices."
|
||||||
|
msgstr[0] "%(count)s сопряженное устройство."
|
||||||
|
msgstr[1] "%(count)s сопряженные устройства."
|
||||||
|
msgstr[2] "%(count)s сопряженных устройств."
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:149
|
||||||
|
#, python-format
|
||||||
|
msgid "Battery: %(level)s"
|
||||||
|
msgstr "Батарея: %(level)s"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:151
|
||||||
|
#, python-format
|
||||||
|
msgid "Battery: %(percent)d%%"
|
||||||
|
msgstr "Батарея: %(percent)d%%"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:162
|
||||||
|
#, python-format
|
||||||
|
msgid "Lighting: %(level)s lux"
|
||||||
|
msgstr "Освещенность: %(level)s lux"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:203
|
||||||
|
#, python-format
|
||||||
|
msgid "Battery: %(level)s (%(status)s)"
|
||||||
|
msgstr "Батарея: %(level)s (%(status)s)"
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:205
|
||||||
|
#, python-format
|
||||||
|
msgid "Battery: %(percent)d%% (%(status)s)"
|
||||||
|
msgstr "Батарея: %(percent)d%% (%(status)s)"
|
||||||
|
|
||||||
|
#: lib/solaar/listener.py:95
|
||||||
|
msgid "The receiver was unplugged."
|
||||||
|
msgstr "Приёмник был извлечен."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/__init__.py:48
|
||||||
|
msgid "Permissions error"
|
||||||
|
msgstr "Ошибка доступа"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/__init__.py:49
|
||||||
|
#, python-format
|
||||||
|
msgid "Found a Logitech Receiver (%s), but did not have permission to open "
|
||||||
|
"it."
|
||||||
|
msgstr "Найден приёмник Logitech (%s), но нет прав для доступа к нему."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/__init__.py:51
|
||||||
|
msgid "If you've just installed Solaar, try removing the receiver and "
|
||||||
|
"plugging it back in."
|
||||||
|
msgstr "Если это первый запуск Solaar, попробуйте извлечь и снова вставить "
|
||||||
|
"приёмник."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/__init__.py:53
|
||||||
|
msgid "Unpairing failed"
|
||||||
|
msgstr "Отмена сопряжения не удалась"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/__init__.py:54
|
||||||
|
#, python-brace-format
|
||||||
|
msgid "Failed to unpair %{device} from %{receiver}."
|
||||||
|
msgstr "Отмена сопряжения %{device} с %{receiver} не удалась."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/__init__.py:56
|
||||||
|
msgid "The receiver returned an error, with no further details."
|
||||||
|
msgstr "Приёмник вернул ошибку, без дополнительных деталей."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/about.py:39
|
||||||
|
msgid "Shows status of devices connected\n"
|
||||||
|
"through wireless Logitech receivers."
|
||||||
|
msgstr "Показывает статус устройств, подсоединенных\n"
|
||||||
|
"через беспроводные приёмники Logitech."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/about.py:48
|
||||||
|
msgid "GUI design"
|
||||||
|
msgstr "Дизайн интерфейса"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/about.py:49
|
||||||
|
msgid "Testing"
|
||||||
|
msgstr "Тестирование"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/about.py:54
|
||||||
|
msgid "Logitech documentation"
|
||||||
|
msgstr "Документация Logitech"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/action.py:68 lib/solaar/ui/window.py:306
|
||||||
|
msgid "About"
|
||||||
|
msgstr "О программе"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/action.py:95 lib/solaar/ui/action.py:98
|
||||||
|
#: lib/solaar/ui/window.py:193
|
||||||
|
msgid "Unpair"
|
||||||
|
msgstr "Отмена сопряжения"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/config_panel.py:120
|
||||||
|
msgid "Working"
|
||||||
|
msgstr "Работает"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/config_panel.py:123
|
||||||
|
msgid "Read/write operation failed."
|
||||||
|
msgstr "Операция чтения/записи не удалась."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/notify.py:125
|
||||||
|
msgid "connected"
|
||||||
|
msgstr "соединено"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/notify.py:127 lib/solaar/ui/tray.py:295
|
||||||
|
#: lib/solaar/ui/tray.py:300 lib/solaar/ui/window.py:647
|
||||||
|
msgid "offline"
|
||||||
|
msgstr "нет соединения"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:133
|
||||||
|
msgid "Pairing failed"
|
||||||
|
msgstr "Сопряжение не удалось"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:135
|
||||||
|
msgid "Make sure your device is within range, and has a decent battery "
|
||||||
|
"charge."
|
||||||
|
msgstr "Удостоверьтесь, что ваше устройство в радиусе приёма и батарея "
|
||||||
|
"заряжена."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:137
|
||||||
|
msgid "A new device was detected, but it is not compatible with this "
|
||||||
|
"receiver."
|
||||||
|
msgstr "Обнаружено новое устройство, но оно не совместимо с этим приёмником."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:139
|
||||||
|
#, python-format
|
||||||
|
msgid "The receiver only supports %d paired device(s)."
|
||||||
|
msgstr "Приёмник поддерживает только %d сопряженных устройств(а)."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:141
|
||||||
|
msgid "No further details are available about the error."
|
||||||
|
msgstr "Дополнительные детали об этой ошибке не доступны."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:155
|
||||||
|
msgid "Found a new device:"
|
||||||
|
msgstr "Найдено новое устройство:"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:180
|
||||||
|
msgid "The wireless link is not encrypted"
|
||||||
|
msgstr "Беспроводное соединение не зашифровано"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:197
|
||||||
|
#, python-format
|
||||||
|
msgid "%(receiver_name)s: pair new device"
|
||||||
|
msgstr "%(receiver_name)s: новое сопряженное устройство"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:205
|
||||||
|
msgid "Turn on the device you want to pair."
|
||||||
|
msgstr "Включите устройство, с которым вы хотите создать сопряжение."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/pair_window.py:206
|
||||||
|
msgid "If the device is already turned on,\n"
|
||||||
|
"turn if off and on again."
|
||||||
|
msgstr "Если устройство уже включено,\n"
|
||||||
|
"выключите и включите его снова."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/tray.py:55
|
||||||
|
msgid "No Logitech receiver found"
|
||||||
|
msgstr "Приёмник Logitech не найден"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/tray.py:62
|
||||||
|
msgid "Quit"
|
||||||
|
msgstr "Выйти"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/tray.py:279
|
||||||
|
msgid "no receiver"
|
||||||
|
msgstr "нет приёмника"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/tray.py:298
|
||||||
|
msgid "no status"
|
||||||
|
msgstr "нет статуса"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:100
|
||||||
|
msgid "Scanning"
|
||||||
|
msgstr "Сканирование"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:133
|
||||||
|
msgid "Battery"
|
||||||
|
msgstr "Батарея"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:136
|
||||||
|
msgid "Wireless Link"
|
||||||
|
msgstr "Беспроводное соединение"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:140
|
||||||
|
msgid "Lighting"
|
||||||
|
msgstr "Подсветка"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:169
|
||||||
|
msgid "Show Technical Details"
|
||||||
|
msgstr "Показать технические детали"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:182
|
||||||
|
msgid "Pair new device"
|
||||||
|
msgstr "Новое сопряженное устройство"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:201
|
||||||
|
msgid "Select a device"
|
||||||
|
msgstr "Выбор устройства"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:498
|
||||||
|
msgid "Path"
|
||||||
|
msgstr "Путь"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:500
|
||||||
|
msgid "USB id"
|
||||||
|
msgstr "Идент. USB"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:503 lib/solaar/ui/window.py:505
|
||||||
|
#: lib/solaar/ui/window.py:517 lib/solaar/ui/window.py:519
|
||||||
|
msgid "Serial"
|
||||||
|
msgstr "Серийный ном."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:509
|
||||||
|
msgid "Index"
|
||||||
|
msgstr "Номер"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:510
|
||||||
|
msgid "Wireless PID"
|
||||||
|
msgstr "Беспров. PID"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:512
|
||||||
|
msgid "Protocol"
|
||||||
|
msgstr "Протокол"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:512
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr "Неизвестен"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:514
|
||||||
|
#, python-format
|
||||||
|
msgid "%(rate)d ms (%(rate_hz)dHz)"
|
||||||
|
msgstr "%(rate)d мс (%(rate_hz)dГц)"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:514
|
||||||
|
msgid "Polling rate"
|
||||||
|
msgstr "Част. опроса"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:529
|
||||||
|
msgid "none"
|
||||||
|
msgstr "нет"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:530
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr "Уведомления"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:566
|
||||||
|
msgid "No device paired."
|
||||||
|
msgstr "Нет сопряженных устройств."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:569
|
||||||
|
#, python-format
|
||||||
|
msgid "Up to %(max_count)s device can be paired to this receiver."
|
||||||
|
msgid_plural "Up to %(max_count)s devices can be paired to this receiver."
|
||||||
|
msgstr[0] "До %(max_count)s устройства может быть сопряжено с этим "
|
||||||
|
"приёмником."
|
||||||
|
msgstr[1] "До %(max_count)s устройств может быть сопряжено с этим "
|
||||||
|
"приёмником."
|
||||||
|
msgstr[2] "До %(max_count)s устройств может быть сопряжено с этим "
|
||||||
|
"приёмником."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:571
|
||||||
|
msgid "Only one device can be paired to this receiver."
|
||||||
|
msgstr "Только одно устройство может быть сопряжено с этим приёмником."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:621 lib/solaar/ui/window.py:806
|
||||||
|
#, python-format
|
||||||
|
msgid "%(battery_percent)d%%"
|
||||||
|
msgstr "%(battery_percent)d%%"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:624
|
||||||
|
msgid "charging"
|
||||||
|
msgstr "заряжается"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:626
|
||||||
|
msgid "last known"
|
||||||
|
msgstr "последнее известное"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:633
|
||||||
|
msgid "not encrypted"
|
||||||
|
msgstr "не зашифровано"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:635
|
||||||
|
msgid "The wireless link between this device and its receiver is not "
|
||||||
|
"encrypted.\n"
|
||||||
|
"\n"
|
||||||
|
"For pointing devices (mice, trackballs, trackpads), this is a minor "
|
||||||
|
"security issue.\n"
|
||||||
|
"\n"
|
||||||
|
"It is, however, a major security issue for text-input devices "
|
||||||
|
"(keyboards, numpads),\n"
|
||||||
|
"because typed text can be sniffed inconspicuously by 3rd parties "
|
||||||
|
"within range."
|
||||||
|
msgstr "Беспроводное соединение между этим устройством и приёмником не "
|
||||||
|
"зашифровано.\n"
|
||||||
|
"\n"
|
||||||
|
"Для указывающих устройств (мышь, трекбол, трекпад) - это не "
|
||||||
|
"серьёзная уязвимость в безопасности.\n"
|
||||||
|
"\n"
|
||||||
|
"Но, это серьезная уязвимость для устройств ввода текста (клавиатура, "
|
||||||
|
"цифровая клавиатура),\n"
|
||||||
|
"т.к. вводимый текст может быть \"подслушан\" незаметно кем-то еще в "
|
||||||
|
"радиусе передачи."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:642
|
||||||
|
msgid "encrypted"
|
||||||
|
msgstr "зашифровано"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:644
|
||||||
|
msgid "The wireless link between this device and its receiver is encrypted."
|
||||||
|
msgstr "Беспроводное соединение между этим устройством и приёмником "
|
||||||
|
"зашифровано."
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:657
|
||||||
|
#, python-format
|
||||||
|
msgid "%(light_level)d lux"
|
||||||
|
msgstr "%(light_level)d люкс"
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:804
|
||||||
|
#, python-format
|
||||||
|
msgid "%(battery_level)s"
|
||||||
|
msgstr "%(battery_level)s"
|
315
po/solaar.pot
315
po/solaar.pot
|
@ -7,7 +7,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Project-Id-Version: solaar 0.9.2\n"
|
msgstr "Project-Id-Version: solaar 0.9.2\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2013-09-29 16:36+0300\n"
|
"POT-Creation-Date: 2016-12-21 00:13+0200\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -15,6 +15,7 @@ msgstr "Project-Id-Version: solaar 0.9.2\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
|
"Plural-Forms: nplurals=INTEGER; plural=EXPRESSION;\n"
|
||||||
|
|
||||||
#: lib/logitech_receiver/i18n.py:38
|
#: lib/logitech_receiver/i18n.py:38
|
||||||
msgid "critical"
|
msgid "critical"
|
||||||
|
@ -24,7 +25,7 @@ msgstr ""
|
||||||
msgid "empty"
|
msgid "empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/i18n.py:38 lib/logitech_receiver/i18n.py:41
|
#: lib/logitech_receiver/i18n.py:38
|
||||||
msgid "full"
|
msgid "full"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -40,6 +41,10 @@ msgstr ""
|
||||||
msgid "almost full"
|
msgid "almost full"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/i18n.py:41
|
||||||
|
msgid "charged"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/i18n.py:41
|
#: lib/logitech_receiver/i18n.py:41
|
||||||
msgid "discharging"
|
msgid "discharging"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -80,7 +85,7 @@ msgstr ""
|
||||||
msgid "Bootloader"
|
msgid "Bootloader"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/i18n.py:48 lib/solaar/ui/window.py:535
|
#: lib/logitech_receiver/i18n.py:48 lib/solaar/ui/window.py:525
|
||||||
msgid "Firmware"
|
msgid "Firmware"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -93,18 +98,14 @@ msgid "Other"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/notifications.py:67
|
#: lib/logitech_receiver/notifications.py:67
|
||||||
msgid "closed"
|
msgid "pairing lock is closed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/notifications.py:67
|
#: lib/logitech_receiver/notifications.py:67
|
||||||
msgid "open"
|
msgid "pairing lock is open"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/notifications.py:67
|
#: lib/logitech_receiver/notifications.py:150 lib/solaar/ui/notify.py:123
|
||||||
msgid "pairing lock is "
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/logitech_receiver/notifications.py:150 lib/solaar/ui/notify.py:118
|
|
||||||
msgid "unpaired"
|
msgid "unpaired"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -112,78 +113,98 @@ msgstr ""
|
||||||
msgid "powered on"
|
msgid "powered on"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/receiver.py:107 lib/solaar/ui/window.py:622
|
#: lib/logitech_receiver/receiver.py:107 lib/solaar/ui/window.py:611
|
||||||
msgid "unknown"
|
msgid "unknown"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:77
|
#: lib/logitech_receiver/settings_templates.py:119
|
||||||
msgid "Smooth Scrolling"
|
msgid "Smooth Scrolling"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:78
|
#: lib/logitech_receiver/settings_templates.py:120
|
||||||
msgid "High-sensitivity mode for vertical scroll with the wheel."
|
msgid "High-sensitivity mode for vertical scroll with the wheel."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:79
|
#: lib/logitech_receiver/settings_templates.py:121
|
||||||
msgid "Side Scrolling"
|
msgid "Side Scrolling"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:80
|
#: lib/logitech_receiver/settings_templates.py:122
|
||||||
msgid "When disabled, pushing the wheel sideways sends custom button "
|
msgid "When disabled, pushing the wheel sideways sends custom button "
|
||||||
"events\n"
|
"events\n"
|
||||||
"instead of the standard side-scrolling events."
|
"instead of the standard side-scrolling events."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:82
|
#: lib/logitech_receiver/settings_templates.py:124
|
||||||
msgid "Sensitivity (DPI)"
|
msgid "Sensitivity (DPI)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:83
|
#: lib/logitech_receiver/settings_templates.py:125
|
||||||
msgid "Swap Fx function"
|
msgid "Swap Fx function"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:84
|
#: lib/logitech_receiver/settings_templates.py:126
|
||||||
msgid "When set, the F1..F12 keys will activate their special function,\n"
|
msgid "When set, the F1..F12 keys will activate their special function,\n"
|
||||||
"and you must hold the FN key to activate their standard function."
|
"and you must hold the FN key to activate their standard function."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:87
|
#: lib/logitech_receiver/settings_templates.py:129
|
||||||
msgid "When unset, the F1..F12 keys will activate their standard function,\n"
|
msgid "When unset, the F1..F12 keys will activate their standard function,\n"
|
||||||
"and you must hold the FN key to activate their special function."
|
"and you must hold the FN key to activate their special function."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:89
|
#: lib/logitech_receiver/settings_templates.py:131
|
||||||
msgid "Hand Detection"
|
msgid "Hand Detection"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/settings_templates.py:90
|
#: lib/logitech_receiver/settings_templates.py:132
|
||||||
msgid "Turn on illumination when the hands hover over the keyboard."
|
msgid "Turn on illumination when the hands hover over the keyboard."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/status.py:98
|
#: lib/logitech_receiver/settings_templates.py:133
|
||||||
msgid "No paired devices."
|
msgid "Smart Shift"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/settings_templates.py:134
|
||||||
|
msgid "Automatically switch the mouse wheel between ratchet and freespin "
|
||||||
|
"mode.\n"
|
||||||
|
"The mouse wheel is always free at 0, and always locked at 50"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/status.py:99
|
#: lib/logitech_receiver/status.py:99
|
||||||
msgid "1 paired device."
|
msgid "No paired devices."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/status.py:100
|
#: lib/logitech_receiver/status.py:100 lib/solaar/ui/window.py:566
|
||||||
msgid " paired devices."
|
#, python-format
|
||||||
|
msgid "%(count)s paired device."
|
||||||
|
msgid_plural "%(count)s paired devices."
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:149
|
||||||
|
#, python-format
|
||||||
|
msgid "Battery: %(level)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/status.py:149 lib/logitech_receiver/status.py:151
|
#: lib/logitech_receiver/status.py:151
|
||||||
#: lib/logitech_receiver/status.py:203 lib/logitech_receiver/status.py:205
|
#, python-format
|
||||||
#: lib/solaar/ui/window.py:143
|
msgid "Battery: %(percent)d%%"
|
||||||
msgid "Battery"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/status.py:162 lib/solaar/ui/window.py:150
|
#: lib/logitech_receiver/status.py:162
|
||||||
msgid "Lighting"
|
#, python-format
|
||||||
|
msgid "Lighting: %(level)s lux"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/logitech_receiver/status.py:162 lib/solaar/ui/window.py:663
|
#: lib/logitech_receiver/status.py:203
|
||||||
msgid "lux"
|
#, python-format
|
||||||
|
msgid "Battery: %(level)s (%(status)s)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/logitech_receiver/status.py:205
|
||||||
|
#, python-format
|
||||||
|
msgid "Battery: %(percent)d%% (%(status)s)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/listener.py:95
|
#: lib/solaar/listener.py:95
|
||||||
|
@ -210,6 +231,7 @@ msgid "Unpairing failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/__init__.py:54
|
#: lib/solaar/ui/__init__.py:54
|
||||||
|
#, python-brace-format
|
||||||
msgid "Failed to unpair %{device} from %{receiver}."
|
msgid "Failed to unpair %{device} from %{receiver}."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -234,29 +256,29 @@ msgstr ""
|
||||||
msgid "Logitech documentation"
|
msgid "Logitech documentation"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/action.py:68 lib/solaar/ui/window.py:316
|
#: lib/solaar/ui/action.py:68 lib/solaar/ui/window.py:306
|
||||||
msgid "About"
|
msgid "About"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/action.py:95 lib/solaar/ui/action.py:98
|
#: lib/solaar/ui/action.py:95 lib/solaar/ui/action.py:98
|
||||||
#: lib/solaar/ui/window.py:203
|
#: lib/solaar/ui/window.py:193
|
||||||
msgid "Unpair"
|
msgid "Unpair"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/config_panel.py:98
|
#: lib/solaar/ui/config_panel.py:120
|
||||||
msgid "Working"
|
msgid "Working"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/config_panel.py:101
|
#: lib/solaar/ui/config_panel.py:123
|
||||||
msgid "Read/write operation failed."
|
msgid "Read/write operation failed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/notify.py:120
|
#: lib/solaar/ui/notify.py:125
|
||||||
msgid "connected"
|
msgid "connected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/notify.py:122 lib/solaar/ui/tray.py:290
|
#: lib/solaar/ui/notify.py:127 lib/solaar/ui/tray.py:295
|
||||||
#: lib/solaar/ui/tray.py:295 lib/solaar/ui/window.py:653
|
#: lib/solaar/ui/tray.py:300 lib/solaar/ui/window.py:647
|
||||||
msgid "offline"
|
msgid "offline"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -284,7 +306,7 @@ msgid "No further details are available about the error."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/pair_window.py:155
|
#: lib/solaar/ui/pair_window.py:155
|
||||||
msgid "Found a new device"
|
msgid "Found a new device:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/pair_window.py:180
|
#: lib/solaar/ui/pair_window.py:180
|
||||||
|
@ -292,7 +314,8 @@ msgid "The wireless link is not encrypted"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/pair_window.py:197
|
#: lib/solaar/ui/pair_window.py:197
|
||||||
msgid "pair new device"
|
#, python-format
|
||||||
|
msgid "%(receiver_name)s: pair new device"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/pair_window.py:205
|
#: lib/solaar/ui/pair_window.py:205
|
||||||
|
@ -312,19 +335,121 @@ msgstr ""
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/tray.py:274
|
#: lib/solaar/ui/tray.py:279
|
||||||
msgid "no receiver"
|
msgid "no receiver"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/tray.py:293
|
#: lib/solaar/ui/tray.py:298
|
||||||
msgid "no status"
|
msgid "no status"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:58
|
#: lib/solaar/ui/window.py:100
|
||||||
msgid "The wireless link between this device and its receiver is encrypted."
|
msgid "Scanning"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:59
|
#: lib/solaar/ui/window.py:133
|
||||||
|
msgid "Battery"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:136
|
||||||
|
msgid "Wireless Link"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:140
|
||||||
|
msgid "Lighting"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:169
|
||||||
|
msgid "Show Technical Details"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:182
|
||||||
|
msgid "Pair new device"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:201
|
||||||
|
msgid "Select a device"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:498
|
||||||
|
msgid "Path"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:500
|
||||||
|
msgid "USB id"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:503 lib/solaar/ui/window.py:505
|
||||||
|
#: lib/solaar/ui/window.py:517 lib/solaar/ui/window.py:519
|
||||||
|
msgid "Serial"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:509
|
||||||
|
msgid "Index"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:510
|
||||||
|
msgid "Wireless PID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:512
|
||||||
|
msgid "Protocol"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:512
|
||||||
|
msgid "Unknown"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:514
|
||||||
|
#, python-format
|
||||||
|
msgid "%(rate)d ms (%(rate_hz)dHz)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:514
|
||||||
|
msgid "Polling rate"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:529
|
||||||
|
msgid "none"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:530
|
||||||
|
msgid "Notifications"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:566
|
||||||
|
msgid "No device paired."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:569
|
||||||
|
#, python-format
|
||||||
|
msgid "Up to %(max_count)s device can be paired to this receiver."
|
||||||
|
msgid_plural "Up to %(max_count)s devices can be paired to this receiver."
|
||||||
|
msgstr[0] ""
|
||||||
|
msgstr[1] ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:571
|
||||||
|
msgid "Only one device can be paired to this receiver."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:621 lib/solaar/ui/window.py:806
|
||||||
|
#, python-format
|
||||||
|
msgid "%(battery_percent)d%%"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:624
|
||||||
|
msgid "charging"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:626
|
||||||
|
msgid "last known"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:633
|
||||||
|
msgid "not encrypted"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:635
|
||||||
msgid "The wireless link between this device and its receiver is not "
|
msgid "The wireless link between this device and its receiver is not "
|
||||||
"encrypted.\n"
|
"encrypted.\n"
|
||||||
"\n"
|
"\n"
|
||||||
|
@ -337,92 +462,20 @@ msgid "The wireless link between this device and its receiver is not "
|
||||||
"within range."
|
"within range."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:67 lib/solaar/ui/window.py:71
|
#: lib/solaar/ui/window.py:642
|
||||||
msgid "No device paired"
|
msgid "encrypted"
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:67 lib/solaar/ui/window.py:68
|
|
||||||
#, python-format
|
|
||||||
msgid "Up to %d devices can be paired to this receiver"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:68
|
|
||||||
msgid "paired devices"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:72
|
|
||||||
msgid "Only one device can be paired to this receiver"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:110
|
|
||||||
msgid "Scanning"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:146
|
|
||||||
msgid "Wireless Link"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:179
|
|
||||||
msgid "Show Technical Details"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:192
|
|
||||||
msgid "Pair new device"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:211
|
|
||||||
msgid "Select a device"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:508
|
|
||||||
msgid "Path"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:510
|
|
||||||
msgid "USB id"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:513 lib/solaar/ui/window.py:515
|
|
||||||
#: lib/solaar/ui/window.py:527 lib/solaar/ui/window.py:529
|
|
||||||
msgid "Serial"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:519
|
|
||||||
msgid "Index"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:520
|
|
||||||
msgid "Wireless PID"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:522
|
|
||||||
msgid "Protocol"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:524
|
|
||||||
msgid "Polling rate"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:539
|
|
||||||
msgid "none"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:540
|
|
||||||
msgid "Notifications"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:635
|
|
||||||
msgid "charging"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:637
|
|
||||||
msgid "last known"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:644
|
#: lib/solaar/ui/window.py:644
|
||||||
msgid "not encrypted"
|
msgid "The wireless link between this device and its receiver is encrypted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: lib/solaar/ui/window.py:648
|
#: lib/solaar/ui/window.py:657
|
||||||
msgid "encrypted"
|
#, python-format
|
||||||
|
msgid "%(light_level)d lux"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/solaar/ui/window.py:804
|
||||||
|
#, python-format
|
||||||
|
msgid "%(battery_level)s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
|
@ -3,6 +3,7 @@ Name=Solaar
|
||||||
Comment=Logitech Unifying Receiver peripherals manager
|
Comment=Logitech Unifying Receiver peripherals manager
|
||||||
Comment[fr]=Gestionnaire de périphériques pour les récepteurs Logitech Unifying
|
Comment[fr]=Gestionnaire de périphériques pour les récepteurs Logitech Unifying
|
||||||
Comment[hr]=Upravitelj Logitechovih uređaja povezanih putem Unifying i Nano prijemnika
|
Comment[hr]=Upravitelj Logitechovih uređaja povezanih putem Unifying i Nano prijemnika
|
||||||
|
Comment[ru]=Управление приёмником Logitech Unifying Receiver
|
||||||
Exec=solaar
|
Exec=solaar
|
||||||
Icon=solaar
|
Icon=solaar
|
||||||
StartupNotify=true
|
StartupNotify=true
|
||||||
|
|
Loading…
Reference in New Issue