diff --git a/DuckDuckGo/ru.lproj/HomeRow.strings b/DuckDuckGo/ru.lproj/HomeRow.strings
index 53f5af4463..4a4265b120 100644
--- a/DuckDuckGo/ru.lproj/HomeRow.strings
+++ b/DuckDuckGo/ru.lproj/HomeRow.strings
@@ -8,5 +8,5 @@
"f6f-QY-3H3.text" = "Добавьте DuckDuckGo на док-панель для быстрого и удобного доступа!";
/* Class = "UILabel"; text = "Add DuckDuckGo to Home"; ObjectID = "Tah-vQ-mf9"; */
-"Tah-vQ-mf9.text" = "Добавьте DuckDuckGo на домашний экран";
+"Tah-vQ-mf9.text" = "Добавьте DuckDuckGo на главный экран";
diff --git a/DuckDuckGo/ru.lproj/Localizable.strings b/DuckDuckGo/ru.lproj/Localizable.strings
index 3c22edb920..2fb34dfd2e 100644
--- a/DuckDuckGo/ru.lproj/Localizable.strings
+++ b/DuckDuckGo/ru.lproj/Localizable.strings
@@ -107,7 +107,7 @@
"addWidget.description" = "Быстрый доступ к конфиденциальному поиску и любимым сайтам.";
/* No comment provided by engineer. */
-"addWidget.settings.firstParagraph" = "Удерживайте нажатие на домашнем экране, чтобы запустить режим настройки.";
+"addWidget.settings.firstParagraph" = "Удерживайте нажатие на главном экране, чтобы запустить режим настройки.";
/* Replacement string is a plus button icon. */
"addWidget.settings.secondParagraph.%@" = "Нажмите кнопку «плюс» %@.";
@@ -125,7 +125,7 @@
"alert.title.bookmarkAll" = "Добавить все вкладки в закладки?";
/* Disable protection alert */
-"alert.title.disable.protection" = "Добавить в незащищенные сайты";
+"alert.title.disable.protection" = "Добавить в незащищённые сайты";
/* Disable potection alert placeholder - leave as it is */
"alert.title.disable.protection.placeholder" = "www.example.com";
@@ -143,10 +143,10 @@
"auth.alert.login.button" = "Войти";
/* Authentication Alert - populated with a domain name */
-"auth.alert.message.encrypted" = "Войдите в %@. Ваши учетные данные надежно защищены.";
+"auth.alert.message.encrypted" = "Войдите в %@. Ваши учётные данные надёжно защищены.";
/* Authentication Alert - populated with a domain name */
-"auth.alert.message.plain" = "Войдите в %@. Ваш пароль передается по незащищенному каналу (соединение не зашифровано).";
+"auth.alert.message.plain" = "Войдите в %@. Ваш пароль передаётся по незащищённому каналу (соединение не зашифровано).";
/* Authentication Password field placeholder */
"auth.alert.password.placeholder" = "Пароль";
@@ -158,7 +158,7 @@
"auth.alert.username.placeholder" = "Имя пользователя";
/* No comment provided by engineer. */
-"autoclear.off" = "Выключено";
+"autoclear.off" = "Отключено";
/* No comment provided by engineer. */
"autoclear.on" = "Включено";
@@ -176,7 +176,7 @@
"autofill.hide-password" = "Скрыть пароль";
/* Disable action for alert when asking the user if they want to keep using autofill */
-"autofill.keep-enabled.alert.disable" = "Выключить";
+"autofill.keep-enabled.alert.disable" = "Отключить";
/* Confirm action for alert when asking the user if they want to keep using autofill */
"autofill.keep-enabled.alert.keep-using" = "Сохранять";
@@ -191,10 +191,10 @@
"autofill.login-save-action-button.toast" = "Просмотр";
/* Message displayed after saving an autofill login */
-"autofill.login-saved.toast" = "Логин сохранен";
+"autofill.login-saved.toast" = "Логин сохранён";
/* Message displayed after updating an autofill login */
-"autofill.login-updated.toast" = "Логин обновлен";
+"autofill.login-updated.toast" = "Логин обновлён";
/* Menu item text for copying autofill login details */
"autofill.logins.copy-prompt" = "Копировать %@";
@@ -272,16 +272,16 @@
"autofill.logins.details.username" = "Имя пользователя";
/* Subtitle for view displayed when autofill has no items */
-"autofill.logins.empty-view.subtitle" = "Учетные данные сохранены и защищены на вашем устройстве.";
+"autofill.logins.empty-view.subtitle" = "Учётные данные сохранены и защищены на вашем устройстве.";
/* Title for view displayed when autofill has no items */
-"autofill.logins.empty-view.title" = "Сохраненных логинов пока нет";
+"autofill.logins.empty-view.title" = "Сохранённых логинов пока нет";
/* Cancel button for auth when opening login list */
"autofill.logins.list.auth.cancel" = "Отменить";
/* Reason for auth when opening login list */
-"autofill.logins.list.auth.reason" = "Чтобы открыть сохраненные логины, разблокируйте устройство";
+"autofill.logins.list.auth.reason" = "Чтобы открыть сохранённые логины, разблокируйте устройство";
/* Title for close navigation button */
"autofill.logins.list.close-title" = "Закрыть";
@@ -290,10 +290,10 @@
"autofill.logins.list.enable" = "Сохранить и заполнять автоматически";
/* Toast message when a login item is deleted */
-"autofill.logins.list.login-deleted-message" = "Логин для %@ удален";
+"autofill.logins.list.login-deleted-message" = "Логин для %@ удалён";
/* Toast message when a login item without a title is deleted */
-"autofill.logins.list.login-deleted-message-no-title" = "Логин удален";
+"autofill.logins.list.login-deleted-message-no-title" = "Логин удалён";
/* Placeholder for search field on autofill login listing */
"autofill.logins.list.search-placeholder" = "Поиск логинов";
@@ -314,7 +314,7 @@
"autofill.logins.prompt.auth.cancel" = "Отменить";
/* Reason for auth during login prompt */
-"autofill.logins.prompt.auth.reason" = "Разблокируйте, чтобы использовать сохраненный логин";
+"autofill.logins.prompt.auth.reason" = "Разблокируйте, чтобы использовать сохранённый логин";
/* Title for section of autofill logins that are an exact match to the current website */
"autofill.logins.prompt.exact.match.title" = "С этого сайта";
@@ -329,7 +329,7 @@
"autofill.logins.prompt.password.button.title" = "Пароль %@";
/* Title for autofill login prompt */
-"autofill.logins.prompt.title" = "Использовать сохраненный логин?";
+"autofill.logins.prompt.title" = "Использовать сохранённый логин?";
/* Subtitle displayed when there are no results on Autofill search, example : No Result (Title) for Duck (Subtitle) */
"autofill.logins.search.no-results.subtitle" = "по запросу «%@»";
@@ -338,10 +338,10 @@
"autofill.logins.search.no-results.title" = "Нет результатов";
/* Subtitle for prompt to use suggested strong password for creating a login */
-"autofill.password-generation-prompt.subtitle" = "Пароль будет сохранен в разделе «Логины».";
+"autofill.password-generation-prompt.subtitle" = "Пароль будет сохранён в разделе «Логины».";
/* Title for prompt to use suggested strong password for creating a login */
-"autofill.password-generation-prompt.title" = "Использовать пароль, сгенерированный DuckDuckGo?";
+"autofill.password-generation-prompt.title" = "Использовать пароль, созданный DuckDuckGo?";
/* Button title choosing to use the suggested generated password for creating a login */
"autofill.password-generation-prompt.use-generated-password.cta" = "Использовать предложенный";
@@ -350,7 +350,7 @@
"autofill.password-generation-prompt.use-own-password.cta" = "Создать собственный";
/* Message displayed on modal asking for the user to save the login for the first time */
-"autofill.save-login.new-user.message" = "Учетные данные надежно хранятся на вашем устройстве, а проконтролировать их можно в меню «Логины» в «Настройках».";
+"autofill.save-login.new-user.message" = "Учётные данные надёжно хранятся на вашем устройстве, а проконтролировать их можно в меню «Логины» в «Настройках».";
/* Title displayed on modal asking for the user to save the login for the first time */
"autofill.save-login.new-user.title" = "Хотите, чтобы DuckDuckGo сохранил логин?";
@@ -374,7 +374,7 @@
"autofill.show-password" = "Показать пароль";
/* Message displayed on modal asking for the user to update the password */
-"autofill.update-password.message" = "DuckDuckGo обновит логин, сохраненный на вашем устройстве.";
+"autofill.update-password.message" = "DuckDuckGo обновит логин, сохранённый на вашем устройстве.";
/* Confirm CTA displayed on modal asking for the user to update the password */
"autofill.update-password.save.CTA" = "Обновить пароль";
@@ -557,19 +557,19 @@
"dax.onboarding.browsing.one.tracker.cta" = "Дай пять!";
/* First paramter is a string - network name, 2nd parameter is a string - domain name */
-"dax.onboarding.browsing.site.is.major.tracker" = "Внимание! Мы не можем скрыть вашу активность от %1$@ на %2$@.\n\nИспользуйте наш браузер, и мы сократим объем собираемой о вас информации, заблокировав трекеры %1$@ на других сайтах.";
+"dax.onboarding.browsing.site.is.major.tracker" = "Внимание! Мы не можем скрыть вашу активность от %1$@ на %2$@.\n\nИспользуйте наш браузер, и мы сократим объём собираемой о вас информации, заблокировав трекеры %1$@ на других сайтах.";
/* No comment provided by engineer. */
"dax.onboarding.browsing.site.is.major.tracker.cta" = "Понятно";
/* Parameters are domain names (strings) */
-"dax.onboarding.browsing.site.owned.by.major.tracker" = "Внимание! Так как %1$@ принадлежит сети %2$@, мы не можем скрыть вашу активность на этом ресурсе.\n\nИспользуйте наш браузер, и мы сократим объем собираемой о вас информации, заблокировав трекеры %2$@ на других сайтах.";
+"dax.onboarding.browsing.site.owned.by.major.tracker" = "Внимание! Так как %1$@ принадлежит сети %2$@, мы не можем скрыть вашу активность на этом ресурсе.\n\nИспользуйте наш браузер, и мы сократим объём собираемой о вас информации, заблокировав трекеры %2$@ на других сайтах.";
/* Got It */
"dax.onboarding.browsing.site.owned.by.major.tracker.cta" = "Понятно";
/* No comment provided by engineer. */
-"dax.onboarding.browsing.without.trackers" = "Вы жмете на кнопки и листаете страницы — мы блокируем трекеры.\n\nПользуйтесь сайтами без страха!";
+"dax.onboarding.browsing.without.trackers" = "Вы жмёте на кнопки и листаете страницы — мы блокируем трекеры.\n\nПользуйтесь сайтами без страха!";
/* No comment provided by engineer. */
"dax.onboarding.browsing.without.trackers.cta" = "Понятно";
@@ -590,7 +590,7 @@
"dax.onboarding.home.add.favorite.accessible" = "Посещайте любимые сайты в мгновение ока! Посетите один из своих любимых сайтов. Затем нажмите кнопку меню и выберите «Добавить в избранное».";
/* No comment provided by engineer. */
-"dax.onboarding.home.initial" = "А теперь попробуйте заглянуть на любимый сайт!\n\nМы заблокируем трекеры и пресечем слежку. И даже постараемся повысить безопасность соединения 🔒";
+"dax.onboarding.home.initial" = "А теперь попробуйте заглянуть на любимый сайт!\n\nМы заблокируем трекеры и пресечём слежку. И даже постараемся повысить безопасность соединения 🔒";
/* ad = advertisment */
"dax.onboarding.home.subsequent" = "Проще некуда!\n\nПросматривать сайтам с нами — значит навсегда попрощаться с назойливой рекламой 👍";
@@ -650,7 +650,7 @@
"downloads.message.download-complete" = "Завершена загрузка файла %@";
/* Message confirming the file was deleted. Parameter is file's filename */
-"downloads.message.download-deleted" = "Файл %@ удален";
+"downloads.message.download-deleted" = "Файл %@ удалён";
/* Message informing that the download has failed due to connection issues */
"downloads.message.download-failed" = "Ошибка загрузки. Проверьте подключение к интернету.";
@@ -695,10 +695,10 @@
"email.settings.enabled" = "Включено";
/* Footer text for the email feature */
-"email.settings.footer" = "Снятие почтовой защиты на данном устройстве лишит вас возможности вносить свой личный адрес на Duck или свежесгенерированный приватный адрес Duck в поле для электронной почты при посещении сайтов.
Если вы хотите полностью удалить свои адреса Duck, задать нам вопрос или отправить отзывы и предложения, пишите нам: support@duck.com.";
+"email.settings.footer" = "Снятие почтовой защиты на данном устройстве лишит вас возможности вносить свой личный адрес на Duck или свежесозданный приватный адрес Duck в поле для электронной почты при посещении сайтов.
Если вы хотите полностью удалить свои адреса Duck, задать нам вопрос или отправить отзывы и предложения, пишите нам: support@duck.com.";
/* Signed out state for the email feature */
-"email.settings.off" = "Выключено";
+"email.settings.off" = "Отключено";
/* Subtitle for the email settings cell */
"email.settings.subtitle" = "Блокировка почтовых трекеров и скрытие адреса";
@@ -710,7 +710,7 @@
"email.signup-prompt.alert.exit" = "Выйти из настройки";
/* Title for exiting the Email Protection signup early alert */
-"email.signup-prompt.alert.title" = "Если вы прервете настройку, ваш адрес Duck Address не сохранится!";
+"email.signup-prompt.alert.title" = "Если вы прервёте настройку, ваш адрес Duck Address не сохранится!";
/* Button title choosing not to sign up for email protection and not to be prompted again */
"email.signup-prompt.do-not-signup-button.cta" = "Больше не показывать";
@@ -758,7 +758,7 @@
"feedback.browserFeatures.images" = "Работа с изображениями";
/* No comment provided by engineer. */
-"feedback.browserFeatures.navigation" = "Переход вперед и назад и/или обновление страницы";
+"feedback.browserFeatures.navigation" = "Переход вперёд и назад и/или обновление страницы";
/* No comment provided by engineer. */
"feedback.browserFeatures.other" = "Ничего из перечисленного";
@@ -926,7 +926,7 @@
"fireButtonAnimation.airstream.name" = "Воздушный поток";
/* No comment provided by engineer. */
-"fireButtonAnimation.fireRising.name" = "Инферно";
+"fireButtonAnimation.fireRising.name" = "Пламя";
/* No comment provided by engineer. */
"fireButtonAnimation.none.name" = "Без анимации";
@@ -935,7 +935,7 @@
"fireButtonAnimation.waterSwirl.name" = "Водоворот";
/* No comment provided by engineer. */
-"home.row.onboarding.header" = "Добавьте DuckDuckGo на домашний экран!";
+"home.row.onboarding.header" = "Добавьте DuckDuckGo на главный экран!";
/* No comment provided by engineer. */
"home.row.reminder.message" = "Добавьте DuckDuckGo на док-панель для быстрого доступа!";
@@ -947,7 +947,7 @@
"homeTab.searchAndFavorites" = "Введите поисковый запрос или адрес сайта";
/* Home tab title */
-"homeTab.title" = "Домашняя";
+"homeTab.title" = "Главная";
/* No comment provided by engineer. */
"keyCommandAddBookmark" = "Добавить закладку";
@@ -959,7 +959,7 @@
"keyCommandBrowserBack" = "Назад";
/* No comment provided by engineer. */
-"keyCommandBrowserForward" = "Вперед";
+"keyCommandBrowserForward" = "Вперёд";
/* No comment provided by engineer. */
"keyCommandClose" = "Закрыть";
@@ -1076,7 +1076,7 @@
"onboarding.widgets.continueButton" = "Добавить виджет";
/* No comment provided by engineer. */
-"onboarding.widgets.header" = "Пользоваться DuckDuckGo стало еще проще.";
+"onboarding.widgets.header" = "Пользоваться DuckDuckGo стало ещё проще.";
/* No comment provided by engineer. */
"onboarding.widgets.skipButton" = "Позже";
@@ -1106,16 +1106,16 @@
"open.externally.failed" = "Приложение для открытия этой ссылки не найдено";
/* No comment provided by engineer. */
-"preserveLogins.domain.list.footer" = "Чтобы вам не приходилось каждый раз входить в свою учетную запись, сайты используют куки-файлы. Если сделать сайт огнеупорным, мы не будем стирать его куки-файлы, даже если вы воспользуетесь кнопкой «Огонь». Но мы по-прежнему будем блокировать сторонние трекеры, в том числе на огнеупорных сайтах.";
+"preserveLogins.domain.list.footer" = "Чтобы вам не приходилось каждый раз входить в свою учётную запись, сайты используют куки-файлы. Если сделать сайт огнеупорным, мы не будем стирать его куки-файлы, даже если вы воспользуетесь кнопкой «Огонь». Но мы по-прежнему будем блокировать сторонние трекеры, в том числе на огнеупорных сайтах.";
/* Section header above Fireproofed websites list */
"preserveLogins.domain.list.title" = "Огнеупорные сайты";
/* Alert message explaining to users that the benefit of fireproofing a site is that they will be kept signed in */
-"preserveLogins.fireproof.message" = "Вам не придется заново входить в свою учетную запись даже после применения кнопки «Огонь».";
+"preserveLogins.fireproof.message" = "Вам не придётся заново входить в свою учётную запись даже после применения кнопки «Огонь».";
/* Parameter is a string - domain name. Alert title prompting user to fireproof a site so they can stay signed in */
-"preserveLogins.fireproof.title" = "Сделать сайт %@ огнеупорным, чтобы не выходить из учетной записи?";
+"preserveLogins.fireproof.title" = "Сделать сайт %@ огнеупорным, чтобы не выходить из учётной записи?";
/* Confirm fireproofing action */
"preserveLogins.menu.confirm" = "Сделать огнеупорным";
@@ -1157,7 +1157,7 @@
"prompt.custom.url.scheme.open" = "Открыть";
/* No comment provided by engineer. */
-"prompt.custom.url.scheme.prompt" = "Выйти из DuckDuckGo для просмотра этого контента?";
+"prompt.custom.url.scheme.prompt" = "Выйти из DuckDuckGo для просмотра этого содержимого?";
/* Alert title */
"prompt.custom.url.scheme.title" = "Открыть в другом приложении?";
@@ -1175,7 +1175,7 @@
"section.title.favorites" = "Избранное";
/* No comment provided by engineer. */
-"settings.about.text" = "DuckDuckGo задает новый стандарт доверия в сети.\n\nНаш браузер оснащен всеми функциями защиты личных данных в интернете, включая блокировку трекеров, надежное шифрование и конфиденциальный поиск DuckDuckGo.\n\nИнтернет — не место для постоянной слежки, а скрыться от посторонних глаз должно быть не сложнее, чем закрыть жалюзи на окнах.";
+"settings.about.text" = "DuckDuckGo задаёт новый стандарт доверия в сети.\n\nНаш браузер оснащён всеми функциями защиты личных данных в интернете, включая блокировку трекеров, надёжное шифрование и конфиденциальный поиск DuckDuckGo.\n\nИнтернет — не место для постоянной слежки, а скрыться от посторонних глаз должно быть не сложнее, чем закрыть жалюзи на окнах.";
/* Report a Broken Site screen confirmation button */
"siteFeedback.buttonText" = "Отправить жалобу";
@@ -1196,13 +1196,13 @@
"siteFeedback.urlPlaceholder" = "На каком сайте возникает проблема?";
/* Accessibility label on remove button */
-"tab.close.home" = "Закрыть домашнюю вкладку";
+"tab.close.home" = "Закрыть главную вкладку";
/* Accesibility label: first string is website title, second is address */
"tab.close.with.title.and.address" = "Закрыть сайт «%1$@» по адресу %2$@";
/* Accessibility label on tab cell */
-"tab.open.home" = "Открыть домашнюю вкладку";
+"tab.open.home" = "Открыть главную вкладку";
/* Accesibility label: first string is website title, second is address */
"tab.open.with.title.and.address" = "Открыть сайт «%1$@» по адресу %2$@";
@@ -1217,7 +1217,7 @@
"textSize.footer" = "Размер текста — %@";
/* Dark Theme entry */
-"theme.acc.dark" = "Темная";
+"theme.acc.dark" = "Тёмная";
/* Short entry for Default System theme */
"theme.acc.default" = "Тема системы";
@@ -1226,7 +1226,7 @@
"theme.acc.light" = "Светлая";
/* Dark Theme entry */
-"theme.name.dark" = "Темная";
+"theme.name.dark" = "Тёмная";
/* Entry for Default System theme */
"theme.name.default" = "По умолчанию";
diff --git a/DuckDuckGo/ru.lproj/Localizable.stringsdict b/DuckDuckGo/ru.lproj/Localizable.stringsdict
index 33e60942d5..0c2fb3fb62 100644
--- a/DuckDuckGo/ru.lproj/Localizable.stringsdict
+++ b/DuckDuckGo/ru.lproj/Localizable.stringsdict
@@ -33,25 +33,25 @@
NSStringFormatValueTypeKey
d
one
- *%2$@, %3$@* и еще *1 сервис* пытались вести за вами слежку.
+ *%2$@, %3$@* и ещё *1 сервис* пытались вести за вами слежку.
Но мы их заблокировали!
☝️ Заходя на новый сайт, вы всегда можете проверить, шпионит ли он за вами: просто загляните в адресную строку.
few
- *%2$@, %3$@* и еще *%1$d сервиса* пытались вести за вами слежку.
+ *%2$@, %3$@* и ещё *%1$d сервиса* пытались вести за вами слежку.
Но мы их заблокировали!
☝️ Заходя на новый сайт, вы всегда можете проверить, шпионит ли он за вами: просто загляните в адресную строку.
many
- *%2$@, %3$@* и еще *%1$d сервисов* пытались вести за вами слежку.
+ *%2$@, %3$@* и ещё *%1$d сервисов* пытались вести за вами слежку.
Но мы их заблокировали!
☝️ Заходя на новый сайт, вы всегда можете проверить, шпионит ли он за вами: просто загляните в адресную строку.
other
- *%2$@, %3$@* и другие сервисы *(еще %1$d)* пытались вести за вами слежку.
+ *%2$@, %3$@* и другие сервисы *(ещё %1$d)* пытались вести за вами слежку.
Но мы их заблокировали!
@@ -167,9 +167,13 @@
NSStringFormatSpecTypeKey
NSStringPluralRuleType
other
- %d tracking attempts
+ Попыток отслеживания: %d
one
- %d tracking attempt
+ %d попытка отслеживания
+ few
+ %d попытки отслеживания
+ many
+ %d попыток отслеживания
NSStringFormatValueTypeKey
d
@@ -183,9 +187,13 @@
NSStringFormatSpecTypeKey
NSStringPluralRuleType
other
- %d tracking attempts
+ Попыток отслеживания: %d
one
- %d tracking attempt
+ %d попытка отслеживания
+ few
+ %d попытки отслеживания
+ many
+ %d попыток отслеживания
NSStringFormatValueTypeKey
d
diff --git a/DuckDuckGo/ru.lproj/Main.strings b/DuckDuckGo/ru.lproj/Main.strings
index ad87d393bf..1f7e652537 100644
--- a/DuckDuckGo/ru.lproj/Main.strings
+++ b/DuckDuckGo/ru.lproj/Main.strings
@@ -1,5 +1,5 @@
/* Class = "UIBarButtonItem"; title = "Browse Forward"; ObjectID = "cUp-YP-aMf"; */
-"cUp-YP-aMf.title" = "Вперед";
+"cUp-YP-aMf.title" = "Вперёд";
/* Class = "UIBarButtonItem"; title = "Tab Switcher"; ObjectID = "K7o-WL-SC5"; */
"K7o-WL-SC5.title" = "Переключатель вкладок";
diff --git a/DuckDuckGo/ru.lproj/OmniBar.strings b/DuckDuckGo/ru.lproj/OmniBar.strings
index 81efa98a8e..17fc161a33 100644
--- a/DuckDuckGo/ru.lproj/OmniBar.strings
+++ b/DuckDuckGo/ru.lproj/OmniBar.strings
@@ -2,7 +2,7 @@
"1rB-5w-de3.accessibilityLabel" = "Настройки";
/* Class = "UIButton"; accessibilityLabel = "Browse forward"; ObjectID = "aXg-p3-oeq"; */
-"aXg-p3-oeq.accessibilityLabel" = "Вперед";
+"aXg-p3-oeq.accessibilityLabel" = "Вперёд";
/* Class = "UIButton"; accessibilityLabel = "Clear Text"; ObjectID = "Dt8-We-5tV"; */
"Dt8-We-5tV.accessibilityLabel" = "Удалить текст";
diff --git a/DuckDuckGo/ru.lproj/Onboarding.strings b/DuckDuckGo/ru.lproj/Onboarding.strings
index 4edd5f11b2..e3d413dc85 100644
--- a/DuckDuckGo/ru.lproj/Onboarding.strings
+++ b/DuckDuckGo/ru.lproj/Onboarding.strings
@@ -1,5 +1,5 @@
/* Class = "UIViewController"; title = "Open links with peace of mind, every time."; ObjectID = "0MQ-7J-rAM"; */
-"0MQ-7J-rAM.title" = "Открывайте ссылки, ни о чем не беспокоясь.";
+"0MQ-7J-rAM.title" = "Открывайте ссылки, ни о чём не беспокоясь.";
/* Class = "UIViewController"; title = "Quickly search or visit your favorite sites, all while protecting your privacy."; ObjectID = "3xN-1o-4I4"; */
"3xN-1o-4I4.title" = "Быстрый поиск и посещение любимых сайтов без всякой слежки.";
diff --git a/DuckDuckGo/ru.lproj/PrivacyDashboard.strings b/DuckDuckGo/ru.lproj/PrivacyDashboard.strings
index 75181675d4..109b2cdf97 100644
--- a/DuckDuckGo/ru.lproj/PrivacyDashboard.strings
+++ b/DuckDuckGo/ru.lproj/PrivacyDashboard.strings
@@ -65,7 +65,7 @@
"F5w-e3-JfY.text" = "www.example.com";
/* Class = "UIButton"; normalTitle = "Unprotected Sites"; ObjectID = "fqL-1Q-ilH"; */
-"fqL-1Q-ilH.normalTitle" = "Незащищенные сайты";
+"fqL-1Q-ilH.normalTitle" = "Незащищённые сайты";
/* Class = "UILabel"; text = "Networks Blocked"; ObjectID = "Ge6-9h-2z5"; */
"Ge6-9h-2z5.text" = "Заблокированы сети трекеров";
@@ -86,10 +86,10 @@
"J3L-KE-1Vb.text" = "Метка";
/* Class = "UILabel"; text = "No privacy practices found"; ObjectID = "k0S-dU-EUe"; */
-"k0S-dU-EUe.text" = "Уровень конфиденциальности не определен";
+"k0S-dU-EUe.text" = "Уровень конфиденциальности не определён";
/* Class = "UIButton"; normalTitle = "Unprotected Sites"; ObjectID = "Kme-pZ-l7N"; */
-"Kme-pZ-l7N.normalTitle" = "Незащищенные сайты";
+"Kme-pZ-l7N.normalTitle" = "Незащищённые сайты";
/* Class = "UILabel"; text = "Label"; ObjectID = "Mv2-oP-SQd"; */
"Mv2-oP-SQd.text" = "Метка";
@@ -122,7 +122,7 @@
"Y3q-u7-IeX.text" = "ЧАСТОТА БЛОКИРОВАНИЯ";
/* Class = "UILabel"; text = "8 Other Domains Loaded"; ObjectID = "YDP-RX-LaV"; */
-"YDP-RX-LaV.text" = "Загружено еще 8 доменов";
+"YDP-RX-LaV.text" = "Загружено ещё 8 доменов";
/* Class = "UILabel"; text = "Encrypted Connection"; ObjectID = "zz1-Q4-Fxr"; */
"zz1-Q4-Fxr.text" = "Зашифрованное соединение";
diff --git a/DuckDuckGo/ru.lproj/Settings.strings b/DuckDuckGo/ru.lproj/Settings.strings
index 174c044a8e..151d78e77d 100644
--- a/DuckDuckGo/ru.lproj/Settings.strings
+++ b/DuckDuckGo/ru.lproj/Settings.strings
@@ -86,7 +86,7 @@
"dj9-vh-Rig.headerTitle" = "Внешний вид";
/* Class = "UITableViewSection"; footerTitle = "If Touch ID, Face ID or a system passcode is set, you’ll be requested to unlock the app when opening."; ObjectID = "dOj-jn-mSN"; */
-"dOj-jn-mSN.footerTitle" = "Если система защищена технологией Touch ID или Face ID либо кодом доступа, при запуске вам придется разблокировать приложение.";
+"dOj-jn-mSN.footerTitle" = "Если система защищена технологией Touch ID или Face ID либо кодом доступа, при запуске вам придётся разблокировать приложение.";
/* Class = "UITableViewSection"; headerTitle = "Privacy"; ObjectID = "dOj-jn-mSN"; */
"dOj-jn-mSN.headerTitle" = "Настройки конфиденциальности";
@@ -122,7 +122,7 @@
"fdJ-b1-Des.title" = "Автоудаление данных";
/* Class = "UILabel"; text = "Unprotected Sites"; ObjectID = "FHC-1z-Z3v"; */
-"FHC-1z-Z3v.text" = "Незащищенные сайты";
+"FHC-1z-Z3v.text" = "Незащищённые сайты";
/* Class = "UITableViewSection"; headerTitle = "About"; ObjectID = "FpT-1C-xtx"; */
"FpT-1C-xtx.headerTitle" = "О нас";
@@ -131,7 +131,7 @@
"fV3-86-QQj.title" = "Глобальный контроль конфиденциальности (GPC)";
/* Class = "UILabel"; text = "Add Widget to Home Screen"; ObjectID = "Fxu-zn-51Z"; */
-"Fxu-zn-51Z.text" = "Добавьте виджет на домашний экран";
+"Fxu-zn-51Z.text" = "Добавьте виджет на главный экран";
/* Class = "UILabel"; text = "Fire Button Animation"; ObjectID = "gBo-Cu-e2k"; Note = "Fire button animation settings item"; */
"gBo-Cu-e2k.text" = "Aнимация кнопки «Огонь»";
@@ -170,7 +170,7 @@
"OfP-Kw-IOk.text" = "Огнеупорных сайтов нет";
/* Class = "UINavigationItem"; title = "Unprotected Sites"; ObjectID = "OHV-qC-tL9"; */
-"OHV-qC-tL9.title" = "Незащищенные сайты";
+"OHV-qC-tL9.title" = "Незащищённые сайты";
/* Class = "UILabel"; text = "About DuckDuckGo"; ObjectID = "oM7-1o-9oY"; */
"oM7-1o-9oY.text" = "Несколько слов о DuckDuckGo";
@@ -212,7 +212,7 @@
"vPz-uO-6gB.text" = "Глобальный контроль конфиденциальности (GPC)";
/* Class = "UITableViewSection"; footerTitle = "App exit is defined by swiping the app to close it while inactivity is when the app is in the background."; ObjectID = "vSJ-YJ-bBs"; Note = "Timing setting for automatic data clearing function"; */
-"vSJ-YJ-bBs.footerTitle" = "Под выходом из приложения подразумевается закрытие свайпом, а под бездействием — работа в фоновом режиме.";
+"vSJ-YJ-bBs.footerTitle" = "Под выходом из приложения подразумевается закрытие проводя пальцем, а под бездействием — работа в фоновом режиме.";
/* Class = "UITableViewSection"; headerTitle = "Desired timing"; ObjectID = "vSJ-YJ-bBs"; Note = "Timing setting for automatic data clearing function"; */
"vSJ-YJ-bBs.headerTitle" = "Предпочитаемое время";
@@ -242,8 +242,8 @@
"zvh-2e-Wmz.text" = "Сайты без защиты конфиденциальности.";
/* Class = "UITableViewController"; title = "Home Screen"; ObjectID = "zWP-d3-nVc"; */
-"zWP-d3-nVc.title" = "Домашний экран";
+"zWP-d3-nVc.title" = "Главный экран";
/* Class = "UINavigationItem"; title = "Add Widget to Home Screen"; ObjectID = "zZa-pF-SHk"; */
-"zZa-pF-SHk.title" = "Добавьте виджет на домашний экран";
+"zZa-pF-SHk.title" = "Добавьте виджет на главный экран";
diff --git a/DuckDuckGoTests/MockFiles/remote-messaging-config-example.json b/DuckDuckGoTests/MockFiles/remote-messaging-config-example.json
index b20e33e6db..6f901bb698 100644
--- a/DuckDuckGoTests/MockFiles/remote-messaging-config-example.json
+++ b/DuckDuckGoTests/MockFiles/remote-messaging-config-example.json
@@ -65,8 +65,8 @@
"descriptionText": "Descripción."
},
"ru": {
- "titleText": "Here goes a title",
- "descriptionText": "description"
+ "titleText": "А сюда и название",
+ "descriptionText": "описание"
}
}
},
diff --git a/Widgets/ru.lproj/Localizable.strings b/Widgets/ru.lproj/Localizable.strings
index 137b724614..9536b89934 100644
--- a/Widgets/ru.lproj/Localizable.strings
+++ b/Widgets/ru.lproj/Localizable.strings
@@ -17,7 +17,7 @@
"lock.screen.widget.fire.description" = "Моментальное удаление истории просмотров и запуск нового приватного поиска в DuckDuckGo.";
/* Title shown to the user when adding the Fire Button lock screen widget */
-"lock.screen.widget.fire.title" = "Fire Button";
+"lock.screen.widget.fire.title" = "Кнопка «Тревога»";
/* Description shown to the user when adding the Search lock screen widget */
"lock.screen.widget.search.description" = "Моментальный запуск приватного поиска в DuckDuckGo.";
@@ -38,7 +38,7 @@
"widget.gallery.search.and.favorites.display.name" = "Поиск и избранное";
/* Description of search only widget in widget gallery */
-"widget.gallery.search.description" = "Конфиденциальный поиск через DuckDuckGo в два счета.";
+"widget.gallery.search.description" = "Конфиденциальный поиск через DuckDuckGo в два счёта.";
/* Display name for search only widget in widget gallery */
"widget.gallery.search.display.name" = "Поиск";
diff --git a/fastlane/metadata/ru/description.txt b/fastlane/metadata/ru/description.txt
index 6e28acf372..23b5f89dd1 100644
--- a/fastlane/metadata/ru/description.txt
+++ b/fastlane/metadata/ru/description.txt
@@ -18,9 +18,9 @@
ПОВСЕДНЕВНЫЙ КОНТРОЛЬ КОНФИДЕНЦИАЛЬНОСТИ
• Кнопка «Тревога» для удаления данных — теперь закрыть вкладки и очистить данные браузера можно нажатием специальной кнопки «Тревога».
-• Определите устраивающие вас параметры конфиденциальности с помощью Глобального контроля конфиденциальности (GPC) — в приложение уже встроен GPC, который автоматически выбирает отказ сайтам в праве продавать или передавать вашу персональную информацию. Возможность использования такого контроля для принудительного соблюдения ваших законных прав (согласно требований, например, CCPA и GDPR в действующей или последующей редакции) зависит от законодательства в месте вашего пребывания.
+• Определите устраивающие вас параметры конфиденциальности с помощью «Глобального контроля конфиденциальности» (GPC) — в приложение уже встроен GPC, который автоматически выбирает отказ сайтам в праве продавать или передавать вашу персональную информацию. Возможность использования такого контроля для принудительного соблюдения ваших законных прав (согласно требований, например, CCPA и GDPR в действующей или последующей редакции) зависит от законодательства в месте вашего пребывания.
-Защита от загрузки сторонних трекеров после нажатия рекламных объявлений в DuckDuckGo намного превосходит то, что предлагает большинство популярных браузеров по умолчанию. Тем не менее, мы постоянно работаем над расширением такой защиты. В настоящее время она не предотвращает загрузку запросов bat.bing.com на сайте рекламодателя после перехода на него по рекламному объявлению в DuckDuckGo, когда рекламодатель отслеживает конверсию на своем сайте. Однако такие запросы блокируются во всех других случаях. Это связано с тем, что реклама в поиске DuckDuckGo ведется на условиях партнерства с Microsoft. В рамках этого партнерства просмотр рекламы на DuckDuckGo является анонимным, так как Microsoft обязалась не профилировать наших пользователей при нажатии ими объявлений.
+Защита от загрузки сторонних трекеров после нажатия рекламных объявлений в DuckDuckGo намного превосходит то, что предлагает большинство популярных браузеров по умолчанию. Тем не менее, мы постоянно работаем над расширением такой защиты. В настоящее время она не предотвращает загрузку запросов bat.bing.com на сайте рекламодателя после перехода на него по рекламному объявлению в DuckDuckGo, когда рекламодатель отслеживает конверсию на своем сайте. Однако такие запросы блокируются во всех других случаях. Это связано с тем, что реклама в поиске DuckDuckGo ведётся на условиях партнёрства с Майкрософт. В рамках этого партнерства просмотр рекламы на DuckDuckGo является анонимным, так как Майкрософт обязалась не профилировать наших пользователей при нажатии ими объявлений.
Читайте подробнее о средствах защиты от отслеживания на странице https://help.duckduckgo.com/privacy/web-tracking-protections/.
diff --git a/fastlane/metadata/ru/release_notes.txt b/fastlane/metadata/ru/release_notes.txt
new file mode 100644
index 0000000000..43e89e4233
--- /dev/null
+++ b/fastlane/metadata/ru/release_notes.txt
@@ -0,0 +1,5 @@
+Что нового в этом выпуске?
+Исправления ошибок и другие улучшения.
+
+Есть замечания?
+Вы всегда можете связаться с нами по адресу https://duckduckgo.com/feedback.
\ No newline at end of file
diff --git a/fastlane/metadata/ru/subtitle.txt b/fastlane/metadata/ru/subtitle.txt
index 4a1e7682f0..2ea23fdf6e 100644
--- a/fastlane/metadata/ru/subtitle.txt
+++ b/fastlane/metadata/ru/subtitle.txt
@@ -1 +1 @@
-Privacy, simplified.
+Максимум конфиденциальности, минимум усилий.