From 64de05ef93d1ee217088209f46dd9167ae4facee Mon Sep 17 00:00:00 2001 From: wheaney <42350981+wheaney@users.noreply.github.com> Date: Sat, 17 Aug 2024 09:46:03 -0700 Subject: [PATCH] Add Russian-language files and initial LLM-generated translations --- ui/po/LINGUAS | 2 +- ui/po/ru.po | 482 ++++++++++++++++++++++++++ ui/po/ru/LC_MESSAGES/breezydesktop.mo | Bin 0 -> 13638 bytes 3 files changed, 483 insertions(+), 1 deletion(-) create mode 100644 ui/po/ru.po create mode 100644 ui/po/ru/LC_MESSAGES/breezydesktop.mo diff --git a/ui/po/LINGUAS b/ui/po/LINGUAS index 82bd741..67b7f56 100644 --- a/ui/po/LINGUAS +++ b/ui/po/LINGUAS @@ -1 +1 @@ -de es fr it ja pl sv zh_CN \ No newline at end of file +de es fr it ja pl ru sv zh_CN \ No newline at end of file diff --git a/ui/po/ru.po b/ui/po/ru.po new file mode 100644 index 0000000..d706e0b --- /dev/null +++ b/ui/po/ru.po @@ -0,0 +1,482 @@ +# Russian translations for PACKAGE package. +# Copyright (C) 2024 THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# , 2024. +# +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-08-17 09:44-0700\n" +"PO-Revision-Date: 2024-08-17 09:39-0700\n" +"Last-Translator: \n" +"Language-Team: Russian \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" + +#: src/connecteddevice.py:16 +msgid "" +"Switches your glasses into side-by-side mode and doubles the width of the " +"display." +msgstr "" +"Переключает очки в режим «сторона к стороне» и удваивает ширину дисплея." + +#: src/connecteddevice.py:17 +msgid "This feature is not currently supported for your device." +msgstr "Эта функция в настоящее время не поддерживается для вашего устройства." + +#: src/licensedialog.py:49 +msgid "Paid Tier Status" +msgstr "Статус платного уровня" + +#: src/licensedialog.py:57 +msgid "Feature Availability" +msgstr "Доступность функций" + +#: src/licensefeaturerow.py:15 src/shortcutdialog.py:107 +msgid "Disabled" +msgstr "Отключено" + +#: src/licensefeaturerow.py:18 +msgid "In trial" +msgstr "На пробном периоде" + +#: src/licensefeaturerow.py:18 +msgid "Enabled" +msgstr "Включено" + +#: src/licensefeaturerow.py:24 src/licensetierrow.py:30 +#, python-brace-format +msgid " ({time_remaining} remaining)" +msgstr " ({time_remaining} осталось)" + +#: src/licensefeaturerow.py:32 +msgid "Side-by-side mode (gaming)" +msgstr "Режим «сторона к стороне» (игры)" + +#: src/licensefeaturerow.py:33 +msgid "Smooth Follow (gaming)" +msgstr "Плавное следование (игры)" + +#: src/licensefeaturerow.py:34 +msgid "Breezy Desktop (productivity)" +msgstr "Breezy Desktop (продуктивность)" + +#: src/licensetierrow.py:24 +msgid "Active" +msgstr "Активно" + +#: src/licensetierrow.py:24 +msgid "Inactive" +msgstr "Неактивно" + +#: src/licensetierrow.py:41 +#, python-brace-format +msgid "${amount} USD" +msgstr "${amount} USD" + +#: src/licensetierrow.py:43 +msgid " to renew" +msgstr " для продления" + +#: src/licensetierrow.py:45 +msgid " to upgrade" +msgstr " для апгрейда" + +#: src/licensetierrow.py:47 +msgid "Paid through next renewal period" +msgstr "Оплачено до следующего периода продления" + +#: src/licensetierrow.py:56 +msgid "Gaming" +msgstr "Игры" + +#: src/licensetierrow.py:57 +msgid "Productivity" +msgstr "Продуктивность" + +#: src/licensetierrow.py:63 +msgid " - renewing monthly" +msgstr " - ежемесячное продление" + +#: src/licensetierrow.py:64 +msgid " - renewing yearly" +msgstr " - ежегодное продление" + +#: src/licensetierrow.py:65 +msgid "with lifetime access" +msgstr "с пожизненным доступом" + +#: src/licensetierrow.py:72 +msgid "Monthly" +msgstr "Ежемесячно" + +#: src/licensetierrow.py:73 +msgid "Yearly" +msgstr "Ежегодно" + +#: src/licensetierrow.py:74 +msgid "Lifetime" +msgstr "Пожизненно" + +#: src/time.py:14 +msgid "less than an hour" +msgstr "менее часа" + +#: src/time.py:17 +msgid "1 hour" +msgstr "1 час" + +#: src/time.py:17 +#, python-brace-format +msgid "{time_remaining} hours" +msgstr "{time_remaining} часов" + +#: src/time.py:20 +msgid "1 day" +msgstr "1 день" + +#: src/time.py:20 +#, python-brace-format +msgid "{time_remaining} days" +msgstr "{time_remaining} дней" + +#: src/gtk/connected-device.ui:21 +msgid "connected" +msgstr "подключено" + +#: src/gtk/connected-device.ui:31 +msgid "General Settings" +msgstr "Общие настройки" + +#: src/gtk/connected-device.ui:41 +msgid "Features" +msgstr "Функции" + +#: src/gtk/connected-device.ui:44 +msgid "XR effect" +msgstr "Эффект XR" + +#: src/gtk/connected-device.ui:45 +msgid "Enables the Breezy Desktop XR effect." +msgstr "Включает эффект Breezy Desktop XR." + +#: src/gtk/connected-device.ui:55 +msgid "Widescreen mode" +msgstr "Режим широкого экрана" + +#: src/gtk/connected-device.ui:66 +msgid "Follow mode" +msgstr "Режим следования" + +#: src/gtk/connected-device.ui:67 +msgid "Keep the virtual display near the center of your view." +msgstr "Поддерживайте виртуальный дисплей вблизи центра вашего зрения." + +#: src/gtk/connected-device.ui:77 +msgid "Curved display" +msgstr "Изогнутый дисплей" + +#: src/gtk/connected-device.ui:78 +msgid "Switch between flat and curved displays." +msgstr "Переключаться между плоскими и изогнутыми дисплеями." + +#: src/gtk/connected-device.ui:91 +msgid "Adjustments" +msgstr "Настройки" + +#: src/gtk/connected-device.ui:94 +msgid "Display distance" +msgstr "Расстояние дисплея" + +#: src/gtk/connected-device.ui:95 +msgid "" +"Closer appears larger, further appears smaller. Controls depth when in " +"widescreen mode." +msgstr "" +"Чем ближе, тем больше, чем дальше, тем меньше. Управляет глубиной при " +"использовании режима широкого экрана." + +#: src/gtk/connected-device.ui:123 +msgid "Display size" +msgstr "Размер дисплея" + +#: src/gtk/connected-device.ui:124 +msgid "" +"Combine with display distance to achieve a comfortable level of depth and " +"size." +msgstr "" +"Комбинируйте с расстоянием дисплея, чтобы достичь комфортного уровня глубины " +"и размера." + +#: src/gtk/connected-device.ui:152 +msgid "Display toggle distances" +msgstr "Расстояние переключения дисплея" + +#: src/gtk/connected-device.ui:153 +msgid "" +"Use the buttons to capture the current display distance for use with the " +"keyboard shortcut." +msgstr "" +"Используйте кнопки, чтобы зафиксировать текущее расстояние дисплея для " +"использования с сочетанием клавиш." + +#: src/gtk/connected-device.ui:178 +msgid "Follow threshold" +msgstr "Порог следования" + +#: src/gtk/connected-device.ui:179 +msgid "How far away you can look before the display follows." +msgstr "" +"На каком расстоянии вы можете посмотреть, прежде чем дисплей последует за " +"вами." + +#: src/gtk/connected-device.ui:209 src/gtk/connected-device.ui:215 +msgid "Keyboard Shortcuts" +msgstr "Сочетания клавиш" + +#: src/gtk/connected-device.ui:218 +msgid "Re-center display shortcut" +msgstr "Сочетание клавиш для перецентровки дисплея" + +#: src/gtk/connected-device.ui:219 +msgid "Pin the virtual display to the current position." +msgstr "Фиксировать виртуальный дисплей в текущем положении." + +#: src/gtk/connected-device.ui:238 src/gtk/connected-device.ui:267 +#: src/gtk/connected-device.ui:296 +msgid "Change" +msgstr "Изменить" + +#: src/gtk/connected-device.ui:247 +msgid "Display distance shortcut" +msgstr "Сочетание клавиш для расстояния дисплея" + +#: src/gtk/connected-device.ui:248 +msgid "Quickly toggle between two predefined distances." +msgstr "Быстро переключаться между двумя предопределенными расстояниями." + +#: src/gtk/connected-device.ui:276 +msgid "Toggle follow mode shortcut" +msgstr "Сочетание клавиш для переключения режима следования" + +#: src/gtk/connected-device.ui:277 +msgid "Quickly toggle follow mode." +msgstr "Быстро переключать режим следования." + +#: src/gtk/connected-device.ui:312 src/gtk/connected-device.ui:318 +msgid "Advanced Settings" +msgstr "Дополнительные настройки" + +#: src/gtk/connected-device.ui:321 +msgid "Find optimal display config" +msgstr "Найти оптимальную конфигурацию дисплея" + +#: src/gtk/connected-device.ui:322 +msgid "" +"Automatically modify the glasses display configuration for maximum " +"resolution and best scaling when plugged in." +msgstr "" +"Автоматически изменять конфигурацию дисплея очков для максимального " +"разрешения и лучшей масштабирования при подключении." + +#: src/gtk/connected-device.ui:332 +msgid "Use highest refresh rate" +msgstr "Использовать высшую частоту обновления" + +#: src/gtk/connected-device.ui:333 +msgid "Refresh rate may affect performance, disable this to set it manually." +msgstr "" +"Частота обновления может повлиять на производительность, отключите это, " +"чтобы установить ее вручную." + +#: src/gtk/connected-device.ui:343 +msgid "Always primary display" +msgstr "Всегда основной дисплей" + +#: src/gtk/connected-device.ui:344 +msgid "Automatically set the glasses as the primary display when plugged in." +msgstr "" +"Автоматически устанавливать очки в качестве основного дисплея при " +"подключении." + +#: src/gtk/connected-device.ui:354 +msgid "Fast SBS mode switching" +msgstr "Быстрое переключение режима SBS" + +#: src/gtk/connected-device.ui:355 +msgid "" +"Switches glasses to SBS mode immediately when plugged in, if widescreen mode " +"is on. May cause instability." +msgstr "" +"Переключает очки в режим SBS немедленно при подключении, если режим широкого " +"экрана включен. Может вызвать нестабильность." + +#: src/gtk/connected-device.ui:365 +msgid "Movement look-ahead" +msgstr "Прогнозирование движения" + +#: src/gtk/connected-device.ui:366 +msgid "" +"Counteracts input lag by predicting head-tracking position ahead of render " +"time. Stick with default unless virtual display drags behind your head " +"movements, jumps ahead, or is very shaky." +msgstr "" +"Компенсирует задержку ввода, прогнозируя положение отслеживания головы до " +"времени рендеринга. Оставайтесь на уровне по умолчанию, если только " +"виртуальный дисплей не отстает от движений вашей головы, не опережает или не " +"очень трясется." + +#: src/gtk/connected-device.ui:384 +msgid "Default" +msgstr "По умолчанию" + +#: src/gtk/failed-verification.ui:13 +msgid "Breezy Desktop GNOME invalid setup" +msgstr "Недействительная настройка Breezy Desktop GNOME" + +#: src/gtk/failed-verification.ui:14 +msgid "" +"Your Breezy GNOME setup is invalid or incomplete. Please re-run the setup " +"script. Report this issue if it persists." +msgstr "" +"Ваша настройка Breezy GNOME недействительна или неполна. Пожалуйста, " +"перезапустите скрипт настройки. Сообщите об этой проблеме, если она " +"сохранится." + +#: src/gtk/license-dialog.ui:5 src/gtk/window.ui:55 +msgid "License Details" +msgstr "Подробности лицензии" + +#: src/gtk/license-dialog.ui:27 +msgid "Donate" +msgstr "Сделать пожертвование" + +#: src/gtk/license-dialog.ui:44 +msgid "Request a token" +msgstr "Запросить токен" + +#: src/gtk/license-dialog.ui:52 +msgid "Verify token" +msgstr "Проверить токен" + +#: src/gtk/no-device.ui:13 +msgid "No device connected" +msgstr "Устройство не подключено" + +#: src/gtk/no-device.ui:14 +msgid "Breezy Desktop was unable to detect any supported XR devices." +msgstr "Breezy Desktop не смог обнаружить никаких поддерживаемых устройств XR." + +#: src/gtk/no-driver.ui:13 +msgid "No driver running" +msgstr "Драйвер не запущен" + +#: src/gtk/no-driver.ui:14 +msgid "" +"\n" +" If you installed via AUR, make sure you ran the recommended post-" +"install command:\n" +" systemctl --user enable --now xr-driver.service\n" +"\n" +" Otherwise, please file an issue on GitHub, or create a new thread " +"in the #troubleshooting channel on Discord.\n" +" " +msgstr "" +"\n" +" Если вы установили через AUR, убедитесь, что вы запустили " +"рекомендуемую команду пост-установки:\n" +" systemctl --user enable --now xr-driver.service\n" +"\n" +" В противном случае, пожалуйста, создайте проблему на GitHub или " +"новый тред в канале #troubleshooting на Discord.\n" +" " + +#: src/gtk/no-extension.ui:13 +msgid "Breezy Desktop GNOME extension not ready" +msgstr "Расширение Breezy Desktop GNOME не готово" + +#: src/gtk/no-extension.ui:14 +msgid "" +"If you have just run the setup, then you may need to log out and back in to " +"use it. Otherwise, please follow the Breezy GNOME setup instructions." +msgstr "" +"Если вы только что запустили настройку, вам может потребоваться выйти и " +"снова войти, чтобы использовать ее. В противном случае, пожалуйста, следуйте " +"инструкциям по настройке Breezy GNOME." + +#: src/gtk/no-license.ui:13 +msgid "No license file was found" +msgstr "Файл лицензии не найден" + +#: src/gtk/no-license.ui:14 +msgid "" +"\n" +" The first time you use Breezy Desktop, an internet connection is " +"required to retrieve your device's license.\n" +" \n" +" Don't worry, there's no obligation to donate at this time. If you " +"haven't, you'll be given a trial license so you can decide if Breezy Desktop " +"fits your needs. \n" +" \n" +" Once you obtain a license, trial or otherwise, you can use Breezy " +"Desktop offline until features expire (or indefinitely, if you've chosen " +"lifetime access).\n" +" " +msgstr "" +"\n" +" При первом использовании Breezy Desktop требуется интернет-" +"соединение для получения лицензии вашего устройства.\n" +" \n" +" Не волнуйтесь, вы не обязаны делать пожертвование в этот " +"момент. Если вы не сделали этого, вам будет предоставлена пробная " +"лицензия, чтобы вы могли решить, подходит ли вам Breezy Desktop.\n" +" \n" +" После получения лицензии, пробной или иной, вы можете " +"использовать Breezy Desktop в автономном режиме до истечения срока " +"действия функций (или бессрочно, если вы выбрали пожизненный доступ).\n" +" " + +#: src/gtk/no-license.ui:27 +msgid "Try Again" +msgstr "Попробовать еще раз" + +#: src/gtk/shortcut-dialog.ui:5 +msgid "Assign Keyboard Shortcut" +msgstr "Назначить сочетание клавиш" + +#: src/gtk/shortcut-dialog.ui:20 +msgid "Press your keyboard shortcut or 'Backspace' to disable..." +msgstr "Нажмите на свое сочетание клавиш или 'Backspace', чтобы отключить..." + +#: src/gtk/window.ui:10 +msgid "Breezy Desktop" +msgstr "Breezy Desktop" + +#: src/gtk/window.ui:23 +msgid "Menu" +msgstr "Меню" + +#: src/gtk/window.ui:35 +msgid "Some features expire soon" +msgstr "Некоторые функции скоро истекут" + +#: src/gtk/window.ui:36 src/gtk/window.ui:43 +msgid "View details" +msgstr "Просмотреть детали" + +#: src/gtk/window.ui:42 +msgid "Productivity features are disabled" +msgstr "Функции повышения производительности отключены" + +#: src/gtk/window.ui:59 +msgid "Force Reset" +msgstr "Силовой сброс" + +#: src/gtk/window.ui:63 +msgid "About BreezyDesktop" +msgstr "О BreezyDesktop" \ No newline at end of file diff --git a/ui/po/ru/LC_MESSAGES/breezydesktop.mo b/ui/po/ru/LC_MESSAGES/breezydesktop.mo new file mode 100644 index 0000000000000000000000000000000000000000..307ff5f888ba5a28c3ce5d007fa5aa8d85ebb994 GIT binary patch literal 13638 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 lrzfTQ`dXEGdC2+