From 25028ead245d334fe8a9b184dde645bdaa17b6ea Mon Sep 17 00:00:00 2001
From: DevBot NetBird <91386968+netbirddev@users.noreply.github.com>
Date: Tue, 6 Oct 2026 18:16:01 +0200
Subject: [PATCH] New translations common.json (Ukrainian)
[ci skip]
---
client/ui/i18n/locales/uk/common.json | 1395 ++++++++++++++++---------
1 file changed, 930 insertions(+), 465 deletions(-)
diff --git a/client/ui/i18n/locales/uk/common.json b/client/ui/i18n/locales/uk/common.json
index 01d2f4452..07d3091ea 100644
--- a/client/ui/i18n/locales/uk/common.json
+++ b/client/ui/i18n/locales/uk/common.json
@@ -1,1397 +1,1862 @@
{
"tray.tooltip": {
- "message": "NetBird"
+ "message": "NetBird",
+ "description": "Hover tooltip on the system-tray / menu-bar icon. Brand name — do not translate."
},
"tray.status.disconnected": {
- "message": "Відключено"
+ "message": "Відключено",
+ "description": "Connection status surfaced through the tray icon: the client is not connected to the network."
},
"tray.status.daemonUnavailable": {
- "message": "Не запущено"
+ "message": "Не запущено",
+ "description": "Tray status: the background NetBird service (daemon) is not running."
},
"tray.status.error": {
- "message": "Помилка"
+ "message": "Помилка",
+ "description": "Tray status: the client is in an error state."
},
"tray.status.connected": {
- "message": "Підключено"
+ "message": "Підключено",
+ "description": "Tray status: connected to the NetBird network."
},
"tray.status.connecting": {
- "message": "Підключення"
+ "message": "Підключення",
+ "description": "Tray status: a connection is being established."
},
"tray.status.needsLogin": {
- "message": "Потрібно ввійти"
+ "message": "Потрібно ввійти",
+ "description": "Tray status: the user must sign in before connecting."
},
"tray.status.loginFailed": {
- "message": "Помилка входу"
+ "message": "Помилка входу",
+ "description": "Tray status: the last sign-in attempt failed."
},
"tray.status.sessionExpired": {
- "message": "Сеанс закінчився"
+ "message": "Сеанс закінчився",
+ "description": "Tray status: the authenticated session expired; the user must sign in again."
},
"tray.session.expiresIn": {
- "message": "До завершення сеансу: {remaining}"
+ "message": "До завершення сеансу: {remaining}",
+ "description": "Tray row showing time left before the session expires. {remaining} is a human-readable duration such as '5 minutes', built from the tray.session.unit.* strings. Keep {remaining} unchanged."
},
"tray.session.unit.lessThanMinute": {
- "message": "менше хвилини"
+ "message": "менше хвилини",
+ "description": "Duration fragment substituted into {remaining} (see tray.session.expiresIn). Used when under one minute remains."
},
"tray.session.unit.minute": {
- "message": "1 хв."
+ "message": "1 хв.",
+ "description": "Duration fragment for exactly one minute, substituted into {remaining}."
},
"tray.session.unit.minutes": {
- "message": "{count} хв."
+ "message": "{count} хв.",
+ "description": "Duration fragment for several minutes, substituted into {remaining}. {count} is the number of minutes; keep {count}."
},
"tray.session.unit.hour": {
- "message": "1 год."
+ "message": "1 год.",
+ "description": "Duration fragment for exactly one hour, substituted into {remaining}."
},
"tray.session.unit.hours": {
- "message": "{count} год."
+ "message": "{count} год.",
+ "description": "Duration fragment for several hours. {count} is the number of hours; keep {count}."
},
"tray.session.unit.day": {
- "message": "1 дн."
+ "message": "1 дн.",
+ "description": "Duration fragment for exactly one day, substituted into {remaining}."
},
"tray.session.unit.days": {
- "message": "{count} дн."
+ "message": "{count} дн.",
+ "description": "Duration fragment for several days. {count} is the number of days; keep {count}."
},
"tray.menu.open": {
- "message": "Відкрити NetBird"
+ "message": "Відкрити NetBird",
+ "description": "Tray menu item that opens the main NetBird window. Keep short."
},
"tray.menu.connect": {
- "message": "Підключитися"
+ "message": "Підключитися",
+ "description": "Tray menu item that connects to the network. Keep short."
},
"tray.menu.disconnect": {
- "message": "Відключитися"
+ "message": "Відключитися",
+ "description": "Tray menu item that disconnects from the network. Keep short."
},
"tray.menu.exitNode": {
- "message": "Вихідний вузол"
+ "message": "Вихідний вузол",
+ "description": "Tray submenu title for choosing an exit node (route all traffic through another peer)."
},
"tray.menu.networks": {
- "message": "Ресурси"
+ "message": "Ресурси",
+ "description": "Tray submenu title listing network resources the user can reach. Labelled 'Resources' in the UI even though the key says networks."
},
"tray.menu.profiles": {
- "message": "Профілі"
+ "message": "Профілі",
+ "description": "Tray submenu title listing connection profiles."
},
"tray.menu.manageProfiles": {
- "message": "Керування профілями"
+ "message": "Керування профілями",
+ "description": "Tray menu item that opens Settings → Profiles."
},
"tray.menu.settings": {
- "message": "Налаштування…"
+ "message": "Налаштування…",
+ "description": "Tray menu item that opens the Settings window. The trailing '...' signals that a window opens; keep it."
},
"tray.menu.debugBundle": {
- "message": "Створити архів діагностики"
+ "message": "Створити архів діагностики",
+ "description": "Tray menu item that generates a diagnostic log bundle for support."
},
"tray.menu.about": {
- "message": "Допомога та підтримка"
+ "message": "Допомога та підтримка",
+ "description": "Tray submenu title for help and support links."
},
"tray.menu.github": {
- "message": "GitHub"
+ "message": "GitHub",
+ "description": "Tray menu link to the GitHub repository. Brand name — do not translate."
},
"tray.menu.documentation": {
- "message": "Документація"
+ "message": "Документація",
+ "description": "Tray menu link to the online documentation."
},
"tray.menu.troubleshoot": {
- "message": "Діагностика"
+ "message": "Діагностика",
+ "description": "Tray menu link to troubleshooting help."
},
"tray.menu.downloadLatest": {
- "message": "Завантажити останню версію"
+ "message": "Завантажити останню версію",
+ "description": "Tray menu item to download the latest available version."
},
"tray.menu.installVersion": {
- "message": "Встановити версію {version}"
+ "message": "Встановити версію {version}",
+ "description": "Tray menu item to install a specific update. {version} is a version number like 0.30.1; keep {version}."
},
"tray.menu.guiVersion": {
- "message": "Графічний інтерфейс: {version}"
+ "message": "Графічний інтерфейс: {version}",
+ "description": "Tray menu row showing the installed UI version. 'GUI' = the graphical app. {version} is a version number; keep it."
},
"tray.menu.daemonVersion": {
- "message": "Служба: {version}"
+ "message": "Служба: {version}",
+ "description": "Tray menu row showing the background-service version. 'Daemon' = the background NetBird service. {version} is a version number; keep it."
},
"tray.menu.versionUnknown": {
- "message": "—"
+ "message": "—",
+ "description": "Placeholder shown in version rows when the version can't be determined. It is an em dash — leave as-is."
},
"tray.menu.quit": {
- "message": "Вийти з NetBird"
+ "message": "Вийти з NetBird",
+ "description": "Tray menu item that fully exits the app and removes the tray icon. Keep short."
},
"notify.daemonOutdated.title": {
- "message": "Служба NetBird застаріла"
+ "message": "Служба NetBird застаріла",
+ "description": "Title of the OS desktop notification shown when the running daemon is too old for this UI."
},
"notify.daemonOutdated.body": {
- "message": "Оновіть службу NetBird, щоб користуватися застосунком."
+ "message": "Оновіть службу NetBird, щоб користуватися застосунком.",
+ "description": "Body of the desktop notification telling the user to upgrade the daemon."
},
"notify.update.title": {
- "message": "Доступне оновлення NetBird"
+ "message": "Доступне оновлення NetBird",
+ "description": "Title of the OS desktop notification shown when an app update is available."
},
"notify.update.body": {
- "message": "Доступна версія NetBird {version}."
+ "message": "Доступна версія NetBird {version}.",
+ "description": "Body of the update-available desktop notification. {version} is the new version number; keep it."
},
"notify.update.enforcedSuffix": {
- "message": " Ваш адміністратор вимагає встановити це оновлення."
+ "message": " Ваш адміністратор вимагає встановити це оновлення.",
+ "description": "Sentence appended to the update notification body when the admin has made the update mandatory. Note the leading space — keep it."
},
"notify.error.title": {
- "message": "Помилка"
+ "message": "Помилка",
+ "description": "Title of a generic error desktop notification."
},
"notify.error.connect": {
- "message": "Не вдалося підключитися"
+ "message": "Не вдалося підключитися",
+ "description": "Error notification body shown when connecting failed."
},
"notify.error.disconnect": {
- "message": "Не вдалося відключитися"
+ "message": "Не вдалося відключитися",
+ "description": "Error notification body shown when disconnecting failed."
},
"notify.error.switchProfile": {
- "message": "Не вдалося перемкнутися на {profile}"
+ "message": "Не вдалося перемкнутися на {profile}",
+ "description": "Error notification shown when switching profiles failed. {profile} is the target profile name; keep it."
},
"notify.error.exitNode": {
- "message": "Не вдалося оновити вихідний вузол {name}"
+ "message": "Не вдалося оновити вихідний вузол {name}",
+ "description": "Error notification shown when updating the exit node failed. {name} is the exit node name; keep it."
},
"notify.sessionExpired.title": {
- "message": "Сеанс NetBird закінчився"
+ "message": "Сеанс NetBird закінчився",
+ "description": "Title of the desktop notification shown when the session has expired."
},
"notify.sessionExpired.body": {
- "message": "Ваш сеанс NetBird закінчився. Будь ласка, увійдіть знову."
+ "message": "Ваш сеанс NetBird закінчився. Будь ласка, увійдіть знову.",
+ "description": "Body of the session-expired desktop notification."
},
"notify.sessionWarning.title": {
- "message": "Сеанс невдовзі закінчиться"
+ "message": "Сеанс невдовзі закінчиться",
+ "description": "Title of the desktop notification warning that the session will expire soon."
},
"notify.sessionWarning.body": {
- "message": "Ваш сеанс NetBird закінчиться через {remaining}. Натисніть «Продовжити зараз», щоб оновити його."
+ "message": "Ваш сеанс NetBird закінчиться через {remaining}. Натисніть «Продовжити зараз», щоб оновити його.",
+ "description": "Body of the session-expiry warning notification. {remaining} is a human-readable duration (see tray.session.unit.*); keep it. 'Extend now' refers to the action button notify.sessionWarning.extend."
},
"notify.sessionWarning.bodyGeneric": {
- "message": "Ваш сеанс NetBird невдовзі закінчиться. Натисніть «Продовжити зараз», щоб оновити його."
+ "message": "Ваш сеанс NetBird невдовзі закінчиться. Натисніть «Продовжити зараз», щоб оновити його.",
+ "description": "Generic session-expiry warning body used when the exact remaining time isn't known."
},
"notify.sessionWarning.extend": {
- "message": "Продовжити зараз"
+ "message": "Продовжити зараз",
+ "description": "Action button on the session-expiry notification that renews the session. Keep short."
},
"notify.sessionWarning.dismiss": {
- "message": "Закрити"
+ "message": "Закрити",
+ "description": "Action button on the session-expiry notification that dismisses it. Keep short."
},
"notify.sessionWarning.failed": {
- "message": "Не вдалося продовжити сеанс NetBird"
+ "message": "Не вдалося продовжити сеанс NetBird",
+ "description": "Notification shown when renewing the session failed."
},
"notify.sessionWarning.successTitle": {
- "message": "Сеанс NetBird продовжено"
+ "message": "Сеанс NetBird продовжено",
+ "description": "Title of the notification confirming the session was renewed."
},
"notify.sessionWarning.successBody": {
- "message": "Ваш сеанс успішно продовжено."
+ "message": "Ваш сеанс успішно продовжено.",
+ "description": "Body of the notification confirming the session was renewed."
},
"notify.sessionDeadlineRejected.title": {
- "message": "Недійсний термін дії сеансу"
+ "message": "Недійсний термін дії сеансу",
+ "description": "Title of the notification shown when the server sent an invalid session deadline."
},
"notify.sessionDeadlineRejected.body": {
- "message": "Сервер надіслав недійсний термін дії сеансу. Будь ласка, увійдіть знову."
+ "message": "Сервер надіслав недійсний термін дії сеансу. Будь ласка, увійдіть знову.",
+ "description": "Body explaining the server sent an invalid session deadline and the user must sign in again."
},
"notify.mdm.policyApplied.title": {
- "message": "Налаштування NetBird оновлено"
+ "message": "Налаштування NetBird оновлено",
+ "description": "Title of the desktop notification shown when an MDM (IT-managed) policy changed the daemon configuration at runtime."
},
"notify.mdm.policyApplied.body": {
- "message": "Конфігурацію NetBird оновлено відповідно до політики вашої організації."
+ "message": "Конфігурацію NetBird оновлено відповідно до політики вашої організації.",
+ "description": "Body of the MDM policy-applied notification, telling the user their settings were changed by their organization's device-management policy."
},
"common.cancel": {
- "message": "Скасувати"
+ "message": "Скасувати",
+ "description": "Generic Cancel button label, reused across dialogs. Keep short."
},
"common.save": {
- "message": "Зберегти"
+ "message": "Зберегти",
+ "description": "Generic Save button label. Keep short."
},
"common.saveChanges": {
- "message": "Зберегти зміни"
+ "message": "Зберегти зміни",
+ "description": "Button label to save edited settings. Keep short."
},
"common.saving": {
- "message": "Збереження…"
+ "message": "Збереження…",
+ "description": "Button label / status shown while a save is in progress. Ends with an ellipsis."
},
"common.close": {
- "message": "Закрити"
+ "message": "Закрити",
+ "description": "Generic Close button label. Keep short."
},
"common.copy": {
- "message": "Копіювати"
+ "message": "Копіювати",
+ "description": "Generic Copy button label (copy to clipboard). Keep short."
},
"common.togglePasswordVisibility": {
- "message": "Показати/сховати пароль"
+ "message": "Показати/сховати пароль",
+ "description": "Accessibility label for the show/hide button inside a password field."
},
"common.increase": {
- "message": "Збільшити"
+ "message": "Збільшити",
+ "description": "Accessibility label for the increment (+) button on a numeric stepper input."
},
"common.decrease": {
- "message": "Зменшити"
+ "message": "Зменшити",
+ "description": "Accessibility label for the decrement (−) button on a numeric stepper input."
},
"common.delete": {
- "message": "Видалити"
+ "message": "Видалити",
+ "description": "Generic Delete button label. Keep short."
},
"common.create": {
- "message": "Створити"
+ "message": "Створити",
+ "description": "Generic Create button label. Keep short."
},
"common.add": {
- "message": "Додати"
+ "message": "Додати",
+ "description": "Generic Add button label. Keep short."
},
"common.remove": {
- "message": "Вилучити"
+ "message": "Вилучити",
+ "description": "Generic Remove button label. Keep short."
},
"common.refresh": {
- "message": "Оновити"
+ "message": "Оновити",
+ "description": "Generic Refresh button label. Keep short."
},
"common.loading": {
- "message": "Завантаження…"
+ "message": "Завантаження…",
+ "description": "Generic loading indicator text. Ends with an ellipsis."
},
"common.netbird": {
- "message": "NetBird"
+ "message": "NetBird",
+ "description": "The product name. Brand — do not translate."
},
"common.noResults.title": {
- "message": "Результатів не знайдено"
+ "message": "Результатів не знайдено",
+ "description": "Title of the empty state shown when a search or filter returns nothing."
},
"common.noResults.description": {
- "message": "Ми не змогли нічого знайти. Спробуйте змінити пошуковий запит або налаштування фільтрів."
+ "message": "Ми не змогли нічого знайти. Спробуйте змінити пошуковий запит або налаштування фільтрів.",
+ "description": "Body of the no-results empty state, suggesting a different search term or filters."
},
"notConnected.title": {
- "message": "Відключено"
+ "message": "Відключено",
+ "description": "Title of the placeholder shown on data screens while disconnected."
},
"notConnected.description": {
- "message": "Спочатку підключіться до NetBird, щоб переглянути детальну інформацію про піри, мережеві ресурси та вихідні вузли."
+ "message": "Спочатку підключіться до NetBird, щоб переглянути детальну інформацію про піри, мережеві ресурси та вихідні вузли.",
+ "description": "Body explaining the user must connect to NetBird first to see peer, resource, and exit-node details."
},
"connect.status.disconnected": {
- "message": "Відключено"
+ "message": "Відключено",
+ "description": "Label on the main-window connection toggle: not connected."
},
"connect.status.connecting": {
- "message": "Підключення…"
+ "message": "Підключення…",
+ "description": "Connection toggle label while connecting. Ends with an ellipsis."
},
"connect.status.connected": {
- "message": "Підключено"
+ "message": "Підключено",
+ "description": "Connection toggle label when connected."
},
"connect.status.disconnecting": {
- "message": "Відключення…"
+ "message": "Відключення…",
+ "description": "Connection toggle label while disconnecting. Ends with an ellipsis."
},
"connect.status.daemonUnavailable": {
- "message": "Служба недоступна"
+ "message": "Служба недоступна",
+ "description": "Connection toggle label when the background service is unavailable. 'Daemon' = background service."
},
"connect.status.loginRequired": {
- "message": "Потрібно ввійти"
+ "message": "Потрібно ввійти",
+ "description": "Connection toggle label when sign-in is required before connecting."
},
"connect.error.loginTitle": {
- "message": "Помилка входу"
+ "message": "Помилка входу",
+ "description": "Error-dialog title shown when sign-in fails. The action-named '… Failed' style is intentional — keep it."
},
"connect.error.connectTitle": {
- "message": "Помилка підключення"
+ "message": "Помилка підключення",
+ "description": "Error-dialog title shown when connecting fails."
},
"connect.error.disconnectTitle": {
- "message": "Помилка відключення"
+ "message": "Помилка відключення",
+ "description": "Error-dialog title shown when disconnecting fails."
},
"nav.peers.title": {
- "message": "Піри"
+ "message": "Піри",
+ "description": "Navigation label for the Peers section (other devices in the network)."
},
"nav.peers.description": {
- "message": "Підключено {connected} з {total}"
+ "message": "Підключено {connected} з {total}",
+ "description": "Sub-label under Peers showing how many are connected. {connected} and {total} are numbers; keep both."
},
"nav.resources.title": {
- "message": "Ресурси"
+ "message": "Ресурси",
+ "description": "Navigation label for the Resources section (routed networks)."
},
"nav.resources.description": {
- "message": "Активно {active} з {total}"
+ "message": "Активно {active} з {total}",
+ "description": "Sub-label under Resources showing how many are active. {active} and {total} are numbers; keep both."
},
"nav.exitNode.title": {
- "message": "Вихідні вузли"
+ "message": "Вихідні вузли",
+ "description": "Navigation label for the Exit Nodes section."
},
"nav.exitNode.none": {
- "message": "Неактивний"
+ "message": "Неактивний",
+ "description": "Sub-label under Exit Nodes when no exit node is in use."
},
"nav.exitNode.using": {
- "message": "Через {name}"
+ "message": "Через {name}",
+ "description": "Sub-label under Exit Nodes when one is active. {name} is the exit node's name; keep it."
},
"header.openSettings": {
- "message": "Відкрити налаштування"
+ "message": "Відкрити налаштування",
+ "description": "Accessibility label / tooltip for the gear icon that opens Settings."
},
"header.togglePanel": {
- "message": "Показати/сховати бічну панель"
+ "message": "Показати/сховати бічну панель",
+ "description": "Accessibility label / tooltip for the button that shows or hides the side panel."
},
"profile.selector.loading": {
- "message": "Завантаження…"
+ "message": "Завантаження…",
+ "description": "Shown in the profile picker while profiles load. Ends with an ellipsis."
},
"profile.selector.noProfile": {
- "message": "Немає профілю"
+ "message": "Немає профілю",
+ "description": "Shown in the profile picker when no profile is selected."
},
"profile.selector.searchPlaceholder": {
- "message": "Пошук профілю за назвою…"
+ "message": "Пошук профілю за назвою…",
+ "description": "Placeholder text in the profile picker's search field."
},
"profile.selector.emptyTitle": {
- "message": "Профілів не знайдено"
+ "message": "Профілів не знайдено",
+ "description": "Title shown in the profile picker when a search matches no profiles."
},
"profile.selector.emptyDescription": {
- "message": "Спробуйте змінити пошуковий запит або створіть новий профіль."
+ "message": "Спробуйте змінити пошуковий запит або створіть новий профіль.",
+ "description": "Body shown when no profiles match the search, suggesting a different term or creating one."
},
"profile.selector.newProfile": {
- "message": "Новий профіль"
+ "message": "Новий профіль",
+ "description": "Button in the profile picker to create a new profile. Keep short."
},
"profile.selector.moreOptions": {
- "message": "Додаткові параметри"
+ "message": "Додаткові параметри",
+ "description": "Accessibility label for the per-profile kebab (⋯) menu."
},
"profile.selector.deregister": {
- "message": "Вийти з профілю"
+ "message": "Вийти з профілю",
+ "description": "Per-profile menu action: deregister (sign out of the profile but keep it)."
},
"profile.selector.delete": {
- "message": "Видалити"
+ "message": "Видалити",
+ "description": "Per-profile menu action: delete the profile."
},
"profile.selector.switchTo": {
- "message": "Перемкнутися на цей профіль"
+ "message": "Перемкнутися на цей профіль",
+ "description": "Tooltip / label for the action that switches to a profile."
},
"profile.selector.edit": {
- "message": "Редагувати"
+ "message": "Редагувати",
+ "description": "Per-profile menu action: open the edit dialog to rename or change the management server."
},
"profile.edit.title": {
- "message": "Редагувати профіль"
+ "message": "Редагувати профіль",
+ "description": "Title of the dialog for editing an existing profile."
},
"profile.edit.submit": {
- "message": "Зберегти зміни"
+ "message": "Зберегти зміни",
+ "description": "Submit button on the edit-profile dialog. Keep short."
},
"profile.dialog.title": {
- "message": "Введіть назву профілю"
+ "message": "Введіть назву профілю",
+ "description": "Title of the dialog for naming a new profile."
},
"profile.dialog.nameLabel": {
- "message": "Назва профілю"
+ "message": "Назва профілю",
+ "description": "Field label for the profile name."
},
"profile.dialog.description": {
- "message": "Вкажіть зрозумілу назву для вашого профілю."
+ "message": "Вкажіть зрозумілу назву для вашого профілю.",
+ "description": "Helper text under the profile-name field."
},
"profile.dialog.placeholder": {
- "message": "наприклад, Робота"
+ "message": "наприклад, Робота",
+ "description": "Example placeholder shown in the profile-name field. 'Work' is a sample value; translate it to a natural example."
},
"profile.dialog.submit": {
- "message": "Додати профіль"
+ "message": "Додати профіль",
+ "description": "Submit button on the add-profile dialog. Keep short."
},
"profile.dialog.required": {
- "message": "Будь ласка, введіть назву профілю, наприклад, «Робота» або «Дім»."
+ "message": "Будь ласка, введіть назву профілю, наприклад, «Робота» або «Дім».",
+ "description": "Validation message shown when the profile name is empty. The examples (work, home) may be localized."
},
"profile.dialog.managementHelp": {
- "message": "Використовуйте NetBird Cloud або власний сервер."
+ "message": "Використовуйте NetBird Cloud або власний сервер.",
+ "description": "Helper text noting the profile can use NetBird Cloud or a self-hosted server."
},
"profile.dialog.urlUnreachable": {
- "message": "Не вдалося підключитися до цього сервера. Перевірте URL-адресу або додайте профіль, якщо ви впевнені, що вона правильна."
+ "message": "Не вдалося підключитися до цього сервера. Перевірте URL-адресу або додайте профіль, якщо ви впевнені, що вона правильна.",
+ "description": "Soft warning when the entered server URL couldn't be reached; the user may add the profile anyway."
},
"header.menu.settings": {
- "message": "Налаштування…"
+ "message": "Налаштування…",
+ "description": "'More' menu item in the header that opens Settings. The trailing '...' signals a window opens."
},
"header.menu.defaultView": {
- "message": "Стандартний вигляд"
+ "message": "Стандартний вигляд",
+ "description": "'More' menu item that switches the main window to the compact default view."
},
"header.menu.advancedView": {
- "message": "Розширений вигляд"
+ "message": "Розширений вигляд",
+ "description": "'More' menu item that switches the main window to the wider advanced view."
},
"header.menu.updateAvailable": {
- "message": "Доступне оновлення"
+ "message": "Доступне оновлення",
+ "description": "'More' menu item / badge shown when an update is available."
},
"header.menu.open": {
- "message": "Відкрити меню"
+ "message": "Відкрити меню",
+ "description": "Accessibility label for the header's more (⋮) button that opens the menu."
},
"header.profile.switch": {
- "message": "Змінити профіль"
+ "message": "Змінити профіль",
+ "description": "Accessibility label for the header's profile selector button."
},
"connect.toggle.label": {
- "message": "Перемкнути підключення NetBird"
+ "message": "Перемкнути підключення NetBird",
+ "description": "Accessibility label for the large connect/disconnect toggle on the main page."
},
"connect.localIp.label": {
- "message": "Локальні IP-адреси"
+ "message": "Локальні IP-адреси",
+ "description": "Accessibility label for the local IP selector that toggles between IPv4 and IPv6 on the main page."
},
"common.search": {
- "message": "Пошук"
+ "message": "Пошук",
+ "description": "Accessibility label for a generic search input."
},
"common.filter": {
- "message": "Фільтр"
+ "message": "Фільтр",
+ "description": "Accessibility label for a generic filter control."
},
"exitNodes.dropdown.trigger": {
- "message": "Вибрати вихідний вузол"
+ "message": "Вибрати вихідний вузол",
+ "description": "Accessibility label for the exit-node picker button at the bottom of the main page."
},
"peers.row.label": {
- "message": "Відкрити деталі для {name}, {status}"
+ "message": "Відкрити деталі для {name}, {status}",
+ "description": "Accessibility label for a peer row in the list. {name} is the peer name and {status} is the connection status; keep both placeholders."
},
"peers.dialog.title": {
- "message": "Деталі піра"
+ "message": "Деталі піра",
+ "description": "Accessibility title (announced to screen readers) for the peer details dialog/panel."
},
"networks.row.toggle": {
- "message": "Перемкнути {name}"
+ "message": "Перемкнути {name}",
+ "description": "Accessibility label for the row-wide toggle on a network/resource. {name} is the resource id; keep the placeholder."
},
"networks.bulk.label": {
- "message": "Перемкнути всі видимі ресурси"
+ "message": "Перемкнути всі видимі ресурси",
+ "description": "Accessibility label for the bulk enable/disable button at the bottom of the resources list."
},
"profile.switch.title": {
- "message": "Перемкнутися на профіль «{name}»?"
+ "message": "Перемкнутися на профіль «{name}»?",
+ "description": "Confirmation-dialog title for switching profiles. {name} is the target profile name, shown in quotes; keep {name} and the surrounding quotes."
},
"profile.switch.message": {
- "message": "Ви впевнені, що хочете змінити профіль?\nВаш поточний профіль буде відключено."
+ "message": "Ви впевнені, що хочете змінити профіль?\nВаш поточний профіль буде відключено.",
+ "description": "Confirmation body for switching profiles. Contains a line break (\\n) — keep it."
},
"profile.switch.confirm": {
- "message": "Підтвердити"
+ "message": "Підтвердити",
+ "description": "Confirm button on the switch-profile dialog. Keep short."
},
"profile.deregister.title": {
- "message": "Вийти з профілю «{name}»?"
+ "message": "Вийти з профілю «{name}»?",
+ "description": "Confirmation-dialog title for deregistering a profile. {name} is the profile name; keep it and the quotes."
},
"profile.deregister.message": {
- "message": "Ви впевнені, що хочете вийти з цього профілю?\nВам доведеться увійти знову, щоб використовувати його."
+ "message": "Ви впевнені, що хочете вийти з цього профілю?\nВам доведеться увійти знову, щоб використовувати його.",
+ "description": "Confirmation body for deregistering; warns the user must sign in again. Contains a line break (\\n) — keep it."
},
"profile.deregister.confirm": {
- "message": "Вийти"
+ "message": "Вийти",
+ "description": "Confirm button on the deregister dialog. Keep short."
},
"profile.delete.title": {
- "message": "Видалити профіль «{name}»?"
+ "message": "Видалити профіль «{name}»?",
+ "description": "Confirmation-dialog title for deleting a profile. {name} is the profile name; keep it and the quotes."
},
"profile.delete.message": {
- "message": "Ви впевнені, що хочете видалити цей профіль?\nЦю дію неможливо скасувати."
+ "message": "Ви впевнені, що хочете видалити цей профіль?\nЦю дію неможливо скасувати.",
+ "description": "Confirmation body for deleting; warns the action can't be undone. Contains a line break (\\n) — keep it."
},
"profile.delete.disabledActive": {
- "message": "Активні профілі не можна видаляти. Перемкніться на інший профіль перед видаленням цього."
+ "message": "Активні профілі не можна видаляти. Перемкніться на інший профіль перед видаленням цього.",
+ "description": "Tooltip explaining the active profile can't be deleted until the user switches away."
},
"profile.delete.disabledDefault": {
- "message": "Профіль за замовчуванням не можна видалити."
+ "message": "Профіль за замовчуванням не можна видалити.",
+ "description": "Tooltip explaining the default profile can't be deleted."
},
"profile.error.switchTitle": {
- "message": "Помилка зміни профілю"
+ "message": "Помилка зміни профілю",
+ "description": "Error-dialog title when switching profiles fails."
},
"profile.error.deregisterTitle": {
- "message": "Помилка виходу з профілю"
+ "message": "Помилка виходу з профілю",
+ "description": "Error-dialog title when deregistering a profile fails."
},
"profile.error.deleteTitle": {
- "message": "Помилка видалення профілю"
+ "message": "Помилка видалення профілю",
+ "description": "Error-dialog title when deleting a profile fails."
},
"profile.error.createTitle": {
- "message": "Помилка створення профілю"
+ "message": "Помилка створення профілю",
+ "description": "Error-dialog title when creating a profile fails."
},
"profile.error.editTitle": {
- "message": "Помилка редагування профілю"
+ "message": "Помилка редагування профілю",
+ "description": "Error-dialog title when editing a profile (rename or management URL change) fails."
},
"profile.error.loadTitle": {
- "message": "Помилка завантаження профілів"
+ "message": "Помилка завантаження профілів",
+ "description": "Error-dialog title when loading profiles fails."
},
"profile.dropdown.activeProfile": {
- "message": "Активний профіль"
+ "message": "Активний профіль",
+ "description": "Section heading in the header profile dropdown for the current profile."
},
"profile.dropdown.switchProfile": {
- "message": "Змінити профіль"
+ "message": "Змінити профіль",
+ "description": "Section heading / action in the profile dropdown to switch profiles."
},
"profile.dropdown.noEmail": {
- "message": "Інше"
+ "message": "Інше",
+ "description": "Label shown for a profile that has no associated email address."
},
"profile.dropdown.addProfile": {
- "message": "Додати профіль"
+ "message": "Додати профіль",
+ "description": "Profile dropdown action to add a profile."
},
"profile.dropdown.manageProfiles": {
- "message": "Керування профілями"
+ "message": "Керування профілями",
+ "description": "Profile dropdown action that opens Settings → Profiles."
},
"profile.dropdown.settings": {
- "message": "Налаштування"
+ "message": "Налаштування",
+ "description": "Profile dropdown action that opens Settings."
},
"settings.profiles.section.profiles": {
- "message": "Профілі"
+ "message": "Профілі",
+ "description": "Section heading on the Profiles settings tab."
},
"settings.profiles.intro": {
- "message": "Використовуйте кілька профілів NetBird одночасно, наприклад, робочий та особистий облікові записи або різні сервери керування. Додавайте профілі, виходьте з них або видаляйте їх нижче."
+ "message": "Використовуйте кілька профілів NetBird одночасно, наприклад, робочий та особистий облікові записи або різні сервери керування. Додавайте профілі, виходьте з них або видаляйте їх нижче.",
+ "description": "Intro paragraph on the Profiles settings tab explaining what profiles are for."
},
"settings.profiles.addProfile": {
- "message": "Додати профіль"
+ "message": "Додати профіль",
+ "description": "Button on the Profiles settings tab to add a profile."
},
"settings.profiles.active": {
- "message": "Активний"
+ "message": "Активний",
+ "description": "Badge marking the currently active profile in the profiles table."
},
"settings.profiles.emptyTitle": {
- "message": "Немає профілів"
+ "message": "Немає профілів",
+ "description": "Title of the empty state when there are no profiles."
},
"settings.profiles.emptyDescription": {
- "message": "Створіть профіль, щоб підключитися до сервера керування NetBird."
+ "message": "Створіть профіль, щоб підключитися до сервера керування NetBird.",
+ "description": "Body of the no-profiles empty state."
},
"settings.error.loadTitle": {
- "message": "Помилка завантаження налаштувань"
+ "message": "Помилка завантаження налаштувань",
+ "description": "Error-dialog title when loading settings fails."
},
"settings.error.saveTitle": {
- "message": "Помилка збереження налаштувань"
+ "message": "Помилка збереження налаштувань",
+ "description": "Error-dialog title when saving settings fails."
},
"settings.error.debugBundleTitle": {
- "message": "Помилка створення архіву діагностики"
+ "message": "Помилка створення архіву діагностики",
+ "description": "Error-dialog title when creating the debug bundle fails."
},
"settings.nav.label": {
- "message": "Розділи налаштувань"
+ "message": "Розділи налаштувань",
+ "description": "Accessibility label for the Settings page's side navigation (list of section tabs)."
},
"settings.tabs.general": {
- "message": "Загальні"
+ "message": "Загальні",
+ "description": "Settings tab label: General. Keep short."
},
"settings.tabs.network": {
- "message": "Мережа"
+ "message": "Мережа",
+ "description": "Settings tab label: Network. Keep short."
},
"settings.tabs.security": {
- "message": "Безпека"
+ "message": "Безпека",
+ "description": "Settings tab label: Security. Keep short."
},
"settings.tabs.profiles": {
- "message": "Профілі"
+ "message": "Профілі",
+ "description": "Settings tab label: Profiles. Keep short."
},
"settings.tabs.ssh": {
- "message": "SSH"
+ "message": "SSH",
+ "description": "Settings tab label: SSH. Acronym — keep as-is."
},
"settings.tabs.advanced": {
- "message": "Розширені"
+ "message": "Розширені",
+ "description": "Settings tab label: Advanced. Keep short."
},
"settings.tabs.troubleshooting": {
- "message": "Діагностика"
+ "message": "Діагностика",
+ "description": "Settings tab label: Troubleshoot. Keep short."
},
"settings.tabs.about": {
- "message": "Про програму"
+ "message": "Про програму",
+ "description": "Settings tab label: About. Keep short."
},
"settings.tabs.updateAvailable": {
- "message": "Доступне оновлення"
+ "message": "Доступне оновлення",
+ "description": "Settings tab label / badge shown when an update is available."
},
"settings.general.section.general": {
- "message": "Загальні"
+ "message": "Загальні",
+ "description": "Section heading on the General settings tab."
},
"settings.general.section.connection": {
- "message": "Підключення"
+ "message": "Підключення",
+ "description": "Section heading for connection-related options on the General tab."
},
"settings.general.connectOnStartup.label": {
- "message": "Підключитися під час запуску"
+ "message": "Підключитися під час запуску",
+ "description": "Toggle label: connect automatically when the service starts."
},
"settings.general.connectOnStartup.help": {
- "message": "Автоматично встановлювати підключення під час запуску служби."
+ "message": "Автоматично встановлювати підключення під час запуску служби.",
+ "description": "Helper text for the connect-on-startup toggle."
},
"settings.general.notifications.label": {
- "message": "Сповіщення на робочому столі"
+ "message": "Сповіщення на робочому столі",
+ "description": "Toggle label: enable desktop notifications."
},
"settings.general.notifications.help": {
- "message": "Показувати сповіщення на робочому столі про нові оновлення та події підключення."
+ "message": "Показувати сповіщення на робочому столі про нові оновлення та події підключення.",
+ "description": "Helper text for the desktop-notifications toggle."
},
"settings.general.autostart.label": {
- "message": "Запускати інтерфейс NetBird під час входу"
+ "message": "Запускати інтерфейс NetBird під час входу",
+ "description": "Toggle label: launch the NetBird UI at login."
},
"settings.general.autostart.help": {
- "message": "Автоматично запускати інтерфейс NetBird під час входу в систему. Це стосується лише графічного інтерфейсу, а не фонової служби."
+ "message": "Автоматично запускати інтерфейс NetBird під час входу в систему. Це стосується лише графічного інтерфейсу, а не фонової служби.",
+ "description": "Helper text clarifying autostart affects only the UI, not the background service."
},
"settings.general.autostart.errorTitle": {
- "message": "Помилка зміни автозапуску"
+ "message": "Помилка зміни автозапуску",
+ "description": "Error-dialog title when changing the autostart setting fails."
},
"settings.general.keepConnectedOnQuit.label": {
- "message": "Залишатися підключеним після виходу"
+ "message": "Залишатися підключеним після виходу",
+ "description": "Toggle label: keep the VPN connection up after quitting the UI."
},
"settings.general.keepConnectedOnQuit.help": {
- "message": "Підключення залишатиметься активним у фоновому режимі після закриття NetBird. Воно буде розірвано лише тоді, коли ви відключите його самостійно."
+ "message": "Підключення залишатиметься активним у фоновому режимі після закриття NetBird. Воно буде розірвано лише тоді, коли ви відключите його самостійно.",
+ "description": "Helper text for the stay-connected-after-quitting toggle."
},
"settings.general.language.label": {
- "message": "Мова інтерфейсу"
+ "message": "Мова інтерфейсу",
+ "description": "Label for the display-language picker."
},
"settings.general.language.help": {
- "message": "Виберіть мову для інтерфейсу NetBird."
+ "message": "Виберіть мову для інтерфейсу NetBird.",
+ "description": "Helper text for the language picker."
},
"settings.general.language.search": {
- "message": "Пошук мови…"
+ "message": "Пошук мови…",
+ "description": "Placeholder in the language picker's search field."
},
"settings.general.language.empty": {
- "message": "Не знайдено жодної мови."
+ "message": "Не знайдено жодної мови.",
+ "description": "Shown when no languages match the search."
},
"settings.general.theme.label": {
- "message": "Тема"
+ "message": "Тема",
+ "description": "Label for the appearance/theme picker."
},
"settings.general.theme.help": {
- "message": "Виберіть світлу чи темну тему або використовуйте системні налаштування."
+ "message": "Виберіть світлу чи темну тему або використовуйте системні налаштування.",
+ "description": "Helper text for the theme picker."
},
"settings.general.theme.system": {
- "message": "Системна"
+ "message": "Системна",
+ "description": "Theme option: follow the OS appearance."
},
"settings.general.theme.light": {
- "message": "Світла"
+ "message": "Світла",
+ "description": "Theme option: light appearance."
},
"settings.general.theme.dark": {
- "message": "Темна"
+ "message": "Темна",
+ "description": "Theme option: dark appearance."
},
"settings.general.management.label": {
- "message": "Сервер керування"
+ "message": "Сервер керування",
+ "description": "Label for the management-server selector."
},
"settings.general.management.help": {
- "message": "Підключайтеся до NetBird Cloud або власного сервера керування. Зміни призведуть до перепідключення клієнта."
+ "message": "Підключайтеся до NetBird Cloud або власного сервера керування. Зміни призведуть до перепідключення клієнта.",
+ "description": "Helper text explaining Cloud vs self-hosted management server; warns that changes reconnect the client."
},
"settings.general.management.cloud": {
- "message": "Cloud"
+ "message": "Cloud",
+ "description": "Option label for using NetBird Cloud as the management server."
},
"settings.general.management.selfHosted": {
- "message": "Власний сервер"
+ "message": "Власний сервер",
+ "description": "Option label for using a self-hosted management server. 'Self-hosted' is a common technical term."
},
"settings.general.management.urlPlaceholder": {
- "message": "https://netbird.selfhosted.com:443"
+ "message": "https://netbird.selfhosted.com:443",
+ "description": "Example URL placeholder for the self-hosted server field. It is a sample URL — do not translate the URL itself."
},
"settings.general.management.urlError": {
- "message": "Будь ласка, введіть дійсну URL-адресу, наприклад: https://netbird.selfhosted.com:443"
+ "message": "Будь ласка, введіть дійсну URL-адресу, наприклад: https://netbird.selfhosted.com:443",
+ "description": "Validation message for an invalid management-server URL. The example URL stays as-is."
},
"settings.general.management.urlUnreachable": {
- "message": "Не вдалося підключитися до цього сервера. Перевірте URL-адресу або все одно збережіть зміни, якщо ви впевнені, що вона правильна."
+ "message": "Не вдалося підключитися до цього сервера. Перевірте URL-адресу або все одно збережіть зміни, якщо ви впевнені, що вона правильна.",
+ "description": "Soft warning when the management URL couldn't be reached; the user may save anyway."
},
"settings.general.management.switchCloudTitle": {
- "message": "Перемкнутися на NetBird Cloud?"
+ "message": "Перемкнутися на NetBird Cloud?",
+ "description": "Confirmation-dialog title for switching to NetBird Cloud."
},
"settings.general.management.switchCloudMessage": {
- "message": "Це відключить вас від власного сервера.\nВам може знадобитися увійти знову."
+ "message": "Це відключить вас від власного сервера.\nВам може знадобитися увійти знову.",
+ "description": "Confirmation body warning the self-hosted server will be disconnected. Contains a line break (\\n) — keep it."
},
"settings.general.management.switchCloudConfirm": {
- "message": "Перемкнутися на Cloud"
+ "message": "Перемкнутися на Cloud",
+ "description": "Confirm button for switching to Cloud. Keep short."
},
"settings.network.section.connectivity": {
- "message": "Підключення"
+ "message": "Підключення",
+ "description": "Section heading for connectivity options on the Network tab."
},
"settings.network.section.routingDns": {
- "message": "Маршрутизація та DNS"
+ "message": "Маршрутизація та DNS",
+ "description": "Section heading for routing and DNS options. 'DNS' is an acronym — keep it."
},
"settings.network.monitor.label": {
- "message": "Перепідключатися при зміні мережі"
+ "message": "Перепідключатися при зміні мережі",
+ "description": "Toggle label: reconnect automatically on network change."
},
"settings.network.monitor.help": {
- "message": "Відстежувати мережу й автоматично перепідключатися у разі таких змін, як перемикання Wi-Fi, зміна Ethernet-підключення або вихід із режиму сну."
+ "message": "Відстежувати мережу й автоматично перепідключатися у разі таких змін, як перемикання Wi-Fi, зміна Ethernet-підключення або вихід із режиму сну.",
+ "description": "Helper text for the network-change reconnect toggle."
},
"settings.network.dns.label": {
- "message": "Увімкнути DNS"
+ "message": "Увімкнути DNS",
+ "description": "Toggle label: enable DNS. 'DNS' — keep acronym."
},
"settings.network.dns.help": {
- "message": "Застосовувати налаштування DNS, якими керує NetBird, до локального DNS-розв’язувача хоста."
+ "message": "Застосовувати налаштування DNS, якими керує NetBird, до локального DNS-розв’язувача хоста.",
+ "description": "Helper text for the enable-DNS toggle."
},
"settings.network.clientRoutes.label": {
- "message": "Увімкнути клієнтські маршрути"
+ "message": "Увімкнути клієнтські маршрути",
+ "description": "Toggle label: enable client routes."
},
"settings.network.clientRoutes.help": {
- "message": "Приймати маршрути від інших пірів для доступу до їхніх мереж."
+ "message": "Приймати маршрути від інших пірів для доступу до їхніх мереж.",
+ "description": "Helper text for client routes (accept routes from other peers)."
},
"settings.network.serverRoutes.label": {
- "message": "Увімкнути серверні маршрути"
+ "message": "Увімкнути серверні маршрути",
+ "description": "Toggle label: enable server routes."
},
"settings.network.serverRoutes.help": {
- "message": "Анонсувати локальні маршрути цього хоста іншим пірам."
+ "message": "Анонсувати локальні маршрути цього хоста іншим пірам.",
+ "description": "Helper text for server routes (advertise this host's local routes to other peers)."
},
"settings.network.ipv6.label": {
- "message": "Увімкнути IPv6"
+ "message": "Увімкнути IPv6",
+ "description": "Toggle label: enable IPv6. 'IPv6' — keep as-is."
},
"settings.network.ipv6.help": {
- "message": "Використовувати адресацію IPv6 для оверлейної мережі NetBird."
+ "message": "Використовувати адресацію IPv6 для оверлейної мережі NetBird.",
+ "description": "Helper text for the IPv6 toggle."
},
"settings.security.section.firewall": {
- "message": "Брандмауер"
+ "message": "Брандмауер",
+ "description": "Section heading: Firewall."
},
"settings.security.section.encryption": {
- "message": "Шифрування"
+ "message": "Шифрування",
+ "description": "Section heading: Encryption."
},
"settings.security.blockInbound.label": {
- "message": "Блокувати вхідний трафік"
+ "message": "Блокувати вхідний трафік",
+ "description": "Toggle label: block inbound traffic."
},
"settings.security.blockInbound.help": {
- "message": "Відхиляти небажані підключення від пірів до цього пристрою та будь-яких мереж, які він маршрутизує. Вихідний трафік не обмежується."
+ "message": "Відхиляти небажані підключення від пірів до цього пристрою та будь-яких мереж, які він маршрутизує. Вихідний трафік не обмежується.",
+ "description": "Helper text for blocking inbound traffic."
},
"settings.security.blockLan.label": {
- "message": "Блокувати доступ до LAN"
+ "message": "Блокувати доступ до LAN",
+ "description": "Toggle label: block LAN access. 'LAN' — keep acronym."
},
"settings.security.blockLan.help": {
- "message": "Заборонити пірам отримувати доступ до вашої локальної мережі або її пристроїв, коли цей пристрій маршрутизує їхній трафік."
+ "message": "Заборонити пірам отримувати доступ до вашої локальної мережі або її пристроїв, коли цей пристрій маршрутизує їхній трафік.",
+ "description": "Helper text for blocking LAN access."
},
"settings.security.rosenpass.label": {
- "message": "Увімкнути постквантову стійкість"
+ "message": "Увімкнути постквантову стійкість",
+ "description": "Toggle label: enable quantum-resistance."
},
"settings.security.rosenpass.help": {
- "message": "Додати постквантовий обмін ключами через Rosenpass поверх WireGuard®."
+ "message": "Додати постквантовий обмін ключами через Rosenpass поверх WireGuard®.",
+ "description": "Helper text: adds a post-quantum key exchange via Rosenpass on top of WireGuard®. 'Rosenpass' and 'WireGuard®' are product names — do not translate; keep the ® symbol."
},
"settings.security.rosenpassPermissive.label": {
- "message": "Увімкнути дозвільний режим"
+ "message": "Увімкнути дозвільний режим",
+ "description": "Toggle label: enable permissive mode (for quantum-resistance)."
},
"settings.security.rosenpassPermissive.help": {
- "message": "Дозволити підключення до пірів без підтримки постквантової стійкості."
+ "message": "Дозволити підключення до пірів без підтримки постквантової стійкості.",
+ "description": "Helper text for permissive mode (allow peers without quantum-resistance support)."
},
"settings.ssh.section.server": {
- "message": "Сервер"
+ "message": "Сервер",
+ "description": "Section heading: Server (SSH settings)."
},
"settings.ssh.section.capabilities": {
- "message": "Можливості"
+ "message": "Можливості",
+ "description": "Section heading: Capabilities (SSH features)."
},
"settings.ssh.section.authentication": {
- "message": "Автентифікація"
+ "message": "Автентифікація",
+ "description": "Section heading: Authentication (SSH)."
},
"settings.ssh.server.label": {
- "message": "Увімкнути SSH-сервер"
+ "message": "Увімкнути SSH-сервер",
+ "description": "Toggle label: enable the SSH server."
},
"settings.ssh.server.help": {
- "message": "Запустити SSH-сервер NetBird на цьому хості, щоб інші піри могли підключатися до нього."
+ "message": "Запустити SSH-сервер NetBird на цьому хості, щоб інші піри могли підключатися до нього.",
+ "description": "Helper text for the SSH server toggle."
},
"settings.ssh.root.label": {
- "message": "Дозволити вхід як root"
+ "message": "Дозволити вхід як root",
+ "description": "Toggle label: allow root login over SSH. 'root' is the Unix superuser account — keep as-is."
},
"settings.ssh.root.help": {
- "message": "Дозволити пірам входити як користувач root. Вимкніть, щоб вимагати непривілейований обліковий запис."
+ "message": "Дозволити пірам входити як користувач root. Вимкніть, щоб вимагати непривілейований обліковий запис.",
+ "description": "Helper text for allowing root login."
},
"settings.ssh.sftp.label": {
- "message": "Дозволити SFTP"
+ "message": "Дозволити SFTP",
+ "description": "Toggle label: allow SFTP. 'SFTP' — keep acronym."
},
"settings.ssh.sftp.help": {
- "message": "Безпечно передавати файли за допомогою нативних клієнтів SFTP або SCP."
+ "message": "Безпечно передавати файли за допомогою нативних клієнтів SFTP або SCP.",
+ "description": "Helper text about SFTP/SCP file transfer. Keep the acronyms."
},
"settings.ssh.localForward.label": {
- "message": "Локальне переспрямування портів"
+ "message": "Локальне переспрямування портів",
+ "description": "Toggle label: local port forwarding."
},
"settings.ssh.localForward.help": {
- "message": "Дозволити пірам, що підключаються, переспрямовувати локальні порти до сервісів, доступних із цього хоста."
+ "message": "Дозволити пірам, що підключаються, переспрямовувати локальні порти до сервісів, доступних із цього хоста.",
+ "description": "Helper text for local port forwarding."
},
"settings.ssh.remoteForward.label": {
- "message": "Віддалене переспрямування портів"
+ "message": "Віддалене переспрямування портів",
+ "description": "Toggle label: remote port forwarding."
},
"settings.ssh.remoteForward.help": {
- "message": "Дозволити підключеним пірам відкривати порти на цьому хості з переспрямуванням на свої машини."
+ "message": "Дозволити підключеним пірам відкривати порти на цьому хості з переспрямуванням на свої машини.",
+ "description": "Helper text for remote port forwarding."
},
"settings.ssh.jwt.label": {
- "message": "Увімкнути JWT-автентифікацію"
+ "message": "Увімкнути JWT-автентифікацію",
+ "description": "Toggle label: enable JWT authentication. 'JWT' — keep acronym."
},
"settings.ssh.jwt.help": {
- "message": "Перевіряти кожен сеанс SSH через ваш IdP для ідентифікації користувачів та аудиту. Вимкніть, щоб покладатися лише на політики мережевих ACL, що корисно, коли IdP недоступний."
+ "message": "Перевіряти кожен сеанс SSH через ваш IdP для ідентифікації користувачів та аудиту. Вимкніть, щоб покладатися лише на політики мережевих ACL, що корисно, коли IdP недоступний.",
+ "description": "Helper text for JWT auth. 'IdP' (identity provider) and 'ACL' are acronyms — keep them."
},
"settings.ssh.jwtTtl.label": {
- "message": "Час кешування JWT (TTL)"
+ "message": "Час кешування JWT (TTL)",
+ "description": "Label for the JWT cache time-to-live field. 'JWT' and 'TTL' — keep acronyms."
},
"settings.ssh.jwtTtl.help": {
- "message": "Як довго цей клієнт кешує JWT перед повторним запитом для вихідних SSH-з’єднань. Встановіть 0, щоб вимкнути кешування та проходити автентифікацію при кожному підключенні."
+ "message": "Як довго цей клієнт кешує JWT перед повторним запитом для вихідних SSH-з’єднань. Встановіть 0, щоб вимкнути кешування та проходити автентифікацію при кожному підключенні.",
+ "description": "Helper text for the JWT cache TTL; mentions setting 0 to disable caching."
},
"settings.ssh.jwtTtl.suffix": {
- "message": "сек."
+ "message": "сек.",
+ "description": "Unit suffix shown after the JWT TTL number field. The '(s)' marks an optional plural."
},
"settings.advanced.section.interface": {
- "message": "Інтерфейс"
+ "message": "Інтерфейс",
+ "description": "Section heading: Interface (network-interface settings)."
},
"settings.advanced.section.security": {
- "message": "Безпека"
+ "message": "Безпека",
+ "description": "Section heading: Security (advanced)."
},
"settings.advanced.interfaceName.label": {
- "message": "Назва"
+ "message": "Назва",
+ "description": "Field label for the WireGuard interface name."
},
"settings.advanced.interfaceName.error": {
- "message": "Використовуйте 1-15 літер, цифр, крапок, дефісів або підкреслень."
+ "message": "Використовуйте 1-15 літер, цифр, крапок, дефісів або підкреслень.",
+ "description": "Validation message for the interface name (allowed characters)."
},
"settings.advanced.interfaceName.errorMac": {
- "message": "Повинно починатися з «utun», після якого має йти число (наприклад, utun100)."
+ "message": "Повинно починатися з «utun», після якого має йти число (наприклад, utun100).",
+ "description": "Validation message specific to macOS, where the name must start with 'utun' followed by a number. Keep 'utun' and the example."
},
"settings.advanced.port.label": {
- "message": "Порт"
+ "message": "Порт",
+ "description": "Field label: Port."
},
"settings.advanced.port.error": {
- "message": "Введіть порт між {min} та {max}."
+ "message": "Введіть порт між {min} та {max}.",
+ "description": "Validation message for the port range. {min} and {max} are numbers; keep them."
},
"settings.advanced.port.help": {
- "message": "Якщо встановлено 0, буде використано випадковий вільний порт."
+ "message": "Якщо встановлено 0, буде використано випадковий вільний порт.",
+ "description": "Helper text: 0 means a random free port is used."
},
"settings.advanced.mtu.label": {
- "message": "MTU"
+ "message": "MTU",
+ "description": "Field label: MTU. 'MTU' — keep acronym."
},
"settings.advanced.mtu.error": {
- "message": "Введіть значення MTU між {min} та {max}."
+ "message": "Введіть значення MTU між {min} та {max}.",
+ "description": "Validation message for the MTU range. {min} and {max} are numbers; keep them."
},
"settings.advanced.psk.label": {
- "message": "Попередньо узгоджений ключ"
+ "message": "Попередньо узгоджений ключ",
+ "description": "Field label: Pre-shared Key."
},
"settings.advanced.psk.help": {
- "message": "Додатковий PSK WireGuard для симетричного шифрування. Це не те саме, що NetBird Setup Key. Ви зможете обмінюватися даними лише з тими пірами, які використовують такий самий попередньо узгоджений ключ."
+ "message": "Додатковий PSK WireGuard для симетричного шифрування. Це не те саме, що NetBird Setup Key. Ви зможете обмінюватися даними лише з тими пірами, які використовують такий самий попередньо узгоджений ключ.",
+ "description": "Helper text for the WireGuard PSK. 'WireGuard', 'PSK', and 'NetBird Setup Key' are product/technical terms — keep them."
},
"settings.troubleshooting.section.title": {
- "message": "Архів діагностики"
+ "message": "Архів діагностики",
+ "description": "Section heading: Debug bundle."
},
"settings.troubleshooting.anonymize.label": {
- "message": "Анонімізувати чутливу інформацію"
+ "message": "Анонімізувати чутливу інформацію",
+ "description": "Label for the anonymization level dropdown (None, Default, Strict)."
},
"settings.troubleshooting.anonymize.help": {
- "message": "Приховує IP-адреси, домени та інші конфіденційні дані."
+ "message": "Приховує IP-адреси, домени та інші конфіденційні дані.",
+ "description": "Helper text under the anonymization dropdown. The level details live in the info tooltip."
},
"settings.troubleshooting.anonymize.info": {
- "message": "«Стандартний» залишає внутрішні адреси IPv4 та імена пірів читабельними для служби підтримки. «Суворий» додатково анонімізує приватні (RFC 1918), CGNAT- та link-local-адреси, імена пірів і публічні ключі WireGuard. Однакові значення замінюються тим самим псевдонімом, тож піри залишаються розрізнюваними. Використовуйте «Суворий», якщо ділитеся архівом за межами організації."
+ "message": "«Стандартний» залишає внутрішні адреси IPv4 та імена пірів читабельними для служби підтримки. «Суворий» додатково анонімізує приватні (RFC 1918), CGNAT- та link-local-адреси, імена пірів і публічні ключі WireGuard. Однакові значення замінюються тим самим псевдонімом, тож піри залишаються розрізнюваними. Використовуйте «Суворий», якщо ділитеся архівом за межами організації.",
+ "description": "Info tooltip explaining the anonymization levels. 'RFC 1918', 'CGNAT', 'link-local', and 'WireGuard' are technical terms — keep them."
},
"settings.troubleshooting.anonymize.none": {
- "message": "Вимкнено"
+ "message": "Вимкнено",
+ "description": "Dropdown option: no anonymization."
},
"settings.troubleshooting.anonymize.default": {
- "message": "Стандартний"
+ "message": "Стандартний",
+ "description": "Dropdown option: default anonymization level."
},
"settings.troubleshooting.anonymize.strict": {
- "message": "Суворий"
+ "message": "Суворий",
+ "description": "Dropdown option: strict anonymization level."
},
"settings.troubleshooting.systemInfo.label": {
- "message": "Додати інформацію про систему"
+ "message": "Додати інформацію про систему",
+ "description": "Toggle label: include system information in the bundle."
},
"settings.troubleshooting.systemInfo.help": {
- "message": "Додати дані про ОС, ядро, мережеві інтерфейси та таблиці маршрутизації."
+ "message": "Додати дані про ОС, ядро, мережеві інтерфейси та таблиці маршрутизації.",
+ "description": "Helper text listing the system info included (OS, kernel, interfaces, routing tables)."
},
"settings.troubleshooting.upload.label": {
- "message": "Завантажити архів на сервери NetBird"
+ "message": "Завантажити архів на сервери NetBird",
+ "description": "Toggle label: upload the bundle to NetBird servers."
},
"settings.troubleshooting.upload.help": {
- "message": "Створює ключ завантаження, який можна передати службі підтримки NetBird."
+ "message": "Створює ключ завантаження, який можна передати службі підтримки NetBird.",
+ "description": "Helper text for uploading the bundle."
},
"settings.troubleshooting.trace.label": {
- "message": "Увімкнути журнали рівня TRACE"
+ "message": "Увімкнути журнали рівня TRACE",
+ "description": "Toggle label: raise daemon log level to TRACE while the bundle is built. 'TRACE' is a log level."
},
"settings.troubleshooting.trace.help": {
- "message": "Підвищує рівень журналювання до TRACE на час створення архіву та відновлює його після завершення."
+ "message": "Підвищує рівень журналювання до TRACE на час створення архіву та відновлює його після завершення.",
+ "description": "Helper text for the trace toggle. 'TRACE' is a log level — keep as-is."
},
"settings.troubleshooting.capture.label": {
- "message": "Запис сеансу"
+ "message": "Запис сеансу",
+ "description": "Toggle label: open a capture session — reconnect NetBird, wait a duration, optionally record packets."
},
"settings.troubleshooting.capture.help": {
- "message": "Перепідключає NetBird і чекає, щоб ви могли відтворити проблему."
+ "message": "Перепідключає NetBird і чекає, щоб ви могли відтворити проблему.",
+ "description": "Helper text for the master Capture Session toggle."
},
"settings.troubleshooting.packets.label": {
- "message": "Захоплювати мережеві пакети"
+ "message": "Захоплювати мережеві пакети",
+ "description": "Toggle label: capture packets to a .pcap during the capture session."
},
"settings.troubleshooting.packets.help": {
- "message": "Зберігає файл .pcap із мережевим трафіком протягом сеансу захоплення."
+ "message": "Зберігає файл .pcap із мережевим трафіком протягом сеансу захоплення.",
+ "description": "Helper text for the packet recording toggle. '.pcap' is a file extension — keep it."
},
"settings.troubleshooting.duration.label": {
- "message": "Тривалість захоплення"
+ "message": "Тривалість захоплення",
+ "description": "Label for the trace-capture duration field."
},
"settings.troubleshooting.duration.help": {
- "message": "Скільки часу триває сеанс захоплення."
+ "message": "Скільки часу триває сеанс захоплення.",
+ "description": "Helper text for the capture duration."
},
"settings.troubleshooting.duration.suffix": {
- "message": "хв."
+ "message": "хв.",
+ "description": "Unit suffix after the duration field. The '(s)' marks an optional plural."
},
"settings.troubleshooting.create": {
- "message": "Створити архів"
+ "message": "Створити архів",
+ "description": "Button to create the debug bundle. Keep short."
},
"settings.troubleshooting.progress.description": {
- "message": "Збір журналів, даних про систему та інформації про стан підключення. Зазвичай це займає хвилину. Ви можете продовжувати використовувати NetBird або закрити вікно налаштувань, поки процес триває."
+ "message": "Збір журналів, даних про систему та інформації про стан підключення. Зазвичай це займає хвилину. Ви можете продовжувати використовувати NetBird або закрити вікно налаштувань, поки процес триває.",
+ "description": "Status text shown while the debug bundle is being collected; reassures the user they can keep using NetBird or close Settings meanwhile."
},
"settings.troubleshooting.cancelling": {
- "message": "Скасування…"
+ "message": "Скасування…",
+ "description": "Status shown while cancelling bundle creation. Ends with an ellipsis."
},
"settings.troubleshooting.done.uploadedTitle": {
- "message": "Архів діагностики успішно завантажено!"
+ "message": "Архів діагностики успішно завантажено!",
+ "description": "Success title after the bundle was uploaded."
},
"settings.troubleshooting.done.savedTitle": {
- "message": "Архів збережено"
+ "message": "Архів збережено",
+ "description": "Title shown when the bundle was saved locally (not uploaded)."
},
"settings.troubleshooting.done.uploadedDescription": {
- "message": "Поділіться ключем завантаження нижче зі службою підтримки NetBird. Локальну копію також збережено на вашому пристрої."
+ "message": "Поділіться ключем завантаження нижче зі службою підтримки NetBird. Локальну копію також збережено на вашому пристрої.",
+ "description": "Body after upload, telling the user to share the upload key with support. '…' wraps the inline link to the NetBird support docs — keep the tags exactly and wrap the phrase that means 'NetBird support'."
},
"settings.troubleshooting.done.savedDescription": {
- "message": "Ваш архів діагностики збережено локально."
+ "message": "Ваш архів діагностики збережено локально.",
+ "description": "Body shown when the bundle was only saved locally."
},
"settings.troubleshooting.done.copyKey": {
- "message": "Копіювати ключ"
+ "message": "Копіювати ключ",
+ "description": "Button to copy the upload key. Keep short."
},
"settings.troubleshooting.done.openFolder": {
- "message": "Відкрити папку"
+ "message": "Відкрити папку",
+ "description": "Button to open the folder containing the bundle. Keep short."
},
"settings.troubleshooting.done.openFileLocation": {
- "message": "Відкрити розташування файлу"
+ "message": "Відкрити розташування файлу",
+ "description": "Button to reveal the bundle file in the OS file manager."
},
"settings.troubleshooting.uploadFailedWithReason": {
- "message": "Помилка завантаження: {reason} Архів все одно збережено локально"
+ "message": "Помилка завантаження: {reason} Архів все одно збережено локально",
+ "description": "Shown when upload failed but the bundle was saved locally. {reason} is the server error text; keep it."
},
"settings.troubleshooting.uploadFailed": {
- "message": "Помилка завантаження. Архів все одно збережено локально."
+ "message": "Помилка завантаження. Архів все одно збережено локально.",
+ "description": "Shown when upload failed (no specific reason) but the bundle was saved locally."
},
"settings.troubleshooting.stage.reconnecting": {
- "message": "Перепідключення NetBird…"
+ "message": "Перепідключення NetBird…",
+ "description": "Progress stage: reconnecting NetBird. Ends with an ellipsis."
},
"settings.troubleshooting.stage.capturing": {
- "message": "Запис журналів діагностики"
+ "message": "Запис журналів діагностики",
+ "description": "Progress stage: capturing logs. {elapsed} and {total} are time values (e.g. 0:30 / 2:00); keep both."
},
"settings.troubleshooting.stage.bundling": {
- "message": "Створення архіву діагностики…"
+ "message": "Створення архіву діагностики…",
+ "description": "Progress stage: generating the debug bundle. Ends with an ellipsis."
},
"settings.troubleshooting.stage.uploading": {
- "message": "Завантаження на сервери NetBird…"
+ "message": "Завантаження на сервери NetBird…",
+ "description": "Progress stage: uploading to NetBird. Ends with an ellipsis."
},
"settings.troubleshooting.stage.cancelling": {
- "message": "Скасування…"
+ "message": "Скасування…",
+ "description": "Progress stage: cancelling. Ends with an ellipsis."
},
"settings.about.client": {
- "message": "NetBird Client v{version}"
+ "message": "NetBird Client v{version}",
+ "description": "About tab: client product name and version. {version} is a version number; keep it. 'NetBird Client' — keep brand."
},
"settings.about.clientName": {
- "message": "NetBird Client"
+ "message": "NetBird Client",
+ "description": "About tab: the client product name shown when no version is available. Brand — do not translate."
},
"settings.about.development": {
- "message": "[Розробка]"
+ "message": "[Розробка]",
+ "description": "Badge shown next to the version on development builds. Keep the square brackets."
},
"settings.about.gui": {
- "message": "Графічний інтерфейс v{version}"
+ "message": "Графічний інтерфейс v{version}",
+ "description": "About tab: UI component name and version. {version} is a version number; keep it. 'GUI' = the graphical app."
},
"settings.about.guiName": {
- "message": "Графічний інтерфейс"
+ "message": "Графічний інтерфейс",
+ "description": "About tab: the UI component name shown without a version. 'GUI' = the graphical app."
},
"settings.about.copyright": {
- "message": "© {year} NetBird. Усі права захищено."
+ "message": "© {year} NetBird. Усі права захищено.",
+ "description": "Copyright line. {year} is the current year; keep it. 'NetBird' — brand."
},
"settings.about.links.imprint": {
- "message": "Реквізити"
+ "message": "Реквізити",
+ "description": "Footer link: Imprint (legal notice / Impressum)."
},
"settings.about.links.privacy": {
- "message": "Конфіденційність"
+ "message": "Конфіденційність",
+ "description": "Footer link: Privacy policy."
},
"settings.about.links.cla": {
- "message": "CLA"
+ "message": "CLA",
+ "description": "Footer link: CLA (Contributor License Agreement). Acronym — keep as-is."
},
"settings.about.links.terms": {
- "message": "Умови використання"
+ "message": "Умови використання",
+ "description": "Footer link: Terms of Service."
},
"settings.about.community.github": {
- "message": "GitHub"
+ "message": "GitHub",
+ "description": "Community link: GitHub. Brand — do not translate."
},
"settings.about.community.slack": {
- "message": "Slack"
+ "message": "Slack",
+ "description": "Community link: Slack. Brand — do not translate."
},
"settings.about.community.forum": {
- "message": "Форум"
+ "message": "Форум",
+ "description": "Community link: Forum."
},
"settings.about.community.documentation": {
- "message": "Документація"
+ "message": "Документація",
+ "description": "Community link: Documentation."
},
"settings.about.community.feedback": {
- "message": "Зворотний зв’язок"
+ "message": "Зворотний зв’язок",
+ "description": "Community link: Feedback."
},
"update.banner.message": {
- "message": "NetBird {version} готовий до встановлення."
+ "message": "NetBird {version} готовий до встановлення.",
+ "description": "Update banner text when a new version is ready to install. {version} is the version number; keep it."
},
"update.banner.later": {
- "message": "Пізніше"
+ "message": "Пізніше",
+ "description": "Banner button to postpone the update. Keep short."
},
"update.banner.installNow": {
- "message": "Встановити зараз"
+ "message": "Встановити зараз",
+ "description": "Banner button to install the update now. Keep short."
},
"update.card.versionAvailableDownload": {
- "message": "Версія {version} доступна для завантаження."
+ "message": "Версія {version} доступна для завантаження.",
+ "description": "Update card text when a version is available to download. {version} is the version number; keep it."
},
"update.card.versionAvailableInstall": {
- "message": "Версія {version} доступна для встановлення."
+ "message": "Версія {version} доступна для встановлення.",
+ "description": "Update card text when a version is available to install. {version} is the version number; keep it."
},
"update.card.whatsNew": {
- "message": "Що нового?"
+ "message": "Що нового?",
+ "description": "Link / label that opens the release notes."
},
"update.card.installNow": {
- "message": "Встановити зараз"
+ "message": "Встановити зараз",
+ "description": "Update card button: install now. Keep short."
},
"update.card.getInstaller": {
- "message": "Завантажити"
+ "message": "Завантажити",
+ "description": "Update card button: download the installer."
},
"update.card.autoCheckInterval": {
- "message": "NetBird перевіряє наявність оновлень у фоновому режимі."
+ "message": "NetBird перевіряє наявність оновлень у фоновому режимі.",
+ "description": "Note that NetBird checks for updates in the background."
},
"update.card.changelog": {
- "message": "Список змін"
+ "message": "Список змін",
+ "description": "Link / label: Changelog."
},
"update.card.onLatestVersion": {
- "message": "Ви використовуєте останню версію"
+ "message": "Ви використовуєте останню версію",
+ "description": "Shown when the client is already up to date."
},
"update.header.tooltip": {
- "message": "Доступне оновлення"
+ "message": "Доступне оновлення",
+ "description": "Tooltip on the header update badge."
},
"update.overlay.updatingVersion": {
- "message": "Оновлення NetBird до v{version}"
+ "message": "Оновлення NetBird до v{version}",
+ "description": "Heading in the install-progress window while updating to a specific version. {version} is the version number; keep it. The 'v' prefix is part of the version display."
},
"update.overlay.updating": {
- "message": "Оновлення NetBird"
+ "message": "Оновлення NetBird",
+ "description": "Heading in the install-progress window while updating when the target version isn't known."
},
"update.overlay.description": {
- "message": "Доступна новіша версія, яка зараз встановлюється. NetBird автоматично перезапуститься після завершення оновлення."
+ "message": "Доступна новіша версія, яка зараз встановлюється. NetBird автоматично перезапуститься після завершення оновлення.",
+ "description": "Install-progress window body explaining NetBird will restart automatically after the update."
},
"update.overlay.error.timeoutTitle": {
- "message": "Оновлення триває занадто довго"
+ "message": "Оновлення триває занадто довго",
+ "description": "Install-progress window error title: the update took too long."
},
"update.overlay.error.timeoutDescription": {
- "message": "Встановлення {target} тривало занадто довго і не завершилося."
+ "message": "Встановлення {target} тривало занадто довго і не завершилося.",
+ "description": "Install-progress window error body for a timeout. {target} is the target-version label (see update.overlay.error.targetVersion / targetFallback); keep it."
},
"update.overlay.error.canceledTitle": {
- "message": "Оновлення зупинено"
+ "message": "Оновлення зупинено",
+ "description": "Install-progress window error title: the update was stopped / canceled."
},
"update.overlay.error.canceledDescription": {
- "message": "Оновлення до {target} було скасовано до його завершення."
+ "message": "Оновлення до {target} було скасовано до його завершення.",
+ "description": "Install-progress window error body for a canceled update. {target} is the target-version label; keep it."
},
"update.overlay.error.failTitle": {
- "message": "Не вдалося встановити оновлення"
+ "message": "Не вдалося встановити оновлення",
+ "description": "Install-progress window error title: the update couldn't be installed."
},
"update.overlay.error.failDescription": {
- "message": "Не вдалося встановити оновлення до {target}."
+ "message": "Не вдалося встановити оновлення до {target}.",
+ "description": "Install-progress window error body for a failed install. {target} is the target-version label; keep it."
},
"update.overlay.error.unknownMessage": {
- "message": "Невідома помилка"
+ "message": "Невідома помилка",
+ "description": "Fallback text for an unspecified error, used inside other messages."
},
"update.overlay.error.targetVersion": {
- "message": "v{version}"
+ "message": "v{version}",
+ "description": "The target-version label substituted into {target}. {version} is a number; keep the 'v' prefix."
},
"update.overlay.error.targetFallback": {
- "message": "нової версії"
+ "message": "нової версії",
+ "description": "Fallback target label used when the version isn't known, substituted into {target}."
},
"update.error.loadStateTitle": {
- "message": "Помилка завантаження стану оновлення"
+ "message": "Помилка завантаження стану оновлення",
+ "description": "Error-dialog title when loading update state fails."
},
"update.error.triggerTitle": {
- "message": "Помилка запуску оновлення"
+ "message": "Помилка запуску оновлення",
+ "description": "Error-dialog title when starting the update fails."
},
"update.page.versionLine": {
- "message": "Оновлення клієнта до версії {version}."
+ "message": "Оновлення клієнта до версії {version}.",
+ "description": "Install-progress window text naming the target version. {version} is the version number; keep it."
},
"update.page.versionLineGeneric": {
- "message": "Оновлення клієнта."
+ "message": "Оновлення клієнта.",
+ "description": "Install-progress text used when the target version isn't known."
},
"update.page.outdated": {
- "message": "Ваша версія клієнта старіша за версію для автооновлення, задану в Management."
+ "message": "Ваша версія клієнта старіша за версію для автооновлення, задану в Management.",
+ "description": "Note that the client is older than the auto-update version set in Management. 'Management' = the NetBird management server / console."
},
"update.page.status.running": {
- "message": "Оновлення"
+ "message": "Оновлення",
+ "description": "Install status: updating."
},
"update.page.status.timeout": {
- "message": "Час очікування оновлення минув. Будь ласка, спробуйте ще раз."
+ "message": "Час очікування оновлення минув. Будь ласка, спробуйте ще раз.",
+ "description": "Install status: timed out; asks the user to retry."
},
"update.page.status.canceled": {
- "message": "Оновлення скасовано."
+ "message": "Оновлення скасовано.",
+ "description": "Install status: canceled."
},
"update.page.status.failed": {
- "message": "Помилка оновлення: {message}"
+ "message": "Помилка оновлення: {message}",
+ "description": "Install status: failed. {message} is the error detail; keep it."
},
"update.page.status.unknownError": {
- "message": "невідома помилка оновлення"
+ "message": "невідома помилка оновлення",
+ "description": "Fallback text for an unknown update error, used inside update.page.status.failed."
},
"update.page.failedTitle": {
- "message": "Помилка оновлення"
+ "message": "Помилка оновлення",
+ "description": "Heading shown when the install failed."
},
"update.page.timeoutMessage": {
- "message": "Час очікування оновлення минув."
+ "message": "Час очікування оновлення минув.",
+ "description": "Message shown when the install timed out."
},
"update.page.dontClose": {
- "message": "Будь ласка, не закривайте це вікно."
+ "message": "Будь ласка, не закривайте це вікно.",
+ "description": "Warning asking the user not to close the install window."
},
"update.page.updating": {
- "message": "Оновлення…"
+ "message": "Оновлення…",
+ "description": "Short status: updating. Ends with an ellipsis."
},
"update.page.complete": {
- "message": "Оновлення завершено"
+ "message": "Оновлення завершено",
+ "description": "Short status: update complete."
},
"update.page.failed": {
- "message": "Помилка оновлення"
+ "message": "Помилка оновлення",
+ "description": "Short status: update failed."
},
"window.title.settings": {
- "message": "Налаштування"
+ "message": "Налаштування",
+ "description": "OS window-chrome title for the Settings window. The app prefixes it with 'NetBird - '."
},
"window.title.signIn": {
- "message": "Вхід"
+ "message": "Вхід",
+ "description": "OS window-chrome title for the sign-in window."
},
"window.title.sessionExpiration": {
- "message": "Термін дії сеансу закінчується"
+ "message": "Термін дії сеансу закінчується",
+ "description": "OS window-chrome title for the session-expiration window."
},
"window.title.updating": {
- "message": "Оновлення"
+ "message": "Оновлення",
+ "description": "OS window-chrome title for the update / install window."
},
"window.title.welcome": {
- "message": "Ласкаво просимо до NetBird"
+ "message": "Ласкаво просимо до NetBird",
+ "description": "OS window-chrome title for the first-launch welcome window. 'NetBird' — brand."
},
"window.title.error": {
- "message": "Помилка"
+ "message": "Помилка",
+ "description": "OS window-chrome title for the error window."
},
"welcome.title": {
- "message": "Знайдіть NetBird в області сповіщень"
+ "message": "Знайдіть NetBird в області сповіщень",
+ "description": "Heading on the first onboarding step, pointing the user to the tray icon. Shown on Windows and Linux; macOS uses welcome.titleMac."
},
"welcome.titleMac": {
- "message": "Знайдіть NetBird у рядку меню"
+ "message": "Знайдіть NetBird у рядку меню",
+ "description": "Heading on the first onboarding step on macOS, pointing the user to the menu bar icon. Use your language's Apple term for the macOS menu bar."
},
"welcome.description": {
- "message": "NetBird працює в області сповіщень. Натисніть на іконку, щоб підключитися, змінити профіль або відкрити налаштування."
+ "message": "NetBird працює в області сповіщень. Натисніть на іконку, щоб підключитися, змінити профіль або відкрити налаштування.",
+ "description": "Body of the first onboarding step explaining the tray icon. Shown on Windows and Linux; macOS uses welcome.descriptionMac."
},
"welcome.descriptionMac": {
- "message": "NetBird працює в рядку меню. Натисніть на іконку, щоб підключитися, змінити профіль або відкрити налаштування."
+ "message": "NetBird працює в рядку меню. Натисніть на іконку, щоб підключитися, змінити профіль або відкрити налаштування.",
+ "description": "Body of the first onboarding step on macOS explaining the menu bar icon. Use your language's Apple term for the macOS menu bar."
},
"welcome.continue": {
- "message": "Продовжити"
+ "message": "Продовжити",
+ "description": "Primary button to advance the onboarding. Keep short."
},
"welcome.back": {
- "message": "Назад"
+ "message": "Назад",
+ "description": "Button to go back a step in onboarding. Keep short."
},
"welcome.management.title": {
- "message": "Налаштування NetBird"
+ "message": "Налаштування NetBird",
+ "description": "Heading on the onboarding step for choosing a management server."
},
"welcome.management.description": {
- "message": "Натисніть «Продовжити», щоб розпочати, або виберіть Власний сервер, якщо у вас є власний сервер NetBird."
+ "message": "Натисніть «Продовжити», щоб розпочати, або виберіть Власний сервер, якщо у вас є власний сервер NetBird.",
+ "description": "Body of the management step; mentions choosing Self-hosted if the user runs their own server."
},
"welcome.management.cloud.title": {
- "message": "NetBird Cloud"
+ "message": "NetBird Cloud",
+ "description": "Option title: NetBird Cloud. Brand — do not translate 'NetBird Cloud'."
},
"welcome.management.cloud.description": {
- "message": "Використовуйте наш хмарний сервіс. Налаштування не потрібне."
+ "message": "Використовуйте наш хмарний сервіс. Налаштування не потрібне.",
+ "description": "Option body for NetBird Cloud (hosted service, no setup required)."
},
"welcome.management.selfHosted.title": {
- "message": "Власний сервер"
+ "message": "Власний сервер",
+ "description": "Option title: Self-hosted."
},
"welcome.management.selfHosted.description": {
- "message": "Підключіться до власного сервера керування."
+ "message": "Підключіться до власного сервера керування.",
+ "description": "Option body for connecting to your own management server."
},
"welcome.management.urlLabel": {
- "message": "URL-адреса сервера керування"
+ "message": "URL-адреса сервера керування",
+ "description": "Field label for the management-server URL."
},
"welcome.management.urlPlaceholder": {
- "message": "https://netbird.selfhosted.com:443"
+ "message": "https://netbird.selfhosted.com:443",
+ "description": "Example URL placeholder. Sample URL — do not translate it."
},
"welcome.management.urlInvalid": {
- "message": "Будь ласка, введіть дійсну URL-адресу, наприклад: https://netbird.selfhosted.com:443"
+ "message": "Будь ласка, введіть дійсну URL-адресу, наприклад: https://netbird.selfhosted.com:443",
+ "description": "Validation message for an invalid URL. The example URL stays as-is."
},
"welcome.management.urlUnreachable": {
- "message": "Не вдалося підключитися до цього сервера. Перевірте URL-адресу або вашу мережу, а потім продовжуйте, якщо ви впевнені, що вона правильна."
+ "message": "Не вдалося підключитися до цього сервера. Перевірте URL-адресу або вашу мережу, а потім продовжуйте, якщо ви впевнені, що вона правильна.",
+ "description": "Soft warning when the server couldn't be reached during onboarding; the user may continue anyway."
},
"welcome.management.checking": {
- "message": "Перевірка…"
+ "message": "Перевірка…",
+ "description": "Status shown while checking the server URL. Ends with an ellipsis."
},
"browserLogin.title": {
- "message": "Завершіть вхід у браузері"
+ "message": "Завершіть вхід у браузері",
+ "description": "Heading telling the user to finish signing in via their browser."
},
"browserLogin.notSeeing": {
- "message": "Ми відкрили вкладку браузера, щоб ви могли завершити вхід. Не бачите її?"
+ "message": "Ми відкрили вкладку браузера, щоб ви могли завершити вхід. Не бачите її?",
+ "description": "Prompt asking whether the user doesn't see the opened browser tab."
},
"browserLogin.tryAgain": {
- "message": "Спробувати ще раз"
+ "message": "Спробувати ще раз",
+ "description": "Button to re-open the browser sign-in page. Keep short."
},
"browserLogin.openFailedTitle": {
- "message": "Помилка відкриття браузера"
+ "message": "Помилка відкриття браузера",
+ "description": "Error-dialog title when the browser couldn't be opened."
},
"sessionExpiration.title": {
- "message": "Термін дії сеансу невдовзі закінчиться"
+ "message": "Термін дії сеансу невдовзі закінчиться",
+ "description": "Heading warning the session will expire soon."
},
"sessionExpiration.titleLater": {
- "message": "Термін дії вашого сеансу закінчиться"
+ "message": "Термін дії вашого сеансу закінчиться",
+ "description": "Alternate, less-urgent heading: the session will expire."
},
"sessionExpiration.description": {
- "message": "Цей пристрій невдовзі буде відключено. Поновіть сеанс, увійшовши через браузер."
+ "message": "Цей пристрій невдовзі буде відключено. Поновіть сеанс, увійшовши через браузер.",
+ "description": "Body warning the device will disconnect soon; renew via a browser sign-in."
},
"sessionExpiration.descriptionLater": {
- "message": "Вхід через браузер підтримує підключення цього пристрою до вашої мережі."
+ "message": "Вхід через браузер підтримує підключення цього пристрою до вашої мережі.",
+ "description": "Body for the less-urgent variant; a browser sign-in keeps the device connected."
},
"sessionExpiration.stay": {
- "message": "Продовжити сеанс"
+ "message": "Продовжити сеанс",
+ "description": "Button to renew the session (keep connected). Keep short."
},
"sessionExpiration.authenticate": {
- "message": "Увійти"
+ "message": "Увійти",
+ "description": "Button to authenticate / sign in. Keep short."
},
"sessionExpiration.logout": {
- "message": "Вийти"
+ "message": "Вийти",
+ "description": "Button to log out. Keep short."
},
"sessionExpiration.expired": {
- "message": "Термін дії сеансу закінчився"
+ "message": "Термін дії сеансу закінчився",
+ "description": "Heading shown once the session has actually expired."
},
"sessionExpiration.expiredDescription": {
- "message": "Пристрій відключено. Пройдіть автентифікацію у браузері, щоб перепідключитися."
+ "message": "Пристрій відключено. Пройдіть автентифікацію у браузері, щоб перепідключитися.",
+ "description": "Body shown after expiry; authenticate via a browser sign-in to reconnect."
},
"sessionExpiration.close": {
- "message": "Закрити"
+ "message": "Закрити",
+ "description": "Close button on the session window. Keep short."
},
"sessionExpiration.extendFailedTitle": {
- "message": "Помилка продовження сеансу"
+ "message": "Помилка продовження сеансу",
+ "description": "Error-dialog title when extending the session fails."
},
"sessionExpiration.logoutFailedTitle": {
- "message": "Помилка виходу"
+ "message": "Помилка виходу",
+ "description": "Error-dialog title when logging out fails."
},
"peers.search.placeholder": {
- "message": "Пошук за ім’ям або IP"
+ "message": "Пошук за ім’ям або IP",
+ "description": "Placeholder in the peers search field."
},
"peers.filter.all": {
- "message": "Усі"
+ "message": "Усі",
+ "description": "Peers filter option: All. Keep short."
},
"peers.filter.online": {
- "message": "Онлайн"
+ "message": "Онлайн",
+ "description": "Peers filter option: Online. Keep short."
},
"peers.filter.offline": {
- "message": "Офлайн"
+ "message": "Офлайн",
+ "description": "Peers filter option: Offline. Keep short."
},
"peers.empty.title": {
- "message": "Немає доступних пірів"
+ "message": "Немає доступних пірів",
+ "description": "Title of the empty state when no peers are available."
},
"peers.empty.description": {
- "message": "У вас немає доступних пірів або доступу до жодного з них."
+ "message": "У вас немає доступних пірів або доступу до жодного з них.",
+ "description": "Body of the no-peers empty state."
},
"peers.details.domain": {
- "message": "Домен"
+ "message": "Домен",
+ "description": "Peer detail label: Domain."
},
"peers.details.netbirdIp": {
- "message": "NetBird IP"
+ "message": "NetBird IP",
+ "description": "Peer detail label: NetBird IP address. 'NetBird' — brand; 'IP' — keep acronym."
},
"peers.details.netbirdIpv6": {
- "message": "NetBird IPv6"
+ "message": "NetBird IPv6",
+ "description": "Peer detail label: NetBird IPv6 address. Keep 'NetBird' and 'IPv6'."
},
"peers.details.publicKey": {
- "message": "Публічний ключ"
+ "message": "Публічний ключ",
+ "description": "Peer detail label: WireGuard public key."
},
"peers.details.connection": {
- "message": "Підключення"
+ "message": "Підключення",
+ "description": "Peer detail label: Connection."
},
"peers.details.latency": {
- "message": "Затримка"
+ "message": "Затримка",
+ "description": "Peer detail label: Latency."
},
"peers.details.lastHandshake": {
- "message": "Останнє рукостискання"
+ "message": "Останнє рукостискання",
+ "description": "Peer detail label: time of the last WireGuard handshake."
},
"peers.details.statusSince": {
- "message": "Останнє оновлення підключення"
+ "message": "Останнє оновлення підключення",
+ "description": "Peer detail label: time since the last connection-status update."
},
"peers.details.bytes": {
- "message": "Байти"
+ "message": "Байти",
+ "description": "Peer detail label: Bytes (data transferred)."
},
"peers.details.bytesSent": {
- "message": "Надіслано"
+ "message": "Надіслано",
+ "description": "Peer detail label: bytes sent."
},
"peers.details.bytesReceived": {
- "message": "Отримано"
+ "message": "Отримано",
+ "description": "Peer detail label: bytes received."
},
"peers.details.localIce": {
- "message": "Локальний ICE"
+ "message": "Локальний ICE",
+ "description": "Peer detail label: local ICE candidate. 'ICE' — keep acronym."
},
"peers.details.remoteIce": {
- "message": "Віддалений ICE"
+ "message": "Віддалений ICE",
+ "description": "Peer detail label: remote ICE candidate. 'ICE' — keep acronym."
},
"peers.details.never": {
- "message": "Ніколи"
+ "message": "Ніколи",
+ "description": "Value shown when an event has never happened (e.g. last handshake = Never)."
},
"peers.details.justNow": {
- "message": "Щойно"
+ "message": "Щойно",
+ "description": "Relative-time value meaning a moment ago."
},
"peers.details.refresh": {
- "message": "Оновити"
+ "message": "Оновити",
+ "description": "Button to refresh peer details. Keep short."
},
"peers.status.connected": {
- "message": "Підключено"
+ "message": "Підключено",
+ "description": "Peer status: connected."
},
"peers.status.connecting": {
- "message": "Підключення"
+ "message": "Підключення",
+ "description": "Peer status: connecting."
},
"peers.status.disconnected": {
- "message": "Відключено"
+ "message": "Відключено",
+ "description": "Peer status: disconnected."
},
"peers.details.relayAddress": {
- "message": "Ретранслятор"
+ "message": "Ретранслятор",
+ "description": "Peer detail label: Relay (relay-server address)."
},
"peers.details.networks": {
- "message": "Ресурси"
+ "message": "Ресурси",
+ "description": "Peer detail label for the peer's network resources. Labelled 'Resources' in the UI."
},
"peers.details.relayed": {
- "message": "Через ретранслятор"
+ "message": "Через ретранслятор",
+ "description": "Connection-type value: the connection is relayed (not direct). Technical term."
},
"peers.details.p2p": {
- "message": "P2P"
+ "message": "P2P",
+ "description": "Connection-type value: peer-to-peer (direct). 'P2P' — keep as-is."
},
"peers.details.rosenpass": {
- "message": "Rosenpass увімкнено"
+ "message": "Rosenpass увімкнено",
+ "description": "Peer detail indicating Rosenpass (quantum-resistance) is enabled. 'Rosenpass' — product name, do not translate."
},
"networks.search.placeholder": {
- "message": "Пошук за мережею або доменом"
+ "message": "Пошук за мережею або доменом",
+ "description": "Placeholder in the resources search field."
},
"networks.filter.all": {
- "message": "Усі"
+ "message": "Усі",
+ "description": "Resources filter: All. Keep short."
},
"networks.filter.active": {
- "message": "Активні"
+ "message": "Активні",
+ "description": "Resources filter: Active. Keep short."
},
"networks.filter.overlapping": {
- "message": "Перетинаються"
+ "message": "Перетинаються",
+ "description": "Resources filter: Overlapping (overlapping IP ranges). Keep short."
},
"networks.empty.title": {
- "message": "Немає доступних ресурсів"
+ "message": "Немає доступних ресурсів",
+ "description": "Title of the empty state when no resources are available."
},
"networks.empty.description": {
- "message": "У вас немає доступних мережевих ресурсів або доступу до жодного з них."
+ "message": "У вас немає доступних мережевих ресурсів або доступу до жодного з них.",
+ "description": "Body of the no-resources empty state."
},
"networks.selected": {
- "message": "Вибрано"
+ "message": "Вибрано",
+ "description": "Label / badge: the resource is selected (enabled)."
},
"networks.unselected": {
- "message": "Не вибрано"
+ "message": "Не вибрано",
+ "description": "Label / badge: the resource is not selected."
},
"networks.ips.heading": {
- "message": "Визначені IP-адреси"
+ "message": "Визначені IP-адреси",
+ "description": "Heading for the list of a resource's resolved IP addresses."
},
"networks.bulk.selectionCount": {
- "message": "Активні: {selected} з {total}"
+ "message": "Активні: {selected} з {total}",
+ "description": "Header showing how many resources are active. {selected} and {total} are numbers; keep both."
},
"networks.bulk.enableAll": {
- "message": "Увімкнути всі"
+ "message": "Увімкнути всі",
+ "description": "Button to enable all resources. Keep short."
},
"networks.bulk.disableAll": {
- "message": "Вимкнути всі"
+ "message": "Вимкнути всі",
+ "description": "Button to disable all resources. Keep short."
},
"exitNodes.search.placeholder": {
- "message": "Пошук вихідних вузлів"
+ "message": "Пошук вихідних вузлів",
+ "description": "Placeholder in the exit-nodes search field."
},
"exitNodes.none": {
- "message": "Немає"
+ "message": "Немає",
+ "description": "Option meaning no exit node. Keep short."
},
"exitNodes.empty.title": {
- "message": "Немає доступних вихідних вузлів"
+ "message": "Немає доступних вихідних вузлів",
+ "description": "Title of the empty state when no exit nodes are available."
},
"exitNodes.empty.description": {
- "message": "Цьому піру не надано жодного вихідного вузла."
+ "message": "Цьому піру не надано жодного вихідного вузла.",
+ "description": "Body of the no-exit-nodes empty state."
},
"exitNodes.card.title": {
- "message": "Вихідний вузол"
+ "message": "Вихідний вузол",
+ "description": "Card heading: Exit Node."
},
"exitNodes.card.statusActive": {
- "message": "Активний"
+ "message": "Активний",
+ "description": "Exit node card status: Active."
},
"exitNodes.card.statusInactive": {
- "message": "Неактивний"
+ "message": "Неактивний",
+ "description": "Exit node card status: Inactive."
},
"exitNodes.dropdown.noneTitle": {
- "message": "Немає"
+ "message": "Немає",
+ "description": "Dropdown option title: None (no exit node)."
},
"exitNodes.dropdown.noneDescription": {
- "message": "Пряме підключення без вихідного вузла"
+ "message": "Пряме підключення без вихідного вузла",
+ "description": "Dropdown option body for None: direct connection without an exit node."
},
"quickActions.connect": {
- "message": "Підключитися"
+ "message": "Підключитися",
+ "description": "Quick-action button: Connect. Keep short."
},
"quickActions.disconnect": {
- "message": "Відключитися"
+ "message": "Відключитися",
+ "description": "Quick-action button: Disconnect. Keep short."
},
"daemon.unavailable.title": {
- "message": "Служба NetBird не запущена"
+ "message": "Служба NetBird не запущена",
+ "description": "Title of the overlay shown when the NetBird background service isn't running."
},
"daemon.unavailable.description": {
- "message": "Програма перепідключиться автоматично, щойно служба запрацює."
+ "message": "Програма перепідключиться автоматично, щойно служба запрацює.",
+ "description": "Body reassuring the user the app will reconnect once the service is running."
},
"daemon.unavailable.docsLink": {
- "message": "Документація"
+ "message": "Документація",
+ "description": "Documentation link on the daemon-unavailable overlay."
},
"daemon.outdated.title": {
- "message": "Клієнт NetBird застарів"
+ "message": "Клієнт NetBird застарів",
+ "description": "Title of the overlay shown when the NetBird client (daemon) is too old to drive this UI."
},
"daemon.outdated.description": {
- "message": "Новий графічний інтерфейс несумісний зі старою версією клієнта NetBird. Оновіть клієнт, щоб використовувати нову програму."
+ "message": "Новий графічний інтерфейс несумісний зі старою версією клієнта NetBird. Оновіть клієнт, щоб використовувати нову програму.",
+ "description": "Body of the daemon-outdated overlay explaining that the GUI is newer than the client and the client must be updated."
},
"daemon.outdated.download": {
- "message": "Завантажити останню версію"
+ "message": "Завантажити останню версію",
+ "description": "Button on the daemon-outdated overlay that opens the download page for the latest release."
},
"error.jwt_clock_skew": {
- "message": "Помилка входу: годинник цього пристрою не синхронізовано із сервером. Будь ласка, синхронізуйте системний годинник і спробуйте знову."
+ "message": "Помилка входу: годинник цього пристрою не синхронізовано із сервером. Будь ласка, синхронізуйте системний годинник і спробуйте знову.",
+ "description": "Sign-in error shown to the user: the device clock is out of sync with the server."
},
"error.jwt_expired": {
- "message": "Термін дії вашого токена входу закінчився. Будь ласка, увійдіть знову."
+ "message": "Термін дії вашого токена входу закінчився. Будь ласка, увійдіть знову.",
+ "description": "Sign-in error: the sign-in token expired; sign in again."
},
"error.jwt_signature_invalid": {
- "message": "Помилка входу: недійсний підпис токена. Будь ласка, зверніться до адміністратора."
+ "message": "Помилка входу: недійсний підпис токена. Будь ласка, зверніться до адміністратора.",
+ "description": "Sign-in error: the token signature is invalid; contact the administrator."
},
"error.session_expired": {
- "message": "Термін дії вашого сеансу закінчився. Будь ласка, увійдіть знову."
+ "message": "Термін дії вашого сеансу закінчився. Будь ласка, увійдіть знову.",
+ "description": "Error: the session expired; sign in again."
},
"error.invalid_setup_key": {
- "message": "Setup Key відсутній або недійсний."
+ "message": "Setup Key відсутній або недійсний.",
+ "description": "Error: the setup key is missing or invalid. 'setup key' is a NetBird term."
},
"error.permission_denied": {
- "message": "Вхід відхилено сервером."
+ "message": "Вхід відхилено сервером.",
+ "description": "Error: the server rejected the sign-in."
},
"error.daemon_unreachable": {
- "message": "Служба NetBird не відповідає. Будь ласка, перевірте, чи запущена служба."
+ "message": "Служба NetBird не відповідає. Будь ласка, перевірте, чи запущена служба.",
+ "description": "Error: the NetBird background service isn't responding. 'daemon' = the background service."
},
"error.settings_locked": {
- "message": "Налаштування на цьому пристрої змінити неможливо: адміністратор їх заблокував."
+ "message": "Налаштування на цьому пристрої змінити неможливо: адміністратор їх заблокував.",
+ "description": "Error: the local daemon was started with update-settings disabled, so it refuses configuration changes."
},
"error.settings_managed_by_mdm": {
- "message": "Це налаштування керується вашою організацією і не може бути змінене."
+ "message": "Це налаштування керується вашою організацією і не може бути змінене.",
+ "description": "Error: the setting is enforced by an MDM policy. 'MDM' = mobile device management, the organization's device-management system."
},
"error.unknown": {
- "message": "Помилка операції."
+ "message": "Помилка операції.",
+ "description": "Generic fallback error message used when no specific error applies."
},
"error.elevation_unavailable": {
- "message": "NetBird не зміг запросити в системи привілеї, необхідні для внесення змін. Замість цього виконайте:"
+ "message": "NetBird не зміг запросити в системи привілеї, необхідні для внесення змін. Замість цього виконайте:",
+ "description": "Error: this computer has no way to prompt for elevated privileges. Followed by a copyable command that applies the setting from a terminal."
},
"error.elevation_failed": {
- "message": "Не вдалося застосувати зміни з підвищеними привілеями. Замість цього виконайте:"
+ "message": "Не вдалося застосувати зміни з підвищеними привілеями. Замість цього виконайте:",
+ "description": "Error: the authorization succeeded but applying the setting afterwards failed. Followed by a copyable command that applies the setting from a terminal."
},
"settings.ssh.privilege.actorRoot": {
- "message": "прав root"
+ "message": "прав root",
+ "description": "Fills {actor} in the settings.ssh.privilege.* messages on Linux, macOS and BSD, where the daemon requires the root account. 'root' is an account name and stays as it is; add the word for privileges or rights around it if the sentence needs one to read naturally."
},
"settings.ssh.privilege.actorAdministrator": {
- "message": "прав адміністратора"
+ "message": "прав адміністратора",
+ "description": "Fills {actor} in the settings.ssh.privilege.* messages on Windows, where the daemon requires an elevated administrator. The Windows term for the rights an account is asked to elevate to."
},
"settings.ssh.privilege.hint": {
- "message": "Потребує {actor}. Замість цього виконайте:"
+ "message": "Потребує {actor}. Замість цього виконайте:",
+ "description": "Help text under an SSH setting the user cannot change: it needs elevated privileges. {actor} is 'root' on Linux/macOS or 'administrator privileges' on Windows. Followed by a copyable command."
},
"settings.ssh.privilege.oneWay": {
- "message": "Ви можете вимкнути це, але щоб увімкнути знову, знадобиться {actor}:"
+ "message": "Ви можете вимкнути це, але щоб увімкнути знову, знадобиться {actor}:",
+ "description": "Help text under an SSH setting that is already on: an unprivileged user may switch it off freely, and switching it on again is what needs the privileges. No command follows, since the direction they can take is theirs to take. {actor} is 'root' on Linux/macOS or 'administrator privileges' on Windows."
},
"settings.ssh.privilege.oneWayInverted": {
- "message": "Ви можете увімкнути це, але щоб вимкнути знову, знадобиться {actor}:"
+ "message": "Ви можете увімкнути це, але щоб вимкнути знову, знадобиться {actor}:",
+ "description": "Same as settings.ssh.privilege.oneWay, for the SSH authentication setting once it has been switched off: switching it off again is what needs the privileges."
},
"settings.ssh.privilege.authorizePending": {
- "message": "Очікування авторизації…"
+ "message": "Очікування авторизації…",
+ "description": "Replaces the help text under a guarded SSH setting while the authorization prompt is open, which can take a few seconds to appear. Keep the trailing ellipsis."
}
}