'Уязвимости',
'menu.item.settings' => 'Настройки',
'menu.item.autoUpdatesSettings' => 'Autoupdates',
'menu.item.subscriptions' => 'Subscriptions',
'plugin.noJsText' => 'Включите JavaScript в своем браузере, чтобы использовать этот плагин.',
'dashboard.widget.vulnerabilities.title' => '{productName}: Уязвимости сайта',
'dashboard.widget.attacks.title' => 'Защита от уязвимостей',
'dashboard.widget.noJsText' => 'Включите JavaScript в своем браузере, чтобы получить доступ к этому виджету.',
];
$messagesFrontend = [
'backgroundTasksContext.polling.error' => 'Невозможно опросить фоновые задачи',
'dateTimeDisplay.format' => '{tense, select, past{{timeCategory, select, minutes{{minutes, plural, =0{меньше 1 минуты назад} one{около {minutes} минуты назад} other{около {minutes} минут назад}}} hours{{hours, plural, =0{меньше 1 часа назад} one{около {hours} часа назад} other{около {hours} часов назад}}} other{{dateTime, date, medium} в {dateTime, time, short}}}} future{{timeCategory, select, minutes{{minutes, plural, =0{меньше чем через 1 минуту} one{примерно через {minutes} минуту} few {примерно через {minutes} минуты} other{примерно через {minutes} минут}}} hours{{hours, plural, =0{меньше чем через 1 час} one{примерно через {hours} час} few {примерно через {hours} часа} other{примерно через {hours} часов}}} other{{dateTime, date, medium} в {dateTime, time, short}}}} other{{dateTime, date, medium} в {dateTime, time, short}}}',
'ellipsisText.showLess' => 'Свернуть',
'ellipsisText.showMore' => 'Показать все',
'loader.text.dataLoading' => 'Загрузка данных',
'loader.text.dataSaving' => 'Saving data',
'loader.text.mitigationUpdate' => 'Обновление компонентов сайта, подождите',
'loader.text.mitigationDisable' => 'Деактивация уязвимых компонентов, подождите',
'loader.text.protection.enabling' => 'Enabling protection, please wait',
'loader.text.protection.disabling' => 'Disabling protection, please wait',
'protectedChip.title' => 'Нейтрализовано',
'riskLevelChip.label.low' => 'Низкий',
'riskLevelChip.label.medium' => 'Med',
'riskLevelChip.label.high' => 'Высокий',
'riskLevelChip.label.critical' => 'Crit',
'riskLevelChip.shieldIcon.tooltip' => 'This vulnerability is mitigated by Vulnerability Protection',
'smartUpdateEnabled.confirmation.text' => 'Функция Smart Updates включена для этого сайта, поэтому обновление может занять некоторое время. Продолжить?',
'smartUpdateEnabled.confirmation.button.confirm' => 'Запустить Smart Update',
'smartUpdateEnabled.confirmation.button.reject' => 'Отмена',
'toast.error.defaultTitle' => 'Произошла ошибка',
'toast.error.installationProperties' => 'Не удалось получить свойства сайта',
'toast.error.accessToken' => 'Токен доступа плагина не найден. Попробуйте обновить токен доступа на странице настройки соответствующего сайта в интерфейсе панели управления или обратитесь за помощью к своему сервис-провайдеру.',
'vulnerabilitiesWidget.activeVulnerabilities.label' => '{counter, plural, one {необработанная уязвимость} few {необработанные уязвимости} other {необработанных уязвимостей}}', // Attention! This string shouldn't contain number placeholder (#) itself
'vulnerabilitiesWidget.activeVulnerabilities.tooltip' => 'Количество необработанных уязвимостей на вашем сайте, за исключением игнорируемых.',
'vulnerabilitiesWidget.activeVulnerabilities.empty.title' => 'На вашем сайте нет необработанных уязвимостей',
'vulnerabilitiesWidget.activeVulnerabilities.empty.subtitle' => 'Убедитесь, что защита от уязвимостей включена на вашем сайте, чтобы он всегда оставался в безопасности',
'vulnerabilitiesWidget.risk.critical' => 'Критический риск',
'vulnerabilitiesWidget.risk.high' => 'Высокий риск',
'vulnerabilitiesWidget.risk.medium' => 'Средний риск',
'vulnerabilitiesWidget.risk.low' => 'Низкий риск',
'vulnerabilitiesWidget.counter.fixed.label' => '{counter, plural, one {нейтрализованная уязвимость} few {нейтрализованные уязвимости} other {нейтрализованных уязвимостей}}', // Attention! This string shouldn't contain number placeholder (#) itself
'vulnerabilitiesWidget.counter.fixed.tooltip' => 'Количество уязвимостей на вашем сайте, нейтрализованных функцией защиты от уязвимостей или деактивацией компонентов.',
'vulnerabilitiesWidget.counter.fixed.emptyText' => 'Правила защиты применяются автоматически',
'vulnerabilitiesWidget.counter.attacks.label' => '{counter, plural, one {атака заблокирована} few {атаки заблокированы} other {атак заблокированы}}', // Attention! This string shouldn't contain number placeholder (#) itself
'vulnerabilitiesWidget.counter.attacks.tooltip' => 'Количество заблокированных попыток использовать уязвимости на вашем сайте за последние 365 дней.',
'vulnerabilitiesWidget.counter.attacks.emptyText' => 'Мы отслеживаем уязвимости в режиме реального времени и определяем их приоритет в зависимости от вероятности их эксплуатации.', // unused
'vulnerabilitiesWidget.somethingNotProtected' => 'Защита включена, но не все нейтрализовано?',
'vulnerabilityList.bulkActions.selected' => '{count, plural, =0 {Ничего не выбрано} one {Выбрана #} other {Выбраны #}}',
'vulnerabilityList.bulkActions.update' => 'Обновить',
'vulnerabilityList.searchField.label' => 'Поиск',
'securityRiskChip.label' => '{score, number, ::.0} Security Risk',
'securityRiskChip.shieldIcon.tooltip' => 'Security Risk is reduced by Vulnerability Protection',
'settings.title' => 'Настройки',
'settings.actions.backAriaLabel' => 'Back to the previous page',
'settings.analytics.idLabel' => 'User Analytics ID',
'settings.analytics.idNotAvailable' => 'Недоступен',
'settings.analytics.copyToClipboard.buttonLabel' => 'Copy Analytics ID',
'settings.analytics.copyToClipboard.idNotAvailable' => 'ID аналитики недоступен',
'settings.analytics.copyToClipboard.toast.success' => 'ID аналитики скопирован в буфер обмена',
'settings.analytics.copyToClipboard.toast.error' => 'Не удалось скопировать ID аналитики в буфер обмена',
'settings.consent.title' => 'Collect usage statistics',
'settings.consent.description' => 'This plugin uses third-party tools to track usage and improve features. By keeping tracking enabled, you consent to data collection during plugin use. Learn more about this.',
'settings.consent.action.disableTracking' => 'Disable Tracking',
'settings.consent.action.enableTracking' => 'Enable Tracking',
'settings.consent.toast.success.optedIn' => 'Вы согласились на сбор аналитики пользователя',
'settings.consent.toast.success.optedOut' => 'Вы отказались от сбора аналитики пользователя',
'settings.consent.toast.error.optedInStatus' => 'Не удалось обновить состояние согласия на сбор аналитики',
'settings.accessToken.title' => 'Токен доступа',
'settings.accessToken.description' => 'Этот токен доступа уникален для данного сайта. Он позволяет этому плагину взаимодействовать с WP Toolkit (который обеспечивает работу плагина). Токен автоматически обновляется каждые 24 часа. При необходимости вы можете обновить его вручную здесь или на странице настройки в интерфейсе WP Toolkit.',
'settings.accessToken.description.customAppName' => "Этот токен доступа уникален для данного сайта. Он позволяет этому плагину взаимодействовать с серверной частью сервиса. Токен автоматически обновляется каждые 24 часа. При необходимости вы можете обновить его вручную здесь. Если обновление токена не удалось, обратитесь за помощью к своему сервис-провайдеру.",
'settings.accessToken.lastRefresh' => 'Last refresh',
'settings.accessToken.lastRefresh.unavailable' => 'Недоступен',
'settings.accessToken.lastRefresh.dateTimeFormat' => '{dateTime, date, medium} в {dateTime, time, short}',
'settings.accessToken.refreshButton' => 'Обновить токен',
'settings.accessToken.refreshing' => 'Выдача нового токена доступа',
'settings.accessToken.refreshSuccess' => 'Выдан новый токен доступа',
'settings.accessToken.refreshError' => 'Не удалось выдать новый токен доступа',
'settings.error.unknownInstallation' => 'Неизвестный идентификатор установки WordPress. Попробуйте обновить токен доступа плагина на странице настройки соответствующего сайта в интерфейсе панели управления или обратитесь за помощью к своему сервис-провайдеру.',
'pageHeader.settings' => 'Настройки',
'vulnerabilitiesPage.widget.securityRisk.title' => 'Security Risk',
'vulnerabilitiesPage.widget.securityRisk.tooltip' => 'Site Security Risk is calculated from the combined risk of site components, vulnerability protection status, and whether security measures and automatic updates are enabled.',
'vulnerabilitiesPage.widget.updates.title.updatesAvailable' => 'Updates are available',
'vulnerabilitiesPage.widget.updates.title.upToDate' => "Everything's up-to-date",
'vulnerabilitiesPage.widget.updates.button.update' => 'Обновить',
'vulnerabilitiesPage.widget.updates.actions.settingsAriaLabel' => 'Open autoupdate settings', // Gear icon button in Updates widget
'vulnerabilitiesPage.widget.updates.dialog.title' => 'Update Everything',
'vulnerabilitiesPage.widget.updates.dialog.text' => 'Choose components to update on {siteName}. The update cannot be interrupted once it starts.', // {siteName} is the site display name
'vulnerabilitiesPage.widget.updates.dialog.item.core' => 'WordPress {fromVersion} → {toVersion}', // Example: WordPress 3.2.2 → 3.2.9
'vulnerabilitiesPage.widget.updates.dialog.item.asset' => '{componentTitle} {fromVersion} → {toVersion}', // Example: Duplicator 1.3.26 → 1.3.28
'vulnerabilitiesPage.widget.updates.dialog.button.cancel' => 'Отмена',
'vulnerabilitiesPage.widget.updates.dialog.button.update' => 'Обновить',
'autoUpdatesSettings.title' => 'Autoupdates',
'autoUpdatesSettings.description.paragraph1' => 'Configure how WordPress core, plugins, and themes are updated. It\'s recommended to enable automatic security updates that install minor security releases immediately to protect your site from newly discovered vulnerabilities.',
'autoUpdatesSettings.unavailable.message' => 'Autoupdate settings are currently unavailable for this site.',
'autoUpdatesSettings.actions.save' => 'Save',
'autoUpdatesSettings.actions.backAriaLabel' => 'Back to the previous page',
'autoUpdatesSettings.field.core' => 'WordPress core',
'autoUpdatesSettings.field.plugins' => 'Plugins',
'autoUpdatesSettings.field.themes' => 'Themes',
'autoUpdatesSettings.option.disabled.title' => 'Do not install any updates automatically',
'autoUpdatesSettings.option.security.title' => 'Install only security updates automatically',
'autoUpdatesSettings.option.all.title' => 'Install all updates automatically',
'autoUpdatesSettings.core.option.security.description' => 'For example, automatically install 4.7.1, but not 4.8',
'autoUpdatesSettings.plugins.option.security.description' => 'Use individual plugin autoupdate settings, but autoinstall updates if they fix a known vulnerability',
'autoUpdatesSettings.plugins.option.all.description' => 'Ignore individual plugin autoupdate settings for each plugin',
'autoUpdatesSettings.toast.success' => 'Autoupdate settings updated',
'autoUpdatesSettings.toast.error' => 'Failed to update autoupdate settings',
'autoUpdatesSettings.themes.option.security.description' => 'Use individual theme autoupdate settings, but autoinstall updates if they fix a known vulnerability',
'autoUpdatesSettings.themes.option.all.description' => 'Ignore individual theme autoupdate settings for each theme',
'vulnerabilitiesPage.widget.protection.title.notProtected' => 'Protection Disabled',
'vulnerabilitiesPage.widget.protection.title.protected' => 'Protection Enabled',
'vulnerabilitiesPage.widget.protection.title.tooltip.line1.title' => 'Automatic:',
'vulnerabilitiesPage.widget.protection.title.tooltip.line1.text' => 'Protection rules are applied automatically, no user action is required.',
'vulnerabilitiesPage.widget.protection.title.tooltip.line2.title' => 'Non-invasive:',
'vulnerabilitiesPage.widget.protection.title.tooltip.line2.text' => 'Protection rules work like a firewall and do not modify your site\'s code.',
'vulnerabilitiesPage.widget.protection.title.tooltip.line3.title' => 'High-performance:',
'vulnerabilitiesPage.widget.protection.title.tooltip.line3.text' => 'Protection rules are applied only for specific vulnerabilities, ensuring minimal impact on performance.',
'vulnerabilitiesPage.widget.protection.content.notProtected.text' => 'Non-invasive, automated, lightweight protection',
'vulnerabilitiesPage.widget.protection.content.notProtected.poweredBy' => 'Powered by {providerLogo}', // {providerLogo} is an actual logo image of the provider, not text
'vulnerabilitiesPage.widget.protection.content.notProtected.button.enableProtection' => 'Enable Protection',
'vulnerabilitiesPage.widget.protection.content.protected' => '{counter, plural, one {attack blocked} other {attacks blocked}}', // Attention! This string shouldn't contain number placeholder (#) itself
'vulnerabilitiesPage.widget.protection.title.terminated' => 'No protection: terminated',
'vulnerabilitiesPage.widget.protection.subscriptionStatus.suspended' => 'Subscription suspended',
'vulnerabilitiesPage.widget.protection.content.terminated.button.buyNewLicense' => 'Buy New License',
'vulnerabilitiesPage.widget.protection.actionsMenu.disableProtection' => 'Disable Protection',
'vulnerabilitiesPage.widget.protection.actionsMenu.manageSubscription' => 'Manage Subscription',
'vulnerabilityList.vulnerabilityProvidersInfo.source' => 'Исходная установка',
'vulnerabilityList.vulnerabilityTable.disableButton.title' => 'Деактивировать',
'vulnerabilityList.vulnerabilityTable.disableButton.active.tooltip' => 'Деактивация может повлиять на работу сайта.',
'vulnerabilityList.vulnerabilityTable.disableButton.inactive.tooltip' => 'Этот плагин неактивен.',
'vulnerabilityList.vulnerabilityTable.emptyState.text.protectionDisabled' => 'На этом сайте нет известных уязвимостей',
'vulnerabilityList.vulnerabilityTable.emptyState.text.protectionEnabled' => 'Все уязвимости, присутствующие на этом сайте, были нейтрализованы',
'vulnerabilityList.filtersPanel.chip.affectedPart.core' => 'Ядро',
'vulnerabilityList.filtersPanel.chip.affectedPart.plugin' => 'Плагин',
'vulnerabilityList.filtersPanel.chip.affectedPart.theme' => 'Тема',
'vulnerabilityList.filtersPanel.chip.protected' => 'Нейтрализовано',
'vulnerabilityList.filtersPanel.chip.notProtected' => 'Активно',
'vulnerabilityList.filtersPanel.chip.risk.low' => 'Низкий риск',
'vulnerabilityList.filtersPanel.chip.risk.medium' => 'Средний риск',
'vulnerabilityList.filtersPanel.chip.risk.high' => 'Высокий риск',
'vulnerabilityList.filtersPanel.chip.risk.critical' => 'Критический риск',
'vulnerabilityList.filtersPanel.chip.updatesAvailable' => 'Доступны обновления',
'vulnerabilityList.filtersPanel.chip.noUpdates' => 'Нет обновлений',
'vulnerabilityList.filtersPopover.button.apply' => 'Применить фильтры',
'vulnerabilityList.filtersPopover.button.reset' => 'Сбросить фильтры',
'vulnerabilityList.filtersPopover.header' => 'Фильтровать уязвимости',
'vulnerabilityList.filtersPopover.filter.affectedPart.title' => 'Расположение',
'vulnerabilityList.filtersPopover.filter.affectedPart.core' => 'Ядро WordPress',
'vulnerabilityList.filtersPopover.filter.affectedPart.plugin' => 'Плагин',
'vulnerabilityList.filtersPopover.filter.affectedPart.theme' => 'Тема',
'vulnerabilityList.filtersPopover.filter.protection.title' => 'Нейтрализовано функцией защиты',
'vulnerabilityList.filtersPopover.filter.protection.protected' => 'Нейтрализовано',
'vulnerabilityList.filtersPopover.filter.protection.notProtected' => 'Активно',
'vulnerabilityList.filtersPopover.filter.riskLevel.title' => 'Уровень риска',
'vulnerabilityList.filtersPopover.filter.riskLevel.low' => 'Низкий риск',
'vulnerabilityList.filtersPopover.filter.riskLevel.medium' => 'Средний риск',
'vulnerabilityList.filtersPopover.filter.riskLevel.high' => 'Высокий риск',
'vulnerabilityList.filtersPopover.filter.riskLevel.critical' => 'Критический риск',
'vulnerabilityList.filtersPopover.filter.updates.title' => 'Обновления',
'vulnerabilityList.filtersPopover.filter.updates.available' => 'Доступны',
'vulnerabilityList.filtersPopover.filter.updates.notAvailable' => 'Нет доступных',
'vulnerabilityList.vulnerabilityTable.header.risk.label' => 'Риск',
'vulnerabilityList.vulnerabilityTable.header.risk.tooltip' => 'Ранг риска — это агрегированная оценка воздействия уязвимости. Он рассчитывается на основе оценки CVSS, оценки EPSS, оценки Patchstack Patch Priority и других факторов.',
'vulnerabilityList.vulnerabilityTable.header.vulnerability' => 'Уязвимость',
'vulnerabilityList.vulnerabilityTable.header.where' => 'Где',
'vulnerabilityList.vulnerabilityTable.header.howToFix' => 'Как исправить',
'vulnerabilityList.vulnerabilityTable.protectedChip.tooltip' => 'Функция защиты от уязвимостей применила правила защиты для нейтрализации этой уязвимости.',
'vulnerabilityList.vulnerabilityTable.sorting.asc' => 'сортировка по возрастанию',
'vulnerabilityList.vulnerabilityTable.sorting.desc' => 'сортировка по убыванию',
'vulnerabilityList.vulnerabilityTable.updates.notFound' => 'Обновлений не найдено',
'vulnerabilityList.vulnerabilityTable.updates.updateTo' => 'Обновить до версии {version}',
'vulnerabilityProtection.vulnerabilitiesFetch.error' => 'Не удалось загрузить данные об уязвимостях сайта',
'vulnerabilityProtection.tasksLoading.error' => 'Не удалось обновить данные с сервера',
'vulnerabilityProtection.usageLoading.error' => 'Failed to load data about Vulnerability Protection usage',
'vulnerabilityProtectionDashboard.title' => 'Уязвимости',
'vulnerabilityProtectionDashboard.subtitle' => 'Список уязвимостей, найденных на сайте.',
'vulnerabilityProtectionDashboard.lastUpdate' => 'Последнее обновление: {dateTime}.',
'vulnerabilityProtectionDashboard.ignoreLowLevel.title' => 'Игнорировать уязвимости с низким уровнем риска',
'vulnerabilityProtectionDashboard.ignoreLowLevel.tooltip' => 'Игнорирование уязвимостей с низким уровнем риска означает, что они считаются обработанными при применении политик безопасности и отправке уведомлений.',
'vulnerabilityProtectionDashboard.vulnerabilitiesStatisticsFetch.error' => 'Не удалось загрузить данные о статистике уязвимостей сайта',
'vulnerabilityProtectionDashboard.vulnerabilitiesFilteringStatusUpdate.error' => 'Не удалось обновить данные о статусе фильтра уязвимостей сайта',
'vulnerabilityProtectionDashboard.protectionInfo.header' => "Для снижения уязвимости требуются определенные правила защиты. Вот почему правила защиты могут быть недоступны для определенной уязвимости:",
'vulnerabilityProtectionDashboard.protectionInfo.poweredBy' => 'Под управлением',
'vulnerabilityProtectionDashboard.protectionInfo.noPatch.title' => 'В разработке',
'vulnerabilityProtectionDashboard.protectionInfo.noPatch.description' => 'Правила для уязвимостей с высокой степенью воздействия обычно становятся доступными в течение нескольких часов после их обнаружения. Создание правил для уязвимостей с низкой степенью воздействия может занимать больше времени.',
'vulnerabilityProtectionDashboard.protectionInfo.unlikelyExploited.title' => 'Низкий риск',
'vulnerabilityProtectionDashboard.protectionInfo.unlikelyExploited.description' => 'Некоторые уязвимости оказывают минимальное воздействие или не обладают реальными возможностями нанесения вреда. Поскольку они не представляют реальной угрозы для сайтов, правила защиты от них не требуются.',
'vulnerabilityProtectionDashboard.protectionInfo.dbMatch.title' => 'Отсутствует в базе данных',
'vulnerabilityProtectionDashboard.protectionInfo.dbMatch.description' => 'Уязвимости, которые присутствуют только в базе данных WordPress или не сопоставлены с соответствующими записями из базы данных Patchstack, не получают правил защиты.',
'vulnerabilityProvider.button.tooltip' => 'See the details about this vulnerability on the {provider} website (opens in a new tab).',
'vulnerabilityProviderInfo.disclosureDateFormat' => '{dateTime, date, long}',
'vulnerabilityMitigation.disable.successMessage' => 'Уязвимый плагин деактивирован',
'vulnerabilityMitigation.disable.errorMessage' => 'Не удалось деактивировать плагин',
'vulnerabilityMitigation.update.successMessage' => 'Обновления установлены',
'vulnerabilityMitigation.update.errorMessage' => 'Не удалось установить обновления',
'vulnerabilityProtection.enabling.errorMessage' => 'Failed to enable Vulnerability Protection',
'vulnerabilityProtection.enabling.successMessage' => 'Vulnerability Protection enabled',
'vulnerabilityProtection.disabling.errorMessage' => 'Failed to disable Vulnerability Protection',
'vulnerabilityProtection.disabling.successMessage' => 'Vulnerability Protection disabled',
'widget.attacks.attacksCounter.label' => '{counter, plural, one {атака заблокирована} few {атаки заблокированы} other {атак заблокированы}}', // Attention! This string shouldn't contain number placeholder (#) itself
'widget.attacks.attacksCounter.tooltip' => 'Количество заблокированных попыток использовать уязвимости на вашем сайте за последние 365 дней.',
'widget.attacks.goToPluginButton.text' => 'Подробнее',
'widget.vulnerabilities.vulnerabilitiesDisplay.totalCounter.label' => '{counter, plural, one {уязвимость WordPress обнаружена} few {уязвимости WordPress обнаружены} other {уязвимостей WordPress обнаружены}}', // Attention! This string shouldn't contain number placeholder (#) itself
'widget.vulnerabilities.vulnerabilitiesDisplay.barLabel.critical' => '{count, plural, one {{displayedNumber} критическая} other {{displayedNumber} критических}}', // {displayedNumber} might contain, for example, '2.3k'; in that case {count} will be 2300
'widget.vulnerabilities.vulnerabilitiesDisplay.barLabel.high' => '{count, plural, one {{displayedNumber} высокая} other {{displayedNumber} высоких}}', // {displayedNumber} might contain, for example, '2.3k'; in that case {count} will be 2300
'widget.vulnerabilities.vulnerabilitiesDisplay.barLabel.medium' => '{count, plural, one {{displayedNumber} средняя} other {{displayedNumber} средних}}', // {displayedNumber} might contain, for example, '2.3k'; in that case {count} will be 2300
'widget.vulnerabilities.vulnerabilitiesDisplay.barLabel.low' => '{count, plural, one {{displayedNumber} низкая} other {{displayedNumber} низких}}', // {displayedNumber} might contain, for example, '2.3k'; in that case {count} will be 2300
'widget.vulnerabilities.goToPluginButton.text' => 'Подробнее',
'widget.vulnerabilities.empty.title' => 'На вашем сайте нет необработанных уязвимостей',
'widget.vulnerabilities.empty.subtitle' => 'Убедитесь, что защита от уязвимостей включена на вашем сайте, чтобы он всегда оставался в безопасности',
'widget.vulnerabilities.loadingFailed' => 'Не удалось загрузить данные об уязвимостях',
'widget.vulnerabilities.error.installationResponseEmpty' => 'Не удалось загрузить свойства сайта',
'widget.vulnerabilities.error.vulnerabilitiesResponseEmpty' => 'Нет информации об уязвимостях на этом сайте',
'wpPart.core' => 'Ядро',
'wpPart.plugin' => 'Плагин',
'wpPart.theme' => 'Тема',
'vulnerableComponentsTree.emptyState' => 'No vulnerable components',
'vulnerableComponentsTree.componentRow.title' => '{component} {version}', // Examples: 'WordPress 6.9', 'Duplicator 1.3.26'
'vulnerableComponentsTree.componentRow.riskReducedNotice' => 'Risk is mitigated by protection',
'vulnerableComponentsTree.componentRow.button.deactivatePlugin' => 'Деактивировать',
'vulnerableComponentsTree.componentRow.button.deactivatePlugin.confirmation.title' => 'Deactivate {pluginName}',
'vulnerableComponentsTree.componentRow.button.deactivatePlugin.confirmation.text' => 'Are you sure you want to deactivate {pluginName} plugin?',
'vulnerableComponentsTree.componentRow.button.deactivatePlugin.confirmation.confirm' => 'Деактивировать',
'vulnerableComponentsTree.componentRow.button.deactivatePlugin.confirmation.reject' => 'Отмена',
'vulnerableComponentsTree.componentRow.button.enableProtection' => 'Enable Protection',
'vulnerableComponentsTree.componentRow.button.update' => 'Обновить до версии {version}',
'vulnerableComponentsTree.componentRow.button.update.confirmation.title' => 'Update {assetName}',
'vulnerableComponentsTree.componentRow.button.update.confirmation.text' => 'Are you sure you want to update {assetName} to version {version}?',
'vulnerableComponentsTree.componentRow.button.update.confirmation.confirm' => 'Обновить',
'vulnerableComponentsTree.componentRow.button.update.confirmation.reject' => 'Отмена',
'vulnerableComponentsTree.vulnerabilityRow.fixedIn' => 'Fixed in {version}', // Version of the component (plugin, theme or WordPress core) where the vulnerability is fixed
'vulnerableComponentsTree.vulnerabilityRow.mitigated' => 'mitigated', // The context is: This vulnerability is mitigated. This text appears on the mitigated vulnerability rows.
'vulnerableComponentsTree.vulnerabilityRow.wordfenceCopyrightMessage' => 'This record contains material that is subject to copyright.',
'vulnerableComponentsTree.vulnerabilityRow.wordfenceCopyrightText' => "Copyright 2012-{currentYear} Defiant Inc. License: Defiant hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute this software vulnerability information. Any copy of the software vulnerability information you make for such purposes is authorized provided that you include a hyperlink to this vulnerability record and reproduce Defiant's copyright designation and this license in any such copy.",
'vulnerableComponentsTree.vulnerabilityRow.wordfenceCopyrightReadMore' => 'Read more.',
'confirmationDialog.disableProtection.title' => 'Disable Vulnerability Protection',
'confirmationDialog.disableProtection.mainText' => 'Are you sure you want to disable protection for {siteName}?',
'confirmationDialog.disableProtection.additionalLine1' => '{amount, plural, one {# vulnerability was mitigated since protection was enabled} other {# vulnerabilities were mitigated since protection was enabled}}',
'confirmationDialog.disableProtection.additionalLine2' => '{amount, plural, one {# attack blocked in the last 365 days} other {# attacks blocked in the last 365 days}}',
'confirmationDialog.disableProtection.button.confirm' => 'Disable',
'confirmationDialog.disableProtection.button.reject' => 'Отмена',
'purchaseProtectionDialog.wpt.initial.title' => 'Защита от уязвимостей',
'purchaseProtectionDialog.wpt.initial.subtitle' => "You'll be redirected to sign up or sign in to your WebPros account to continue the purchase",
'purchaseProtectionDialog.wpt.initial.description' => 'Vulnerability Protection automatically mitigates vulnerabilities in WordPress plugins, themes, and WordPress core without changing the site code.',
'purchaseProtectionDialog.wpt.initial.poweredBy' => 'Powered by {providerLogo}', // {providerLogo} is a clickable logo image of the provider
'purchaseProtectionDialog.wpt.initial.button.iHaveLicense' => 'I Have A License',
'purchaseProtectionDialog.wpt.initial.button.signInAndBuy' => 'Buy',
'purchaseProtectionDialog.wpt.waiting.title' => 'Waiting for purchase completion',
'purchaseProtectionDialog.wpt.waiting.description' => 'Complete your purchase in the newly opened tab. This dialog will update automatically once it\'s done.',
'purchaseProtectionDialog.wpt.waiting.button.cancel' => 'Отмена',
'purchaseProtectionDialog.wpt.success.title' => 'Subscription Activated',
'purchaseProtectionDialog.wpt.success.description' => 'Vulnerability protection will be enabled on your site shortly',
'purchaseProtectionDialog.wpt.success.suspended.title' => 'Subscription Suspended',
'purchaseProtectionDialog.wpt.success.suspended.description' => 'Your subscription was activated, but it is currently suspended. Vulnerability Protection will be available until the subscription is terminated. Please update your payment method to continue using Vulnerability Protection.',
'purchaseProtectionDialog.wpt.success.terminated.title' => 'Subscription Terminated',
'purchaseProtectionDialog.wpt.success.terminated.description' => "Your subscription was found, but it has been terminated. Vulnerability Protection isn't available. Please buy a new subscription to use Vulnerability Protection.",
'purchaseProtectionDialog.wpt.success.button.ok' => 'OK',
'purchaseProtectionDialog.wpt.success.button.manageSubscription' => 'Manage Subscription',
'purchaseProtectionDialog.wpt.success.button.buyNewLicense' => 'Buy New License',
'purchaseProtectionDialog.wpt.error.title' => 'Subscription Not Activated',
'purchaseProtectionDialog.wpt.error.description' => "We couldn't activate your subscription right now. If your purchase is complete, it should be activated shortly.",
'purchaseProtectionDialog.wpt.error.hint' => "To activate your subscription manually, use the \"{iHaveLicenseButtonTitle}\" button and enter the subscription ID sent to your email after purchase.",
'purchaseProtectionDialog.wpt.error.button.retry' => 'Try Again',
'purchaseProtectionDialog.wpt.error.button.cancel' => 'Close',
'purchaseProtectionDialog.wpt.toast.popupBlocked' => 'Make sure to allow pop-ups for this site to continue with the purchase',
'purchaseProtectionDialog.wpt.loadingWindow.message' => 'Loading, please wait a moment...',
'purchaseProtectionDialog.wpt.activation.title' => 'License Activation',
'purchaseProtectionDialog.wpt.activation.description' => 'Activate your license manually with your subscription ID:',
'purchaseProtectionDialog.wpt.activation.input.label' => 'Subscription ID',
'purchaseProtectionDialog.wpt.activation.button.activate' => 'Activate',
'purchaseProtectionDialog.wpt.activation.link.forgotId' => 'Forgot your subscription ID?',
'purchaseProtectionDialog.wpt.activationGuidDetected.title' => 'License Activation',
'purchaseProtectionDialog.wpt.activationGuidDetected.description' => 'Your subscription ID was detected automatically',
'purchaseProtectionDialog.wpt.activationGuidDetected.input.label' => 'Subscription ID',
'purchaseProtectionDialog.wpt.activationGuidDetected.link.forgetId' => 'Forget this subscription ID',
'purchaseProtectionDialog.wpt.activationGuidDetected.button.activateAnotherId' => 'Use another ID',
'purchaseProtectionDialog.wpt.activationGuidDetected.button.activate' => 'Activate',
'purchaseProtectionDialog.custom.initial.title' => 'Защита от уязвимостей',
'purchaseProtectionDialog.custom.initial.description' => 'Vulnerability Protection automatically mitigates vulnerabilities in WordPress plugins, themes, and WordPress core without changing the site code.',
'purchaseProtectionDialog.custom.initial.poweredBy' => 'Powered by {providerLogo}', // {providerLogo} is a clickable logo image of the provider
'purchaseProtectionDialog.custom.initial.button.buy' => 'Buy',
'purchaseProtectionDialog.custom.afterPurchase.title' => 'Complete Your Purchase',
'purchaseProtectionDialog.custom.afterPurchase.description' => 'If you have completed the purchase, reload the page to apply the changes.',
'purchaseProtectionDialog.custom.afterPurchase.button.reload' => 'Reload',
'purchaseProtectionDialog.custom.toast.invalidUrl' => 'Purchase URL is not valid. Please contact your hosting provider.',
'subscriptionsPage.title' => 'Subscriptions',
'subscriptionsPage.backButton.ariaLabel' => 'Back',
'subscriptionsPage.vpCard.title' => 'Защита от уязвимостей',
'subscriptionsPage.vpCard.description' => 'Non-invasive, automated, lightweight protection against WordPress vulnerabilities.',
'subscriptionsPage.vpCard.subscriptionId' => 'Subscription ID',
'subscriptionsPage.vpCard.lastPayment' => 'Last payment',
'subscriptionsPage.vpCard.nextPayment' => 'Next payment',
'subscriptionsPage.vpCard.dateTimeFormat' => '{value, date, medium} {value, time, short}',
'subscriptionsPage.vpCard.button.manageSubscription' => 'Manage Subscription',
'subscriptionsPage.vpCard.copySubscriptionId' => 'Copy subscription ID',
'subscriptionsPage.vpCard.copySuccess' => 'Subscription ID copied to clipboard',
'subscriptionsPage.vpCard.statusChip.suspended' => 'Suspended',
'subscriptionsPage.vpCard.statusChip.terminated' => 'Terminated',
'subscriptionsPage.vpCard.button.forgetLicense' => 'Forget This License',
'subscriptionsPage.vpCard.button.buyNewLicense' => 'Buy New License',
'subscriptionsPage.empty.title' => 'No Subscriptions Yet',
'subscriptionsPage.empty.description' => 'You don\'t have any active subscriptions.',
];
// This function is only to make Psalm check the types of $messagesBackend and $messagesFrontend
$dummyFunc =
/**
* @return list{array, array}
*/
function() use ($messagesBackend, $messagesFrontend)
{
return [
$messagesBackend,
$messagesFrontend
];
};