export type Locale = 'en' | 'ru'; export declare const DEFAULT_LOCALE: Locale; declare const TRANSLATIONS: { readonly 'language.prompt': { readonly en: "Language:"; readonly ru: "Language:"; }; readonly 'language.option.en': { readonly en: "English"; readonly ru: "English"; }; readonly 'language.option.ru': { readonly en: "Russian"; readonly ru: "Russian"; }; readonly 'locale.invalidEnv': { readonly en: "TRUECONF_SETUP_LOCALE must be 'en' or 'ru', got: {{value}}"; readonly ru: "TRUECONF_SETUP_LOCALE должно быть 'en' или 'ru', получено: {{value}}"; }; readonly 'tls.untrusted.title': { readonly en: "Untrusted TLS certificate"; readonly ru: "Недоверенный TLS-сертификат"; }; readonly 'tls.untrusted.choice.use-file': { readonly en: "Specify path to a root CA certificate"; readonly ru: "Указать путь к корневому сертификату (CA)"; }; readonly 'tls.untrusted.choice.insecure': { readonly en: "Disable TLS certificate verification for this TrueConf Server"; readonly ru: "Отключить проверку TLS-сертификата для этого TrueConf Server"; }; readonly 'tls.cafile.hint.intro': { readonly en: "Specify the path to a root CA certificate in PEM format."; readonly ru: "Укажите путь к корневому сертификату CA в PEM-формате."; }; readonly 'tls.cafile.hint.format': { readonly en: "On TrueConf Server the certificate is usually stored as *.crt. If the file is in PEM format you can rename it to *.pem."; readonly ru: "На TrueConf Server сертификат обычно лежит как *.crt. Если файл в формате PEM, его можно переименовать в *.pem."; }; readonly 'tls.cafile.hint.location': { readonly en: "If you own the server, find the certificate in the TrueConf Server control panel under HTTPS."; readonly ru: "Если вы владелец сервера, ищите сертификат в панели управления TrueConf Server в разделе HTTPS."; }; readonly 'tls.cafile.unreadable': { readonly en: "Cannot read CA file at {{path}}: {{reason}}"; readonly ru: "Не могу прочитать файл CA по пути {{path}}: {{reason}}"; }; readonly 'tls.cafile.envUnreadable': { readonly en: "TRUECONF_CA_PATH={{path}}: cannot read ({{reason}})"; readonly ru: "TRUECONF_CA_PATH={{path}}: не могу прочитать ({{reason}})"; }; readonly 'tls.cafile.envNotPem': { readonly en: "TRUECONF_CA_PATH={{path}}: not PEM. DER/P7B not supported — convert: openssl x509 -in file -inform DER -out file.pem"; readonly ru: "TRUECONF_CA_PATH={{path}}: не PEM. DER/P7B не поддерживаются — конвертируй: openssl x509 -in file -inform DER -out file.pem"; }; readonly 'tls.cafile.envUnreachable': { readonly en: "TRUECONF_CA_PATH={{path}}: cannot reach {{host}}:{{port}} — {{error}}. CA cannot be checked while the server is unreachable."; readonly ru: "TRUECONF_CA_PATH={{path}}: не могу подключиться к {{host}}:{{port}} — {{error}}. CA не проверить пока сервер недоступен."; }; readonly 'tls.cafile.envWrongCa': { readonly en: "TRUECONF_CA_PATH={{path}}: file does not validate this server. Trust anchor in file: {{fileIssuer}}; server presents cert issued by {{serverIssuer}}. TLS error: {{error}}"; readonly ru: "TRUECONF_CA_PATH={{path}}: файл не валидирует этот сервер. Trust anchor в файле: {{fileIssuer}}; сервер отдаёт cert с издателем {{serverIssuer}}. TLS error: {{error}}"; }; readonly 'tls.insecure.warning': { readonly en: "The connection to TrueConf will be established without TLS certificate verification. This may enable a MITM attack. Use this mode only in a safe or restricted environment; verification stays on for the rest of Node.js."; readonly ru: "Соединение с TrueConf будет установлено без проверки TLS-сертификата. Это может позволить MITM-атаку. Используйте этот режим только в безопасной или ограниченной среде; для остального Node.js проверка остаётся включённой."; }; readonly 'tls.insecure.confirm': { readonly en: "Disable TLS certificate verification?"; readonly ru: "Отключить проверку TLS-сертификата?"; }; readonly 'tls.insecure.invalidEnv': { readonly en: "TRUECONF_TLS_VERIFY must be 'false' or unset, got: {{value}}"; readonly ru: "TRUECONF_TLS_VERIFY должно быть 'false' или не задано, получено: {{value}}"; }; readonly 'tls.insecure.conflict': { readonly en: "TRUECONF_CA_PATH and TRUECONF_TLS_VERIFY=false are incompatible — pick one trust mode."; readonly ru: "TRUECONF_CA_PATH и TRUECONF_TLS_VERIFY=false несовместимы — выберите один режим доверия."; }; readonly 'tls.insecure.useTlsConflict': { readonly en: "TRUECONF_USE_TLS=false and TRUECONF_TLS_VERIFY=false are incompatible — TLS verification cannot be disabled when TLS is off."; readonly ru: "TRUECONF_USE_TLS=false и TRUECONF_TLS_VERIFY=false несовместимы — нельзя отключать проверку TLS-сертификата, если TLS отключён."; }; readonly 'cafile.prompt': { readonly en: "Path to certificate file (PEM):"; readonly ru: "Путь к файлу сертификата (PEM):"; }; readonly 'cafile.title': { readonly en: "CA file input"; readonly ru: "CA file input"; }; readonly 'cafile.notPem': { readonly en: "File is not PEM. DER/P7B not supported — convert: openssl x509 -in cert.der -inform DER -out cert.pem"; readonly ru: "Файл не PEM. DER/P7B не поддерживаются — конвертируй: openssl x509 -in cert.der -inform DER -out cert.pem"; }; readonly 'cafile.unreachable': { readonly en: "Cannot reach {{host}}:{{port}} — {{error}}.\nCA file cannot be checked while server is unreachable. Check network/DNS/firewall and retry."; readonly ru: "Не могу подключиться к {{host}}:{{port}} — {{error}}.\nCA-файл не проверить пока сервер недоступен. Проверь сеть/DNS/firewall и повтори."; }; readonly 'cafile.chainMismatch': { readonly en: "File does not validate this server:\n Trust anchor in file: {{fileIssuer}} (fingerprint {{fileFp}})\n Server signed by: {{serverIssuer}} (fingerprint {{serverFp}})\n Possible: wrong file / wrong server / incomplete chain.\n TLS stack: {{error}}"; readonly ru: "Файл не валидирует этот сервер:\n Trust anchor в файле: {{fileIssuer}} (отпечаток {{fileFp}})\n Сервер подписан: {{serverIssuer}} (отпечаток {{serverFp}})\n Возможно: не тот файл / не тот сервер / chain не полный.\n TLS-стек: {{error}}"; }; readonly 'rotation.title': { readonly en: "Cert rotation detected"; readonly ru: "Обнаружена ротация cert"; }; readonly 'rotation.body': { readonly en: "⚠⚠ Server certificate CHANGED between banner display and download\n\nIn banner:\n {{expectedSubject}} / fingerprint {{expectedFp}}\n\nDownloaded:\n {{gotSubject}} / fingerprint {{gotFp}}\n\nEither a planned rotation by the server during setup, or active MITM.\nVerify the new fingerprint with the admin via a separate channel before accepting."; readonly ru: "⚠⚠ Сертификат сервера ИЗМЕНИЛСЯ между показом баннера и скачиванием\n\nВ баннере был:\n {{expectedSubject}} / отпечаток {{expectedFp}}\n\nСкачан:\n {{gotSubject}} / отпечаток {{gotFp}}\n\nЛибо плановая ротация сервером в момент setup, либо active MITM.\nСверь новый отпечаток с админом по отдельному каналу перед принятием."; }; readonly 'rotation.confirm': { readonly en: "Pin the just-downloaded cert anyway?"; readonly ru: "Всё равно закрепить только что скачанный cert?"; }; readonly 'select.whatToDo': { readonly en: "What to do?"; readonly ru: "Что делать?"; }; readonly 'select.option.abort': { readonly en: "Cancel and investigate (safe)"; readonly ru: "Отменить и разобраться (безопасно)"; }; readonly 'select.option.reTofu': { readonly en: "Re-download the chain (re-TOFU)"; readonly ru: "Скачать цепочку заново (re-TOFU)"; }; readonly 'select.option.useFile': { readonly en: "Specify a new path to the CA file"; readonly ru: "Указать новый путь к файлу"; }; readonly 'select.option.acceptNew': { readonly en: "Accept the new cert and overwrite the chain"; readonly ru: "Принять новый сертификат и перезаписать цепочку"; }; readonly 'select.option.useFileFromAdmin': { readonly en: "Use a file from the admin — I will provide the path"; readonly ru: "Использовать файл от админа — укажу путь"; }; readonly 'select.option.abortSetup': { readonly en: "Cancel setup"; readonly ru: "Отменить настройку"; }; readonly 'probe.detecting': { readonly en: "Detecting TLS/port..."; readonly ru: "Определяю TLS/порт..."; }; readonly 'probe.title': { readonly en: "Server check"; readonly ru: "Проверка сервера"; }; readonly 'probe.skipped': { readonly en: "Probe could not detect TLS/port ({{error}}).\nTrying HTTPS on port 443 — if that fails, OAuth will return the exact reason."; readonly ru: "Probe не смог определить TLS/порт ({{error}}).\nПробую HTTPS на порту 443 — если не сработает, OAuth вернёт точную причину."; }; readonly 'probe.skippedTitle': { readonly en: "Probe skipped"; readonly ru: "Probe пропущен"; }; readonly 'oauth.invalidPassword': { readonly en: "Invalid password ({{attempt}}/3)"; readonly ru: "Неверный пароль ({{attempt}}/3)"; }; readonly 'oauth.title': { readonly en: "OAuth"; readonly ru: "OAuth"; }; readonly 'oauth.passwordRetry': { readonly en: "Enter password again"; readonly ru: "Введите пароль ещё раз"; }; readonly 'oauth.error': { readonly en: "OAuth error: {{error}}"; readonly ru: "OAuth error: {{error}}"; }; readonly 'oauth.errorTitle': { readonly en: "Error"; readonly ru: "Ошибка"; }; readonly 'connected.body': { readonly en: "Connected as {{username}}"; readonly ru: "Подключено как {{username}}"; }; readonly 'connected.title': { readonly en: "TrueConf ready"; readonly ru: "TrueConf ready"; }; readonly 'tls.banner.cert.subjectLine': { readonly en: " Subject: {{value}}"; readonly ru: " Владелец: {{value}}"; }; readonly 'tls.banner.cert.issuerLine': { readonly en: " Issuer: {{value}}"; readonly ru: " Издатель: {{value}}"; }; readonly 'tls.banner.cert.validityLine': { readonly en: " Valid: from {{from}} to {{to}}"; readonly ru: " Действителен: с {{from}} до {{to}}"; }; readonly 'tls.banner.cert.fingerprintLine': { readonly en: " Fingerprint: SHA-256 {{fp}}"; readonly ru: " Отпечаток: SHA-256 {{fp}}"; }; readonly 'tls.banner.cert.expired': { readonly en: "EXPIRED"; readonly ru: "ПРОСРОЧЕН"; }; readonly 'tls.banner.cert.noServerCert': { readonly en: " (server returned no cert)"; readonly ru: " (сервер не отдал cert)"; }; readonly 'tls.banner.untrusted.title': { readonly en: "Confirm TrueConf cert"; readonly ru: "Подтверждение cert TrueConf"; }; readonly 'tls.banner.untrusted.body': { readonly en: "⚠ TLS certificate not in the system trust store"; readonly ru: "⚠ Сертификат TLS не в системном хранилище доверенных"; }; readonly 'tls.banner.untrusted.selfSigned': { readonly en: " (self-signed — typical for dev / test servers)"; readonly ru: " (самоподписан — типично для dev/тестовых серверов)"; }; readonly 'tls.banner.untrusted.verifyAdmin': { readonly en: " Verify the fingerprint with the server admin out of band\n (messenger, phone), then choose an action."; readonly ru: " Сверьте отпечаток с админом сервера по отдельному каналу\n (мессенджер, телефон), затем выберите действие."; }; readonly 'tls.banner.mismatch.title': { readonly en: "Trust anchor mismatch"; readonly ru: "Trust anchor mismatch"; }; readonly 'tls.banner.mismatch.body': { readonly en: "⚠⚠ WARNING: stored trust anchor no longer validates the server"; readonly ru: "⚠⚠ ВНИМАНИЕ: сохранённый trust anchor больше не валидирует сервер"; }; readonly 'tls.banner.mismatch.storedAnchor': { readonly en: "Stored trust anchor (file: {{caPath}}):"; readonly ru: "Сохранённый trust anchor (файл: {{caPath}}):"; }; readonly 'tls.banner.mismatch.storedParseFail': { readonly en: " (could not parse stored chain)"; readonly ru: " (не удалось распарсить сохранённую цепочку)"; }; readonly 'tls.banner.mismatch.serverNow': { readonly en: "Server signed now (leaf):"; readonly ru: "Сервер, подписанный сейчас (leaf):"; }; readonly 'tls.banner.mismatch.tlsStack': { readonly en: "TLS stack: {{error}}"; readonly ru: "TLS-стек: {{error}}"; }; readonly 'tls.banner.mismatch.chainBroken': { readonly en: "(trust chain from current cert to the stored anchor does not build)"; readonly ru: "(цепочка доверия от текущего cert'а к сохранённому anchor'у не собирается)"; }; readonly 'tls.banner.mismatch.causes': { readonly en: "Possible causes:\n • internal server CA rotated — ask the admin;\n • man-in-the-middle attack — verify the new fingerprint\n with the admin out of band before accepting."; readonly ru: "Возможные причины:\n • смена internal CA сервера — уточни у админа;\n • атака «человек посередине» — сверь новый отпечаток\n с админом по отдельному каналу перед принятием."; }; readonly 'tls.banner.missing.title': { readonly en: "Missing trust anchor"; readonly ru: "Missing trust anchor"; }; readonly 'tls.banner.missing.body': { readonly en: "⚠ Stored trust-anchor file not found / not readable"; readonly ru: "⚠ Файл сохранённого trust anchor'а не найден/не читается"; }; readonly 'tls.banner.missing.expected': { readonly en: "Expected: {{caPath}}"; readonly ru: "Ожидалось: {{caPath}}"; }; readonly 'tls.banner.missing.status': { readonly en: "Status: {{reason}}"; readonly ru: "Статус: {{reason}}"; }; readonly 'tls.banner.missing.serverNow': { readonly en: "Server is currently presenting an untrusted certificate:"; readonly ru: "Сервер сейчас отдаёт untrusted сертификат:"; }; readonly 'tls.banner.missing.causes': { readonly en: "Possible causes:\n • file deleted by you or the admin (planned cleanup);\n • file deleted by an attacker to force re-TOFU\n onto a (possibly) substituted cert;\n • permission errors after cleanup / upgrade."; readonly ru: "Возможные причины:\n • файл удалён вами или админом (плановая очистка);\n • файл удалён злоумышленником чтобы форсировать re-TOFU\n на (возможно) подменённый cert;\n • permission errors после cleanup / upgrade."; }; readonly 'tls.banner.missing.verifyAdmin': { readonly en: "Verify the fingerprint with the admin BEFORE re-TOFU."; readonly ru: "Сверьте отпечаток сервера с админом ДО re-TOFU."; }; readonly 'tls.banner.missing.reasonAbsent': { readonly en: "file is missing"; readonly ru: "файл отсутствует"; }; readonly 'tls.banner.missing.reasonReadErr': { readonly en: "read error: {{message}}"; readonly ru: "ошибка чтения: {{message}}"; }; readonly 'trust.review.keepTitle': { readonly en: "Current TLS / certificate setup"; readonly ru: "Текущая настройка TLS / сертификата"; }; readonly 'trust.review.currentCaFile': { readonly en: "Verification by CA file: {{path}}"; readonly ru: "Проверка по CA-файлу: {{path}}"; }; readonly 'trust.review.currentInsecure': { readonly en: "TLS verification is disabled (insecure)"; readonly ru: "Проверка TLS отключена (insecure)"; }; readonly 'trust.review.keep': { readonly en: "Keep the current TLS / certificate setup?"; readonly ru: "Оставить текущую настройку TLS / сертификата?"; }; readonly 'trust.review.changePrompt': { readonly en: "How should TLS be verified?"; readonly ru: "Как проверять TLS-сертификат?"; }; readonly 'trust.review.optionCaFile': { readonly en: "Specify a different CA file"; readonly ru: "Указать другой CA-файл"; }; readonly 'trust.review.optionReprobe': { readonly en: "Re-detect from the server (re-probe)"; readonly ru: "Перепроверить с сервера (re-probe)"; }; readonly 'trust.review.keepUnreachable': { readonly en: "Server unreachable — keeping the stored CA WITHOUT re-validation. This may be a network failure or an attacker blocking the check; the login below still verifies against this CA and fails closed. ({{error}})"; readonly ru: "Сервер недоступен — оставляю сохранённый CA БЕЗ повторной проверки. Это может быть сбой сети или атакующий, блокирующий проверку; вход ниже всё равно проверяется по этому CA и упадёт при подмене. ({{error}})"; }; readonly 'trust.review.mismatchWarn': { readonly en: "The stored CA file no longer validates this server ({{error}}). The certificate may have rotated, or this could be a MITM — verify with the admin before trusting a new one."; readonly ru: "Сохранённый CA-файл больше не валидирует этот сервер ({{error}}). Сертификат мог смениться, либо это MITM — сверьте с админом перед доверием новому."; }; readonly 'trust.review.fileUnreadable': { readonly en: "Stored CA file is missing or unreadable: {{path}} ({{reason}})"; readonly ru: "Сохранённый CA-файл отсутствует или не читается: {{path}} ({{reason}})"; }; readonly 'probe.preview.title': { readonly en: "Connecting as"; readonly ru: "Подключусь как"; }; readonly 'probe.preview.accept': { readonly en: "Accept?"; readonly ru: "Принять?"; }; readonly 'probe.preview.tlsToggle': { readonly en: "TLS (https/wss)?"; readonly ru: "TLS (https/wss)?"; }; readonly 'probe.preview.port': { readonly en: "Port (empty = {{default}})"; readonly ru: "Порт (пусто = {{default}})"; }; readonly 'probe.preview.invalidPort': { readonly en: "Invalid port: {{value}}"; readonly ru: "Невалидный порт: {{value}}"; }; readonly 'probe.preview.reason.tlsValid': { readonly en: "TLS on {{port}}, valid certificate"; readonly ru: "TLS на {{port}}, валидный сертификат"; }; readonly 'probe.preview.reason.tlsUntrusted': { readonly en: "TLS on {{port}}, corporate/self-signed CA{{caClause}}"; readonly ru: "TLS на {{port}}, корпоративный/самоподписанный CA{{caClause}}"; }; readonly 'probe.preview.reason.caClause': { readonly en: " (CA: {{path}})"; readonly ru: " (CA: {{path}})"; }; readonly 'probe.preview.reason.tlsInsecure': { readonly en: "TLS on {{port}}, certificate verification disabled (this TrueConf only)"; readonly ru: "TLS на {{port}}, проверка сертификата отключена (только для TrueConf)"; }; readonly 'probe.preview.reason.bridgeOpen': { readonly en: "no TLS, Bridge on {{port}}"; readonly ru: "без TLS, Bridge на {{port}}"; }; readonly 'probe.preview.reason.fallback': { readonly en: "probe did not respond, trying HTTPS:{{port}}"; readonly ru: "probe не ответил, пробую HTTPS:{{port}}"; }; readonly 'bin.cancel': { readonly en: "Cancelled"; readonly ru: "Отменено"; }; readonly 'bin.fieldRequired': { readonly en: "Field required: {{message}}"; readonly ru: "Поле обязательно: {{message}}"; }; readonly 'bin.useEnvVar': { readonly en: "Use {{var}} from the environment?"; readonly ru: "Использовать {{var}} из окружения?"; }; readonly 'bin.passwordKeep': { readonly en: "Password is already set. Keep it?"; readonly ru: "Пароль уже задан. Оставить?"; }; readonly 'bin.passwordPrompt': { readonly en: "Enter password"; readonly ru: "Введите пароль"; }; readonly 'bin.passwordEmpty': { readonly en: "Password cannot be empty"; readonly ru: "Пароль не может быть пустым"; }; readonly 'bin.overwrite.confirm': { readonly en: "cfg already has channels.trueconf. Overwrite?"; readonly ru: "В конфиге уже есть channels.trueconf. Перезаписать?"; }; readonly 'bin.overwrite.untouched': { readonly en: "Config left as-is. To run unchanged: openclaw gateway"; readonly ru: "Конфиг не тронут. Чтобы запустить без изменений: openclaw gateway"; }; readonly 'bin.completion.title': { readonly en: "Done"; readonly ru: "Готово"; }; readonly 'bin.completion.backupSaved': { readonly en: "Previous config saved at: {{path}}"; readonly ru: "Предыдущий конфиг сохранён: {{path}}"; }; readonly 'bin.completion.next': { readonly en: "Next:"; readonly ru: "Дальше:"; }; readonly 'bin.completion.step1': { readonly en: " 1. Configure the LLM provider if you have not yet: openclaw configure"; readonly ru: " 1. Настроить LLM-провайдера, если ещё не: openclaw configure"; }; readonly 'bin.completion.step2': { readonly en: " 2. Start the gateway:"; readonly ru: " 2. Запустить gateway:"; }; readonly 'bin.completion.gatewayCa': { readonly en: " openclaw gateway (CA is already in cfg, no extra env needed)"; readonly ru: " openclaw gateway (CA уже прописан в конфиг, доп. env не нужен)"; }; readonly 'bin.completion.gatewayLegacy': { readonly en: " # or on older openclaw without caPath support:"; readonly ru: " # или на старой openclaw без caPath-поддержки:"; }; readonly 'bin.completion.expectedLogs': { readonly en: "Expected success logs:"; readonly ru: "Ожидаемые логи успеха:"; }; readonly 'bin.oauth.errorBody': { readonly en: "OAuth error: {{error}}\nThe server may be temporarily unreachable, behind a proxy, or have an unusual TLS configuration."; readonly ru: "OAuth ошибка: {{error}}\nСервер мог быть временно недоступен, за прокси, или TLS-конфигурация странная."; }; readonly 'bin.oauth.errorTitle': { readonly en: "Validation failed"; readonly ru: "Проверка не прошла"; }; readonly 'bin.oauth.saveAnyway': { readonly en: "Save credentials as-is? OAuth will be retried at `openclaw gateway`."; readonly ru: "Сохранить креды как есть? OAuth проверится при `openclaw gateway`"; }; readonly 'bin.backupFailed': { readonly en: "Could not create backup ({{message}}). Continuing without it."; readonly ru: "Не смог создать backup ({{message}}). Продолжаем без него."; }; readonly 'bin.cleanup.title': { readonly en: "Cleanup"; readonly ru: "Очистка"; }; readonly 'bin.cleanup.removed': { readonly en: "Removed stale plugins.entries.trueconf from the config"; readonly ru: "Удалил устаревший plugins.entries.trueconf из конфига"; }; readonly 'bin.savedNoOauth.title': { readonly en: "Important"; readonly ru: "Важно"; }; readonly 'bin.savedNoOauth.body': { readonly en: "Config written without OAuth validation. If you see connection errors at `openclaw gateway` — run `npm run setup` again."; readonly ru: "Конфиг записан без OAuth-валидации. Если при `openclaw gateway` будут ошибки подключения — запусти `npm run setup` ещё раз."; }; readonly 'bin.ephemeralHost.error': { readonly en: "TrueConf setup was launched from a throwaway npx cache copy ({{path}}), and the plugin is not installed yet.\n\nA wizard run from here would write a temporary path into openclaw.json that stops working once the npx cache is cleared.\n\nInstall the plugin first, then configure it:\n openclaw plugins install {{npmSpec}}\n npx -y -p {{npmSpec}} trueconf-setup\n\n(or run `openclaw onboard` and pick TrueConf)."; readonly ru: "Мастер TrueConf запущен из временной npx-копии ({{path}}), а плагин ещё не установлен.\n\nЗапуск отсюда записал бы в openclaw.json временный путь, который перестанет работать после очистки npx-кэша.\n\nСначала установите плагин, затем настройте:\n openclaw plugins install {{npmSpec}}\n npx -y -p {{npmSpec}} trueconf-setup\n\n(или `openclaw onboard` и выберите TrueConf)."; }; readonly 'wizard.status.configuredLabel': { readonly en: "TrueConf: connected"; readonly ru: "TrueConf: подключён"; }; readonly 'wizard.status.unconfiguredLabel': { readonly en: "TrueConf: needs credentials"; readonly ru: "TrueConf: нужны креды"; }; readonly 'wizard.intro.title': { readonly en: "Connect to TrueConf"; readonly ru: "Подключение к TrueConf"; }; readonly 'wizard.intro.line1': { readonly en: "You will need the server URL, login and bot password."; readonly ru: "Вам потребуется адрес сервера, логин и пароль бота."; }; readonly 'wizard.envShortcut.prompt': { readonly en: "TRUECONF_SERVER_URL/USERNAME/PASSWORD detected — apply automatically?"; readonly ru: "TRUECONF_SERVER_URL/USERNAME/PASSWORD обнаружены — настроить автоматически?"; }; readonly 'wizard.input.serverUrl.message': { readonly en: "Server address (host or IP, without http(s)://)"; readonly ru: "Адрес сервера (хост или IP, без http(s)://)"; }; readonly 'wizard.input.serverUrl.invalidScheme': { readonly en: "Remove the http(s):// prefix — only host or IP is needed"; readonly ru: "Уберите префикс http(s):// — нужен только хост или IP"; }; readonly 'wizard.input.serverUrl.invalidPort': { readonly en: "Remove the :port suffix — port is configured separately"; readonly ru: "Уберите :порт — порт настраивается отдельно"; }; readonly 'wizard.input.username.message': { readonly en: "Bot login (name only, no @server)"; readonly ru: "Логин бота (только имя, без @сервер)"; }; readonly 'wizard.input.useTls.message': { readonly en: "TLS? (empty = auto-detect)"; readonly ru: "TLS? (пусто = авто-детект)"; }; readonly 'wizard.input.port.message': { readonly en: "Port (empty = scheme default 4309/443)"; readonly ru: "Порт (пусто = scheme default 4309/443)"; }; readonly 'wizard.input.port.invalid': { readonly en: "Invalid port"; readonly ru: "Невалидный порт"; }; readonly 'wizard.credential.password.label': { readonly en: "Bot password"; readonly ru: "Пароль бота"; }; readonly 'wizard.credential.password.envPrompt': { readonly en: "Use TRUECONF_PASSWORD from the environment?"; readonly ru: "Использовать TRUECONF_PASSWORD из окружения?"; }; readonly 'wizard.credential.password.keepPrompt': { readonly en: "TrueConf password is already set. Keep it?"; readonly ru: "Пароль TrueConf уже задан. Оставить?"; }; readonly 'wizard.credential.password.inputPrompt': { readonly en: "Enter bot password"; readonly ru: "Введите пароль бота"; }; readonly 'wizard.completion.title': { readonly en: "Done"; readonly ru: "Готово"; }; readonly 'wizard.completion.line1': { readonly en: "TrueConf channel is configured."; readonly ru: "Канал TrueConf настроен."; }; readonly 'wizard.completion.line2': { readonly en: "Start: openclaw gateway"; readonly ru: "Запустить: openclaw gateway"; }; }; export type TranslationKey = keyof typeof TRANSLATIONS; export declare const TRANSLATION_KEYS: TranslationKey[]; export declare function t(key: TranslationKey, locale: Locale, vars?: Record): string; export {}; //# sourceMappingURL=i18n.d.ts.map