Files
flutter_server_box/lib/l10n/app_uk.arb
GT610 9281a578e7 fix(container): Parsing results in sudo mode (#1031)
* docs(l10n): fix un-updated English translation

* feat(container): Add support for requiring a sudo password

Add support for sudo password verification for Docker container operations, including:
1. Added ContainerErrType.sudoPasswordRequired error type
2. Add password prompt text in multi-language files
3. Modify the SSH execution logic to correctly handle the input of sudo password
4. Implement password caching and verification mechanism

* feat(container): Add sudo password error handling logic

Add a new error type `sudoPasswordIncorrect` to handle situations where the sudo password is incorrect

Modify the password verification logic in the SSH client, and return a specific error code when a password error is detected

Update multilingual files to support password error prompt information

* fix(ssh): Remove unnecessary stderr parameter and improve sudo command handling

Clean up the no longer needed stderr parameter in the SSH client, which was originally used to handle sudo password prompts

Unify the sudo command construction logic, always use the _buildSudoCmd method, and add stderr redirection
Clear cached passwords when passwords are incorrect

* fix(container): Improved sudo command handling and Podman simulation detection

Fix the sudo command processing logic, remove the masking of stderr to capture password errors

Override the detection logic simulated by Podman

Refactor the command building logic to support sh wrapping of multi-line commands

* fix(container): Improve the prompt message for sudo password errors

Update the sudo password error prompt messages for all languages to more accurately reflect situations of incorrect password or lack of permission

Fix the password error detection logic for both the SSH client and container providers simultaneously

* refactor(container): Remove unused sudo and password parameters in exec method

Simplify the exec method signature by removing the sudo and password parameters that are no longer needed, as these functions are no longer in use

* feat: Add new contributors and optimize container command handling

Add two new contributors to the GithubIds list and refactor the container command processing logic:
1. Simplify the command wrapping logic and uniformly use `sh -c` for processing
2. Specific error handling when adding a sudo password incorrectly
3. Remove redundant conditional checks and temporary variables
2026-01-29 18:07:20 +08:00

305 lines
27 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"@@locale": "uk",
"aboutThanks": "Дякуємо наступним особам, які взяли участь.",
"acceptBeta": "Прийняти оновлення бета-версії",
"addSystemPrivateKeyTip": "Наразі приватних ключів нема, хочете додати той, що йде з системою (~/.ssh/id_rsa)?",
"added2List": "Додано до списку завдань",
"addr": "Адреса",
"alreadyLastDir": "Вже в останньому каталозі.",
"askAi": "Запитати ШІ",
"askAiApiKey": "Ключ API",
"askAiAwaitingResponse": "Очікування відповіді ШІ...",
"askAiBaseUrl": "Базова URL",
"askAiCommandInserted": "Команду вставлено в термінал",
"askAiConfigMissing": "Налаштуйте {fields} у налаштуваннях.",
"askAiConfirmExecute": "Підтвердити перед виконанням",
"askAiConversation": "Розмова з ШІ",
"askAiDisclaimer": "ШІ може помилятися. Користуйтеся обережно.",
"askAiFollowUpHint": "Поставте додаткове запитання...",
"askAiInsertTerminal": "Вставити в термінал",
"askAiModel": "Модель",
"askAiNoResponse": "Відповідь відсутня",
"askAiRecommendedCommand": "Команда, запропонована ШІ",
"askAiSelectedContent": "Вибраний вміст",
"askAiUsageHint": "Використовується в SSH-терміналі",
"atLeastOneTab": "Потрібно вибрати принаймні одну вкладку",
"authFailTip": "Авторизація не вдалася, будь ласка, перевірте правильність облікових даних",
"autoBackupConflict": "Тільки одне автоматичне резервне копіювання може бути активне одночасно.",
"autoConnect": "Авто підключення",
"autoRun": "Авто запуск",
"autoUpdateHomeWidget": "Автоматичне оновлення віджетів на головному екрані",
"availableTabs": "Доступні вкладки",
"backupEncrypted": "Резервна копія зашифрована",
"backupNotEncrypted": "Резервна копія не зашифрована",
"backupPassword": "Пароль резервного копіювання",
"backupPasswordRemoved": "Пароль резервного копіювання видалено",
"backupPasswordSet": "Пароль резервного копіювання встановлено",
"backupPasswordTip": "Встановіть пароль для шифрування файлів резервного копіювання. Залиште порожнім для відключення шифрування.",
"backupPasswordWrong": "Неправильний пароль резервного копіювання",
"backupTip": "Експортовані дані можуть бути зашифровані паролем. \nБудь ласка, зберігайте їх у безпеці.",
"backupVersionNotMatch": "Версія резервного копіювання не збіглася.",
"battery": "Акумулятор",
"bgRun": "Запуск у фоновому режимі",
"bgRunTip": "Цей перемикач лише вказує на те, що програма намагатиметься працювати у фоновому режимі. Чи може вона працювати у фоновому режимі, залежить від прав доступу. Для AOSP-орієнтованих Android ROM, будь ласка, вимкніть \"Оптимізацію акумулятора\" в цьому додатку. Для MIUI / HyperOS, будь ласка, змініть політику економії енергії на \"Нескінченна\".",
"clearAllStatsContent": "Ви впевнені, що хочете очистити всю статистику з'єднань сервера? Цю дію не можна скасувати.",
"clearAllStatsTitle": "Очистити всю статистику",
"clearServerStatsContent": "Ви впевнені, що хочете очистити статистику з'єднань для сервера \"{serverName}\"? Цю дію не можна скасувати.",
"clearServerStatsTitle": "Очистити статистику {serverName}",
"clearThisServerStats": "Очистити статистику цього сервера",
"compactDatabase": "Стиснути базу даних",
"compactDatabaseContent": "Розмір бази даних: {size}\n\nЦе перебудує базу даних, щоб зменшити розмір файлу. Дані не будуть видалені.",
"closeAfterSave": "Зберегти та закрити",
"cmd": "Команда",
"collapseUITip": "Сховати довгі списки, що є у UI за замовчуванням",
"conn": "З'єднання",
"connectionDetails": "Деталі з'єднання",
"connectionStats": "Статистика з'єднань",
"connectionStatsDesc": "Переглянути коефіцієнт успішності підключення до сервера та історію",
"container": "Контейнер",
"containerTrySudoTip": "Наприклад: У застосунку користувач це aaa, але Docker встановлений під користувачем root. У цьому випадку вам потрібно активувати цю опцію.",
"containerSudoPasswordRequired": "Для доступу до Docker потрібен пароль sudo. Будь ласка, введіть ваш пароль.",
"containerSudoPasswordIncorrect": "Пароль sudo неправильний або не дозволений. Будь ласка, спробуйте ще раз.",
"convert": "Конвертувати",
"copyPath": "Скопіювати шлях",
"cpuViewAsProgressTip": "Відобразити використання кожного процесора у вигляді стовпчикової діаграми (старий стиль)",
"cursorType": "Тип курсора",
"customCmd": "Користувацькі команди",
"customCmdDocUrl": "https://github.com/lollipopkit/flutter_server_box/wiki#custom-commands",
"customCmdHint": "\"Ім'я Команди\": \"Команда\"",
"decode": "Декодувати",
"decompress": "Розпакувати",
"deleteServers": "Масове видалення серверів",
"desktopTerminalTip": "Команда для відкриття емулятора термінала під час запуску SSH-сеансів.",
"dirEmpty": "Переконайтеся, що директорія пуста.",
"disconnected": "Відключено",
"discoverSshServers": "Виявити SSH сервери",
"discoveryFailed": "Виявлення не вдалось",
"discoverySettings": "Налаштування виявлення",
"discoverySummary": "Підсумок виявлення",
"disk": "Диск",
"diskHealth": "Стан диска",
"diskIgnorePath": "Ігнорувати шлях для диска",
"displayCpuIndex": "Відобразити індекс ЦП",
"dl2Local": "Завантажити {fileName} на локальний комп'ютер?",
"dockerEmptyRunningItems": "Немає запущених контейнерів.\nЦе може бути через:\n- Користувача Docker, відмінного від користувача, налаштованого в додатку\n- змінну оточення DOCKER_HOST, яка не була правильно зчитана. Ви можете виконати `echo $DOCKER_HOST` у терміналі, щоб побачити її значення.",
"dockerImagesFmt": "Всього {count} образів",
"dockerNotInstalled": "Docker не встановлено",
"dockerStatusRunningAndStoppedFmt": "{runningCount} запущено, {stoppedCount} контейнерів зупинено.",
"dockerStatusRunningFmt": "{count} контейнер(и) запущено.",
"doubleColumnMode": "Режим подвійної колонки",
"doubleColumnTip": "Ця опція лише активує функцію, чи можна її насправді включити, залежить від ширини пристрою",
"editVirtKeys": "Редагувати віртуальні клавіші",
"editorHighlightTip": "Поточна підсвітка коду не ідеальна і може бути вимкнена для покращення.",
"emulator": "Емулятор",
"enableMdns": "Увімкнути mDNS",
"enableMdnsDesc": "Використовувати mDNS/Bonjour для виявлення SSH сервісів",
"encode": "Кодувати",
"envVars": "Змінні середовища",
"experimentalFeature": "Експериментальна функція",
"extraArgs": "Додаткові аргументи",
"fallbackSshDest": "Резервна SSH адреса",
"fdroidReleaseTip": "Якщо ви завантажили цей застосунок з F-Droid, рекомендується відключити цю опцію.",
"fgService": "Служба переднього плану",
"fgServiceTip": "Після увімкнення деякі моделі пристроїв можуть вилітати. Вимкнення може призвести до того, що деякі моделі не зможуть підтримувати SSH-з'єднання у фоновому режимі. Будь ласка, дозвольте ServerBox права на сповіщення, фонову роботу та самопробудження в системних налаштуваннях.",
"fileTooLarge": "Файл '{file}' занадто великий ({size}), макс {sizeMax}",
"finishedAt": "Завершено о",
"followSystem": "Слідувати системі",
"fontSize": "Розмір шрифту",
"force": "Примусово",
"fullScreen": "Повноекранний режим",
"fullScreenJitter": "Тремтіння в повноекранному режимі",
"fullScreenJitterHelp": "Щоб уникнути вигоряння екрану",
"fullScreenTip": "Чи слід увімкнути повноекранний режим під час повороту пристрою в горизонтальне положення? Ця опція стосується лише вкладки сервера.",
"goBackQ": "Повернутися назад?",
"goto": "Перейти до",
"hideTitleBar": "Сховати заголовок",
"highlight": "Підсвітка коду",
"homeTabs": "Домашні вкладки",
"homeTabsCustomizeDesc": "Налаштуйте, які вкладки відображаються на головній сторінці та їх порядок",
"homeWidgetUrlConfig": "Налаштувати URL віджета на головному екрані",
"host": "Хост",
"httpFailedWithCode": "Запит не вдався, код статусу: {code}",
"ignoreCert": "Ігнорувати сертифікат",
"image": "Зображення",
"imagesList": "Список зображень",
"inner": "Внутрішній",
"install": "Встановити",
"installDockerWithUrl": "Будь ласка, спочатку встановіть Docker. (https://docs.docker.com/engine/install)",
"invalid": "Недійсний",
"invalidHostFormat": "Недійсний формат хоста. Дозволено лише символи IPv4, IPv6 та домену.",
"jumpServer": "Стрибковий Сервер",
"keepForeground": "Тримати застосунок на передньому плані!",
"keepStatusWhenErr": "Зберегати останній стан сервера",
"keepStatusWhenErrTip": "Тільки в разі виникнення помилки під час виконання скрипту",
"keyAuth": "Аутентифікація ключем",
"lastFailure": "Остання помилка",
"lastSuccess": "Останній успіх",
"letterCache": "Кешування букв",
"letterCacheTip": "Рекомендується відключити, але після вимкнення стане неможливим введення CJK (китайських, японських, корейських) символів.",
"location": "Місцезнаходження",
"loss": "втрата пакетів",
"madeWithLove": "Зроблено з ❤️ від {myGithub}",
"max": "макс.",
"maxConcurrency": "Максимальна паралельність",
"maxRetryCount": "Кількість повторних спроб підключення до сервера",
"maxRetryCountEqual0": "Знову і знову буде намагатися повторно підключитися.",
"min": "мін.",
"mission": "Місія",
"more": "Більше",
"moveOutServerFuncBtnsHelp": "Включено: може відображатися під кожною карткою на вкладці Сервер. Вимкнено: може відображатися вгорі на сторінці деталей сервера.",
"ms": "мс.",
"needHomeDir": "Якщо ви користувач Synology, [дивіться тут](https://kb.synology.com/DSM/tutorial/user_enable_home_service). Користувачі інших систем повинні знайти інформацію про те, як створити домашній каталог.",
"needRestart": "Необхідно перезапустити застосунок",
"net": "Мережа",
"netViewType": "Тип перегляду мережі",
"newContainer": "Новий контейнер",
"noConnectionStatsData": "Немає даних статистики з'єднань",
"noLineChart": "Не використовувати лінійні діаграми",
"noLineChartForCpu": "Не використовувати лінійні діаграми для ЦП",
"noPrivateKeyTip": "Приватного ключа немає, можливо, він був видалений або сталася помилка конфігурації.",
"noPromptAgain": "Більше не запитувати",
"node": "Вузол",
"notAvailable": "Недоступний",
"onServerDetailPage": "На сторінці деталі сервера",
"onlyOneLine": "Відображати лише в один рядок (прокрутка)",
"onlyWhenCoreBiggerThan8": "Працює лише тоді, коли кількість ядер перевищує 8",
"openLastPath": "Відкрити останній шлях",
"openLastPathTip": "Для різних серверів будуть збережені різні логи. Записується шлях при виході",
"parseContainerStatsTip": "Парсинг статусу зайнятості Docker є відносно повільним.",
"percentOfSize": "{percent}% з {size}",
"permission": "Дозволи",
"pingAvg": "Середнє:",
"pingInputIP": "Будь ласка, введіть цільовий IP / Домен.",
"pingNoServer": "Немає сервера для пінгування.\nБудь ласка, додайте сервер у вкладці `Сервер`.",
"pkg": "Пакет",
"plugInType": "Тип вставки",
"port": "Порт",
"preferDiskAmount": "Пріоритетно показувати ємність диска",
"privateKey": "Приватний ключ",
"privateKeyNotFoundFmt": "Приватний ключ [{keyId}] не знайдено.",
"process": "Процес",
"prune": "Обрізати",
"pushToken": "Надіслати токен",
"pveIgnoreCertTip": "Не рекомендується включати, будьте обережні з ризиками безпеки! Якщо ви використовуєте стандартний сертифікат від PVE, вам потрібно увімкнути цю опцію.",
"pveLoginFailed": "Не вдалося увійти. Неможливо пройти аутентифікацію за допомогою імені користувача/пароля з конфігурації сервера для входу Linux PAM.",
"pveVersionLow": "Ця функція наразі перебуває на стадії тестування та випробувалася лише на PVE 8+. Будь ласка, використовуйте її з обережністю.",
"read": "Читати",
"reboot": "Перезавантажити",
"recentConnections": "Останні з'єднання",
"rememberPwdInMem": "Запам'ятати пароль у пам'яті",
"rememberPwdInMemTip": "Використовується для контейнерів, призупинення тощо.",
"rememberWindowSize": "Запам'ятати розмір вікна",
"remotePath": "Віддалений шлях",
"restart": "Перезапустити",
"result": "Результат",
"rotateAngel": "Кут повороту",
"route": "Маршрут",
"run": "Запустити",
"running": "Виконання",
"sameIdServerExist": "Сервер з таким ID вже існує",
"save": "Зберегти",
"saved": "Збережено",
"second": "сек.",
"sensors": "Датчики",
"sequence": "Послідовність",
"server": "Сервер",
"serverDetailOrder": "Порядок віджетів на сторінці деталі",
"serverFuncBtns": "Кнопки функцій сервера",
"serverOrder": "Порядок сервера",
"serverTabRequired": "Вкладку сервера не можна видалити",
"servers": "серверів",
"sftpDlPrepare": "Підготовка до підключення...",
"sftpEditorTip": "Якщо порожньо, використовуйте вбудований редактор файлів програми. Якщо є значення, використовуйте редактор віддаленого сервера, наприклад, `vim` (рекомендується автоматично визначити відповідно до `EDITOR`).",
"sftpRmrDirSummary": "Використовуйте `rm -r`, щоб видалити папку в SFTP.",
"sftpSSHConnected": "SFTP підключено",
"sftpShowFoldersFirst": "Спочатку відображати директорії",
"showDistLogo": "Показати логотип дистрибутива",
"shutdown": "Вимкнення",
"size": "Розмір",
"snippet": "Фрагмент",
"softWrap": "М'ягкий перенос",
"specifyDev": "Вказати пристрій",
"specifyDevTip": "Наприклад, статистика мережевого трафіку за замовчуванням є для всіх пристроїв. Ви можете вказати певний пристрій тут.",
"speed": "Швидкість",
"spentTime": "Витрачений час: {time}",
"sshConfigAllExist": "Всі сервери вже існують (знайдено {duplicateCount} дублікатів)",
"sshConfigDuplicatesSkipped": "{duplicateCount} дублікатів буде пропущено",
"sshConfigFound": "Ми знайшли SSH-конфігурацію у вашій системі",
"sshConfigFoundServers": "Знайдено {totalCount} серверів",
"sshConfigImport": "Імпорт SSH Конфігурації",
"sshConfigImportHelp": "Можна імпортувати лише базову інформацію, наприклад: IP/порт.",
"sshConfigImportPermission": "Чи хочете ви надати дозвіл на читання ~/.ssh/config та автоматичний імпорт налаштувань сервера?",
"sshConfigImportTip": "Пропозиція прочитати ~/.ssh/config при створенні першого сервера",
"sshConfigImported": "Імпортовано {count} серверів з SSH-конфігурації",
"sshHostKeyChangedDesc": "SSH-ключ хоста для {serverName} змінено. Продовжуйте лише якщо довіряєте цьому серверу.",
"sshHostKeyFingerprintMd5Base64": "Відбиток (MD5 Base64): {fingerprint}",
"sshHostKeyFingerprintMd5Hex": "Відбиток (MD5 hex): {fingerprint}",
"sshHostKeyType": "Тип ключа хоста SSH",
"sshHostKeyNewDesc": "Отримано новий SSH-ключ хоста від {serverName}. Перевірте відбиток перед тим, як довіряти.",
"sshHostKeyStoredFingerprint": "Збережений відбиток: {fingerprint}",
"sshConfigManualSelect": "Чи хочете ви вручну вибрати файл конфігурації SSH?",
"sshConfigNoServers": "Сервери не знайдені в SSH-конфігурації",
"sshConfigPermissionDenied": "Неможливо отримати доступ до файлу конфігурації SSH через дозволи macOS.",
"sshConfigServersToImport": "{importCount} серверів буде імпортовано",
"sshTermHelp": "Коли термінал прокрутний, горизонтальне проведення вибирає текст. Натискання кнопки клавіатури вмикає/вимикає клавіатуру. Іконка файлу відкриває поточний шлях SFTP. Кнопка буфера обміну копіює вміст, коли текст вибрано, і вставляє вміст з буфера обміну в термінал, коли текст не вибрано і є вміст у буфері обміну. Іконка коду вставляє фрагменти коду в термінал і виконує їх.",
"sshTip": "Ця функція наразі в експериментальній стадії. Будь ласка, повідомте про помилки за адресою {url} або приєднуйтеся до нашої розробки.",
"sshVirtualKeyAutoOff": "Автоматичне переключення віртуальних клавіш",
"start": "Старт",
"stat": "Статистика",
"stats": "Статистики",
"stop": "Зупинити",
"stopped": "Зупинено",
"storage": "Сховище",
"supportFmtArgs": "Підтримуються такі параметри форматування:",
"suspend": "Призупинити",
"suspendTip": "Функція призупинення потребує адміністративних прав та підтримки systemd.",
"switchTo": "Переключитися на {val}",
"syncTip": "Може знадобитися перезапуск, щоб деякі зміни набрали чинності.",
"system": "Система",
"tag": "Теги",
"tapToStartDiscovery": "Натисніть кнопку пошуку, щоб виявити SSH сервери у вашій мережі",
"temperature": "Температура",
"termFontSizeTip": "Це налаштування вплине на розмір терміналу (ширину та висоту). Ви можете масштабувати на сторінці терміналу, щоб налаштувати розмір шрифту поточної сесії.",
"terminal": "Термінал",
"test": "Тест",
"textScaler": "Масштабування тексту",
"textScalerTip": "1.0 => 100% (оригінальний розмір), працює лише на частині шрифта сторінки сервера, не рекомендується змінювати.",
"theme": "Тема",
"time": "Час",
"times": "Рази",
"total": "Всього",
"totalAttempts": "Загальна кількість",
"traffic": "Трафік",
"trySudo": "Спробуйте використовувати sudo",
"ttl": "TTL",
"unknown": "Невідомо",
"unkownConvertMode": "Невідомий режим конвертації",
"update": "Оновити",
"updateIntervalEqual0": "Ви встановили 0, автоматичне оновлення не відбудеться.\nНе можна розрахувати статус ЦП.",
"updateServerStatusInterval": "Інтервал оновлення статусу сервера",
"upsideDown": "Доверху дном",
"uptime": "Час роботи",
"useCdn": "Використання CDN",
"useCdnTip": "Нереспонсивним користувачам рекомендується використовувати CDN. Чи хочете ви його використовувати?",
"useNoPwd": "Пароль не буде використовуватися",
"usePodmanByDefault": "Використовувати Podman за замовчуванням",
"used": "Використано",
"view": "Переглянути",
"viewDetails": "Переглянути деталі",
"viewErr": "Переглянути помилку",
"virtKeyHelpClipboard": "Копіювати в буфер обміну, якщо вибраний термінал не порожній, в іншому випадку вставити вміст буфера обміну в термінал.",
"virtKeyHelpIME": "Увімкнути/вимкнути клавіатуру",
"virtKeyHelpSFTP": "Відкрити поточний каталог у SFTP.",
"waitConnection": "Будь ласка, зачекайте, доки з'єднання буде встановлено.",
"wakeLock": "Залишити активним",
"watchNotPaired": "Немає спарованого Apple Watch",
"webdavSettingEmpty": "Налаштування WebDav порожнє",
"whenOpenApp": "При відкритті програми",
"wolTip": "Після налаштування WOL (Wake-on-LAN), при кожному підключенні до сервера відправляється запит WOL.",
"write": "Записати",
"writeScriptFailTip": "Запис у скрипт не вдався, можливо, через брак дозволів або каталог не існує.",
"writeScriptTip": "Після підключення до сервера скрипт буде записано у `~/.config/server_box` \n | `/tmp/server_box` для моніторингу стану системи. Ви можете переглянути вміст скрипта.",
"logs": "Журнали",
"podmanDockerEmulationDetected": "Виявлено емуляцію Podman Docker. Будь ласка, переключіться на Podman у налаштуваннях."
}