This commit is contained in:
Owen
2025-10-04 18:36:44 -07:00
parent 3123f858bb
commit c2c907852d
320 changed files with 35785 additions and 2984 deletions

View File

@@ -168,6 +168,9 @@
"siteSelect": "Выберите сайт",
"siteSearch": "Поиск сайта",
"siteNotFound": "Сайт не найден.",
"selectCountry": "Выберите страну",
"searchCountries": "Поиск стран...",
"noCountryFound": "Страна не найдена.",
"siteSelectionDescription": "Этот сайт предоставит подключение к цели.",
"resourceType": "Тип ресурса",
"resourceTypeDescription": "Определите, как вы хотите получать доступ к вашему ресурсу",
@@ -236,7 +239,7 @@
"accessUserCreate": "Создать пользователя",
"accessUserRemove": "Удалить пользователя",
"username": "Имя пользователя",
"identityProvider": "Identity Provider",
"identityProvider": "Поставщик удостоверений",
"role": "Роль",
"nameRequired": "Имя обязательно",
"accessRolesManage": "Управление ролями",
@@ -914,8 +917,6 @@
"idpConnectingToFinished": "Подключено",
"idpErrorConnectingTo": "Возникла проблема при подключении к {name}. Пожалуйста, свяжитесь с вашим администратором.",
"idpErrorNotFound": "IdP не найден",
"idpGoogleAlt": "Google",
"idpAzureAlt": "Azure",
"inviteInvalid": "Недействительное приглашение",
"inviteInvalidDescription": "Ссылка на приглашение недействительна.",
"inviteErrorWrongUser": "Приглашение не для этого пользователя",
@@ -1257,6 +1258,48 @@
"domainPickerSubdomain": "Поддомен: {subdomain}",
"domainPickerNamespace": "Пространство имен: {namespace}",
"domainPickerShowMore": "Показать еще",
"regionSelectorTitle": "Выберите регион",
"regionSelectorInfo": "Выбор региона помогает нам обеспечить лучшее качество обслуживания для вашего расположения. Вам необязательно находиться в том же регионе, что и ваш сервер.",
"regionSelectorPlaceholder": "Выбор региона",
"regionSelectorComingSoon": "Скоро будет",
"billingLoadingSubscription": "Загрузка подписки...",
"billingFreeTier": "Бесплатный уровень",
"billingWarningOverLimit": "Предупреждение: Вы превысили одну или несколько границ использования. Ваши сайты не подключатся, пока вы не измените подписку или не скорректируете использование.",
"billingUsageLimitsOverview": "Обзор лимитов использования",
"billingMonitorUsage": "Контролируйте использование в соответствии с установленными лимитами. Если вам требуется увеличение лимитов, пожалуйста, свяжитесь с нами support@fossorial.io.",
"billingDataUsage": "Использование данных",
"billingOnlineTime": "Время работы сайта",
"billingUsers": "Активные пользователи",
"billingDomains": "Активные домены",
"billingRemoteExitNodes": "Активные самоуправляемые узлы",
"billingNoLimitConfigured": "Лимит не установлен",
"billingEstimatedPeriod": "Предполагаемый период выставления счетов",
"billingIncludedUsage": "Включенное использование",
"billingIncludedUsageDescription": "Использование, включенное в ваш текущий план подписки",
"billingFreeTierIncludedUsage": "Бесплатное использование ограничений",
"billingIncluded": "включено",
"billingEstimatedTotal": "Предполагаемая сумма:",
"billingNotes": "Заметки",
"billingEstimateNote": "Это приблизительная оценка на основании вашего текущего использования.",
"billingActualChargesMayVary": "Фактические начисления могут отличаться.",
"billingBilledAtEnd": "С вас будет выставлен счет в конце периода выставления счетов.",
"billingModifySubscription": "Изменить подписку",
"billingStartSubscription": "Начать подписку",
"billingRecurringCharge": "Периодический взнос",
"billingManageSubscriptionSettings": "Управляйте настройками и предпочтениями вашей подписки",
"billingNoActiveSubscription": "У вас нет активной подписки. Начните подписку, чтобы увеличить лимиты использования.",
"billingFailedToLoadSubscription": "Не удалось загрузить подписку",
"billingFailedToLoadUsage": "Не удалось загрузить использование",
"billingFailedToGetCheckoutUrl": "Не удалось получить URL-адрес для оплаты",
"billingPleaseTryAgainLater": "Пожалуйста, повторите попытку позже.",
"billingCheckoutError": "Ошибка при оформлении заказа",
"billingFailedToGetPortalUrl": "Не удалось получить URL-адрес портала",
"billingPortalError": "Ошибка портала",
"billingDataUsageInfo": "Вы несете ответственность за все данные, переданные через безопасные туннели при подключении к облаку. Это включает как входящий, так и исходящий трафик на всех ваших сайтах. При достижении лимита ваши сайты будут отключаться до тех пор, пока вы не обновите план или не уменьшите его использование. При использовании узлов не взимается плата.",
"billingOnlineTimeInfo": "Вы тарифицируете на то, как долго ваши сайты будут подключены к облаку. Например, 44 640 минут равны одному сайту, работающему круглосуточно за весь месяц. Когда вы достигните лимита, ваши сайты будут отключаться до тех пор, пока вы не обновите тарифный план или не сократите нагрузку. При использовании узлов не тарифицируется.",
"billingUsersInfo": "С вас взимается плата за каждого пользователя в вашей организации. Оплата рассчитывается ежедневно исходя из количества активных учетных записей пользователей в вашей организации.",
"billingDomainInfo": "С вас взимается плата за каждый домен в вашей организации. Оплата рассчитывается ежедневно исходя из количества активных учетных записей доменов в вашей организации.",
"billingRemoteExitNodesInfo": "С вас взимается плата за каждый управляемый узел в вашей организации. Оплата рассчитывается ежедневно исходя из количества активных управляемых узлов в вашей организации.",
"domainNotFound": "Домен не найден",
"domainNotFoundDescription": "Этот ресурс отключен, так как домен больше не существует в нашей системе. Пожалуйста, установите новый домен для этого ресурса.",
"failed": "Ошибка",
@@ -1320,6 +1363,7 @@
"createDomainDnsPropagationDescription": "Изменения DNS могут занять некоторое время для распространения через интернет. Это может занять от нескольких минут до 48 часов в зависимости от вашего DNS провайдера и настроек TTL.",
"resourcePortRequired": "Номер порта необходим для не-HTTP ресурсов",
"resourcePortNotAllowed": "Номер порта не должен быть установлен для HTTP ресурсов",
"billingPricingCalculatorLink": "Калькулятор расценок",
"signUpTerms": {
"IAgreeToThe": "Я согласен с",
"termsOfService": "условия использования",
@@ -1368,6 +1412,41 @@
"addNewTarget": "Добавить новую цель",
"targetsList": "Список целей",
"targetErrorDuplicateTargetFound": "Обнаружена дублирующаяся цель",
"healthCheckHealthy": "Здоровый",
"healthCheckUnhealthy": "Нездоровый",
"healthCheckUnknown": "Неизвестно",
"healthCheck": "Проверка здоровья",
"configureHealthCheck": "Настроить проверку здоровья",
"configureHealthCheckDescription": "Настройте мониторинг состояния для {target}",
"enableHealthChecks": "Включить проверки здоровья",
"enableHealthChecksDescription": "Мониторинг здоровья этой цели. При необходимости можно контролировать другую конечную точку.",
"healthScheme": "Метод",
"healthSelectScheme": "Выберите метод",
"healthCheckPath": "Путь",
"healthHostname": "IP / хост",
"healthPort": "Порт",
"healthCheckPathDescription": "Путь к проверке состояния здоровья.",
"healthyIntervalSeconds": "Интервал здоровых состояний",
"unhealthyIntervalSeconds": "Интервал нездоровых состояний",
"IntervalSeconds": "Интервал здоровых состояний",
"timeoutSeconds": "Тайм-аут",
"timeIsInSeconds": "Время указано в секундах",
"retryAttempts": "Количество попыток повторного запроса",
"expectedResponseCodes": "Ожидаемые коды ответов",
"expectedResponseCodesDescription": "HTTP-код состояния, указывающий на здоровое состояние. Если оставить пустым, 200-300 считается здоровым.",
"customHeaders": "Пользовательские заголовки",
"customHeadersDescription": "Заголовки новой строки, разделённые: название заголовка: значение",
"headersValidationError": "Заголовки должны быть в формате: Название заголовка: значение.",
"saveHealthCheck": "Сохранить проверку здоровья",
"healthCheckSaved": "Проверка здоровья сохранена",
"healthCheckSavedDescription": "Конфигурация проверки состояния успешно сохранена",
"healthCheckError": "Ошибка проверки состояния",
"healthCheckErrorDescription": "Произошла ошибка при сохранении конфигурации проверки состояния",
"healthCheckPathRequired": "Требуется путь проверки состояния",
"healthCheckMethodRequired": "Требуется метод HTTP",
"healthCheckIntervalMin": "Интервал проверки должен составлять не менее 5 секунд",
"healthCheckTimeoutMin": "Тайм-аут должен составлять не менее 1 секунды",
"healthCheckRetryMin": "Количество попыток должно быть не менее 1",
"httpMethod": "HTTP метод",
"selectHttpMethod": "Выберите HTTP метод",
"domainPickerSubdomainLabel": "Поддомен",
@@ -1381,6 +1460,7 @@
"domainPickerEnterSubdomainToSearch": "Введите поддомен для поиска и выбора из доступных свободных доменов.",
"domainPickerFreeDomains": "Свободные домены",
"domainPickerSearchForAvailableDomains": "Поиск доступных доменов",
"domainPickerNotWorkSelfHosted": "Примечание: бесплатные предоставляемые домены в данный момент недоступны для самоуправляемых экземпляров.",
"resourceDomain": "Домен",
"resourceEditDomain": "Редактировать домен",
"siteName": "Имя сайта",
@@ -1463,6 +1543,72 @@
"autoLoginError": "Ошибка автоматического входа",
"autoLoginErrorNoRedirectUrl": "URL-адрес перенаправления не получен от провайдера удостоверения.",
"autoLoginErrorGeneratingUrl": "Не удалось сгенерировать URL-адрес аутентификации.",
"remoteExitNodeManageRemoteExitNodes": "Управление самоуправляемым",
"remoteExitNodeDescription": "Управляйте узлами для расширения сетевого подключения",
"remoteExitNodes": "Nodes",
"searchRemoteExitNodes": "Поиск узлов...",
"remoteExitNodeAdd": "Добавить узел",
"remoteExitNodeErrorDelete": "Ошибка удаления узла",
"remoteExitNodeQuestionRemove": "Вы уверены, что хотите удалить узел {selectedNode} из организации?",
"remoteExitNodeMessageRemove": "После удаления узел больше не будет доступен.",
"remoteExitNodeMessageConfirm": "Для подтверждения введите имя узла ниже.",
"remoteExitNodeConfirmDelete": "Подтвердите удаление узла",
"remoteExitNodeDelete": "Удалить узел",
"sidebarRemoteExitNodes": "Nodes",
"remoteExitNodeCreate": {
"title": "Создать узел",
"description": "Создайте новый узел, чтобы расширить сетевое подключение",
"viewAllButton": "Все узлы",
"strategy": {
"title": "Стратегия создания",
"description": "Выберите эту опцию для настройки вашего узла или создания новых учетных данных.",
"adopt": {
"title": "Принять узел",
"description": "Выберите это, если у вас уже есть учетные данные для узла."
},
"generate": {
"title": "Сгенерировать ключи",
"description": "Выберите это, если вы хотите создать новые ключи для узла"
}
},
"adopt": {
"title": "Принять существующий узел",
"description": "Введите учетные данные существующего узла, который вы хотите принять",
"nodeIdLabel": "ID узла",
"nodeIdDescription": "ID существующего узла, который вы хотите принять",
"secretLabel": "Секретный ключ",
"secretDescription": "Секретный ключ существующего узла",
"submitButton": "Принять узел"
},
"generate": {
"title": "Сгенерированные учетные данные",
"description": "Используйте эти учётные данные для настройки вашего узла",
"nodeIdTitle": "ID узла",
"secretTitle": "Секретный ключ",
"saveCredentialsTitle": "Добавить учетные данные в конфигурацию",
"saveCredentialsDescription": "Добавьте эти учетные данные в файл конфигурации вашего самоуправляемого узла Pangolin, чтобы завершить подключение.",
"submitButton": "Создать узел"
},
"validation": {
"adoptRequired": "ID узла и секрет требуются при установке существующего узла"
},
"errors": {
"loadDefaultsFailed": "Не удалось загрузить параметры по умолчанию",
"defaultsNotLoaded": "Параметры по умолчанию не загружены",
"createFailed": "Не удалось создать узел"
},
"success": {
"created": "Узел успешно создан"
}
},
"remoteExitNodeSelection": "Выбор узла",
"remoteExitNodeSelectionDescription": "Выберите узел для маршрутизации трафика для этого локального сайта",
"remoteExitNodeRequired": "Узел должен быть выбран для локальных сайтов",
"noRemoteExitNodesAvailable": "Нет доступных узлов",
"noRemoteExitNodesAvailableDescription": "Для этой организации узлы не доступны. Сначала создайте узел, чтобы использовать локальные сайты.",
"exitNode": "Узел выхода",
"country": "Страна",
"rulesMatchCountry": "В настоящее время основано на исходном IP",
"managedSelfHosted": {
"title": "Управляемый с самовывоза",
"description": "Более надежный и низко обслуживаемый сервер Pangolin с дополнительными колокольнями и свистками",
@@ -1501,11 +1647,53 @@
},
"internationaldomaindetected": "Обнаружен международный домен",
"willbestoredas": "Будет храниться как:",
"roleMappingDescription": "Определите, как роли, назначаемые пользователям, когда они войдут в систему автоматического профиля.",
"selectRole": "Выберите роль",
"roleMappingExpression": "Выражение",
"selectRolePlaceholder": "Выберите роль",
"selectRoleDescription": "Выберите роль, чтобы назначить всем пользователям этого поставщика идентификации",
"roleMappingExpressionDescription": "Введите выражение JMESPath, чтобы извлечь информацию о роли из ID токена",
"idpTenantIdRequired": "Требуется ID владельца",
"invalidValue": "Неверное значение",
"idpTypeLabel": "Тип поставщика удостоверений",
"roleMappingExpressionPlaceholder": "например, contains(groups, 'admin') && 'Admin' || 'Member'",
"idpGoogleConfiguration": "Конфигурация Google",
"idpGoogleConfigurationDescription": "Настройка учетных данных Google OAuth2",
"idpGoogleClientIdDescription": "Ваш Google OAuth2 ID клиента",
"idpGoogleClientSecretDescription": "Ваш Google OAuth2 Секрет",
"idpAzureConfiguration": "Конфигурация Azure Entra ID",
"idpAzureConfigurationDescription": "Настройте учетные данные Azure Entra ID OAuth2",
"idpTenantId": "Tenant ID",
"idpTenantIdPlaceholder": "ваш тенант-id",
"idpAzureTenantIdDescription": "Идентификатор арендатора Azure (найден в обзоре Active Directory Azure)",
"idpAzureClientIdDescription": "Ваш идентификатор клиента Azure App",
"idpAzureClientSecretDescription": "Секрет регистрации клиента Azure App",
"idpGoogleTitle": "Google",
"idpGoogleAlt": "Google",
"idpAzureTitle": "Azure Entra ID",
"idpAzureAlt": "Azure",
"idpGoogleConfigurationTitle": "Конфигурация Google",
"idpAzureConfigurationTitle": "Конфигурация Azure Entra ID",
"idpTenantIdLabel": "Tenant ID",
"idpAzureClientIdDescription2": "Ваш идентификатор клиента Azure App",
"idpAzureClientSecretDescription2": "Секрет регистрации клиента Azure App",
"idpGoogleDescription": "Google OAuth2/OIDC провайдер",
"idpAzureDescription": "Microsoft Azure OAuth2/OIDC provider",
"customHeaders": "Пользовательские заголовки",
"customHeadersDescription": "Add custom headers to be sent when proxying requests. One per line in the format Header-Name: value",
"headersValidationError": "Заголовки должны быть в формате: Название заголовка: значение.",
"subnet": "Подсеть",
"subnetDescription": "Подсеть для конфигурации сети этой организации.",
"authPage": "Страница авторизации",
"authPageDescription": "Настройка страницы авторизации для вашей организации",
"authPageDomain": "Домен страницы авторизации",
"noDomainSet": "Домен не установлен",
"changeDomain": "Изменить домен",
"selectDomain": "Выберите домен",
"restartCertificate": "Перезапустить сертификат",
"editAuthPageDomain": "Редактировать домен страницы авторизации",
"setAuthPageDomain": "Установить домен страницы авторизации",
"failedToFetchCertificate": "Не удалось получить сертификат",
"failedToRestartCertificate": "Не удалось перезапустить сертификат",
"addDomainToEnableCustomAuthPages": "Добавьте домен для включения пользовательских страниц аутентификации для вашей организации",
"selectDomainForOrgAuthPage": "Выберите домен для страницы аутентификации организации",
"domainPickerProvidedDomain": "Домен предоставлен",
"domainPickerFreeProvidedDomain": "Бесплатный домен",
"domainPickerVerified": "Подтверждено",
@@ -1519,10 +1707,16 @@
"domainPickerInvalidSubdomainCannotMakeValid": "\"{sub}\" не может быть действительным для {domain}.",
"domainPickerSubdomainSanitized": "Субдомен очищен",
"domainPickerSubdomainCorrected": "\"{sub}\" был исправлен на \"{sanitized}\"",
"orgAuthSignInTitle": "Войдите в свою организацию",
"orgAuthChooseIdpDescription": "Выберите своего поставщика удостоверений личности для продолжения",
"orgAuthNoIdpConfigured": "Эта организация не имеет настроенных поставщиков идентификационных данных. Вместо этого вы можете войти в свой Pangolin.",
"orgAuthSignInWithPangolin": "Войти через Pangolin",
"subscriptionRequiredToUse": "Для использования этой функции требуется подписка.",
"idpDisabled": "Провайдеры идентификации отключены.",
"orgAuthPageDisabled": "Страница авторизации организации отключена.",
"domainRestartedDescription": "Проверка домена успешно перезапущена",
"resourceAddEntrypointsEditFile": "Редактировать файл: config/traefik/traefik_config.yml",
"resourceExposePortsEditFile": "Редактировать файл: docker-compose.yml",
"emailVerificationRequired": "Требуется подтверждение адреса электронной почты. Пожалуйста, войдите снова через {dashboardUrl}/auth/login завершить этот шаг. Затем вернитесь сюда.",
"twoFactorSetupRequired": "Требуется настройка двухфакторной аутентификации. Пожалуйста, войдите снова через {dashboardUrl}/auth/login завершить этот шаг. Затем вернитесь сюда.",
"rewritePath": "Rewrite Path",
"rewritePathDescription": "Optionally rewrite the path before forwarding to the target."
"twoFactorSetupRequired": "Требуется настройка двухфакторной аутентификации. Пожалуйста, войдите снова через {dashboardUrl}/auth/login завершить этот шаг. Затем вернитесь сюда."
}