Unify remote address resolution so startup logging, primary remote URL selection, and /api/meta all consume the same server-side policy. Keep all external addresses user-visible, preserve stable interface ordering, and only de-prioritize link-local addresses when choosing the primary recommended remote URL. On the UI side, introduce a shared helper that keeps the first remote address visible by default and collapses the remaining addresses behind a reveal action, with i18n coverage and targeted tests for the new selection behavior.
54 lines
4.9 KiB
TypeScript
54 lines
4.9 KiB
TypeScript
export const remoteAccessMessages = {
|
||
"remoteAccess.eyebrow": "Удаленная передача управления",
|
||
"remoteAccess.title": "Подключитесь к CodeNomad удаленно",
|
||
"remoteAccess.subtitle": "Используйте адреса ниже, чтобы открыть CodeNomad с другого устройства.",
|
||
"remoteAccess.close": "Закрыть удаленный доступ",
|
||
"remoteAccess.refresh": "Обновить",
|
||
|
||
"remoteAccess.sections.listeningMode.label": "Режим прослушивания",
|
||
"remoteAccess.sections.listeningMode.help": "Разрешайте или ограничивайте удаленную передачу управления, привязываясь ко всем интерфейсам или только к localhost.",
|
||
"remoteAccess.toggle.on": "Вкл",
|
||
"remoteAccess.toggle.off": "Выкл",
|
||
"remoteAccess.toggle.title": "Разрешить подключения с других IP",
|
||
"remoteAccess.toggle.caption.all": "Привязка к 0.0.0.0",
|
||
"remoteAccess.toggle.caption.local": "Привязка к 127.0.0.1",
|
||
"remoteAccess.toggle.note": "Изменение требует перезапуска и временно остановит все активные экземпляры. Поделитесь адресами ниже после перезапуска сервера.",
|
||
"remoteAccess.listeningMode.restartConfirm.message": "Перезапустить, чтобы применить режим прослушивания? Это остановит все запущенные экземпляры.",
|
||
"remoteAccess.listeningMode.restartConfirm.title.all": "Открыть для других устройств",
|
||
"remoteAccess.listeningMode.restartConfirm.title.local": "Ограничить этим устройством",
|
||
"remoteAccess.listeningMode.restartConfirm.confirmLabel": "Перезапустить сейчас",
|
||
"remoteAccess.listeningMode.restartConfirm.cancelLabel": "Отмена",
|
||
"remoteAccess.restart.errorManual": "Не удалось перезапустить автоматически. Перезапустите приложение, чтобы применить изменение.",
|
||
|
||
"remoteAccess.sections.serverPassword.label": "Пароль сервера",
|
||
"remoteAccess.sections.serverPassword.help": "Для удаленной передачи управления требуется пароль. Установите запоминающийся пароль, чтобы разрешить вход с других устройств.",
|
||
"remoteAccess.authStatus.unavailable": "Статус аутентификации недоступен.",
|
||
"remoteAccess.username": "Имя пользователя: {username}",
|
||
"remoteAccess.password.status.set": "Для удаленного доступа установлен пароль.",
|
||
"remoteAccess.password.status.unset": "Пока не установлен запоминающийся пароль. Установите его, чтобы разрешить вход при удаленной передаче управления.",
|
||
"remoteAccess.password.actions.cancel": "Отмена",
|
||
"remoteAccess.password.actions.change": "Изменить пароль",
|
||
"remoteAccess.password.actions.set": "Установить пароль",
|
||
"remoteAccess.password.form.newPassword": "Новый пароль",
|
||
"remoteAccess.password.form.confirmPassword": "Подтвердите пароль",
|
||
"remoteAccess.password.form.placeholder": "Не менее 8 символов",
|
||
"remoteAccess.password.error.tooShort": "Пароль должен быть не короче 8 символов.",
|
||
"remoteAccess.password.error.mismatch": "Пароли не совпадают.",
|
||
"remoteAccess.password.save.saving": "Сохранение…",
|
||
"remoteAccess.password.save.label": "Сохранить пароль",
|
||
|
||
"remoteAccess.sections.addresses.label": "Доступные адреса",
|
||
"remoteAccess.sections.addresses.help": "Откройте или отсканируйте с другой машины, чтобы передать управление.",
|
||
"remoteAccess.addresses.loading": "Загрузка адресов…",
|
||
"remoteAccess.addresses.none": "Пока нет доступных адресов.",
|
||
"remoteAccess.addresses.actions.showOther": "Показать еще {count} адресов",
|
||
"remoteAccess.addresses.actions.hideOther": "Скрыть остальные адреса",
|
||
"remoteAccess.address.scope.network": "Сеть",
|
||
"remoteAccess.address.scope.loopback": "Loopback",
|
||
"remoteAccess.address.scope.internal": "Внутренний",
|
||
"remoteAccess.address.open": "Открыть",
|
||
"remoteAccess.address.showQr": "Показать QR",
|
||
"remoteAccess.address.hideQr": "Скрыть QR",
|
||
"remoteAccess.address.qrAlt": "QR для {url}",
|
||
} as const
|