diff --git a/Passepartout.xcodeproj/project.pbxproj b/Passepartout.xcodeproj/project.pbxproj index ce21b167..c18bc614 100644 --- a/Passepartout.xcodeproj/project.pbxproj +++ b/Passepartout.xcodeproj/project.pbxproj @@ -176,6 +176,8 @@ 0E05C5E320D1993C006EE732 /* SwiftGen+Strings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Strings.swift"; sourceTree = ""; }; 0E05C61C20D27C82006EE732 /* Theme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Theme.swift; sourceTree = ""; }; 0E0B6CE3226F3CDF00C1B244 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Localizable.strings; sourceTree = ""; }; + 0E0B6CE4226F45B000C1B244 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Intents.strings; sourceTree = ""; }; + 0E0B6CE5226F45B100C1B244 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/Localizable.strings; sourceTree = ""; }; 0E0EABC721DF853C0069DAE7 /* Web */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Web; sourceTree = ""; }; 0E1066C820E0F84A004F98B7 /* Cells.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cells.swift; sourceTree = ""; }; 0E108485226F3CC100BA41E9 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/Intents.strings; sourceTree = ""; }; @@ -798,6 +800,7 @@ Base, it, de, + ru, ); mainGroup = 0E57F62F20C83FC5008323CF; productRefGroup = 0E57F63920C83FC5008323CF /* Products */; @@ -1148,6 +1151,7 @@ 0E05C5DE20D198B9006EE732 /* en */, 0E533B142257C1DC00EF94FC /* it */, 0E0B6CE3226F3CDF00C1B244 /* de */, + 0E0B6CE5226F45B100C1B244 /* ru */, ); name = Localizable.strings; sourceTree = ""; @@ -1191,6 +1195,7 @@ 0E533B102257C0F200EF94FC /* it */, 0E242735225944060064A1A3 /* en */, 0E108485226F3CC100BA41E9 /* de */, + 0E0B6CE4226F45B000C1B244 /* ru */, ); name = Intents.intentdefinition; sourceTree = ""; diff --git a/Passepartout/Resources/ru.lproj/Intents.strings b/Passepartout/Resources/ru.lproj/Intents.strings new file mode 100644 index 00000000..717096ad --- /dev/null +++ b/Passepartout/Resources/ru.lproj/Intents.strings @@ -0,0 +1,39 @@ +"0jRWn5" = "Удаляет мобильную сеть из доверенных подключений"; + +"1ZRTCZ" = "Отключить VPN"; + +"66bZBE" = "С ${providerId} провайдером"; + +"7eoAss" = "Удаляет текущий Wi-Fi из доверенных подключений"; + +"9GpJt5" = "Добавляет мобильную сеть в доверенные подключения"; + +"BKxs8X" = "Добавляет текущий  Wi-Fi в доверенные подключения"; + +"H4taev" = "Доверять мобильной сети"; + +"KjkCfU" = "Подключиться к конкретному местоположению провайдера"; + +"LA99yM" = "Подключиться к VPN"; + +"U6o81V" = "Подключиться к ${profileId}"; + +"WnTPFg" = "Подключиться к ${poolName}"; + +"eQ1yzr" = "Отключить этот VPN сервис"; + +"eXXb2z" = "Подключается к хост профилю"; + +"lQ6ziK" = "Включить VPN"; + +"m2E7SI" = "Доверять текущему Wi-Fi"; + +"qo3Szz" = "Подключиться к местоположению провайдера"; + +"rd1T8p" = "Не доверять текущему Wi-Fi"; + +"wB1iYX" = "Не доверять мобильной сети"; + +"xY97Vu" = "Включает VPN с используемым профилем"; + +"NCoK9B" = "С используемым профилем"; diff --git a/Passepartout/Resources/ru.lproj/Localizable.strings b/Passepartout/Resources/ru.lproj/Localizable.strings new file mode 100644 index 00000000..f1d19440 --- /dev/null +++ b/Passepartout/Resources/ru.lproj/Localizable.strings @@ -0,0 +1,280 @@ +// +// Localizable.strings +// Passepartout +// +// Created by Davide De Rosa on 4/23/19. +// Copyright (c) 2019 Davide De Rosa. All rights reserved. +// +// https://github.com/passepartoutvpn +// +// This file is part of Passepartout. +// +// Passepartout is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// Passepartout is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with Passepartout. If not, see . +// + +"global.ok" = "Ок"; +"global.cancel" = "Отменить"; +"global.next" = "Далее"; +"global.close" = "Закрыть"; +"global.host.title_input.message" = "Разрешены буквы латиницы, дэш \"-\", нижнее подчеркивание \"_\" и точка \".\"."; +"global.host.title_input.placeholder" = "Мой профиль"; +"global.email_not_configured" = "E-mail аккаунт не создан."; + +"reddit.title" = "Reddit"; +"reddit.message" = "А Вы знали, что Passepartout имеет свой сабреддит? Подписывайтесь для получения обновлений, обсуждения проблем, функций, новых платформ или чего угодно.\n\nЭто также отличный способ показать поддержку проекта."; +"reddit.buttons.subscribe" = "Подписаться сейчас!"; +"reddit.buttons.remind" = "Напомнить позже"; +"reddit.buttons.never" = "Больше не спрашивать"; + +"organizer.sections.providers.header" = "Провайдеры"; +"organizer.sections.providers.footer" = "Здесь Вы найдёте несколько провайдеров с уже созданными профилями."; +"organizer.sections.hosts.header" = "Хосты|Hosts"; +"organizer.sections.hosts.footer" = "Импорт хостов из .ovpn файлов"; +"organizer.sections.siri.header" = "Сири"; +"organizer.sections.siri.footer" = "Получить помощь Сири, чтобы ускорить частые действия с приложением."; +"organizer.sections.support.header" = "Поддержка"; +"organizer.sections.feedback.header" = "Отзыв"; +"organizer.cells.profile.value.current" = "Используется"; +"organizer.cells.add_provider.caption" = "Добавить нового провайдера"; +"organizer.cells.add_host.caption" = "Добавить новый хост"; +"organizer.cells.siri_shortcuts.caption" = "Управлять коммандами"; +"organizer.cells.join_community.caption" = "Вступить в сообщество"; +"organizer.cells.write_review.caption" = "Написать отзыв"; +"organizer.cells.donate.caption" = "Сделать пожертвование"; +"organizer.cells.patreon.caption" = "Поддержите меня на Patreon"; +"organizer.cells.translate.caption" = "Помощь с переводом"; +"organizer.cells.about.caption" = "Об %@"; +"organizer.cells.uninstall.caption" = "Удалить VPN конфигурацию"; +"organizer.alerts.exhausted_providers.message" = "Вы создали профили для всех доступных провайдеров."; +"organizer.alerts.add_host.message" = "Откройте ссылку на .ovpn файл конфигурации через Safari, Почту или другое приложение для добавление хост профиля.\n\nВы также можете импортировать .ovpn файл через общие файлы iTunes."; +"organizer.alerts.cannot_donate.message" = "На этом усторйстве не выбран способ платежа."; +"organizer.alerts.delete_vpn_profile.message" = "Вы действительно хотите убрать VPN конфигурацию из настроек устройства? Это может исправить несколько VPN ошибок, но не изменит установки приложения."; + +"wizards.host.cells.title_input.caption" = "Название"; +"wizards.host.sections.existing.header" = "Существующие профили"; +"wizards.host.alerts.existing.message" = "Хост профиль с этим названием уже существует. Заменить?"; + +"parsed_file.alerts.malformed.message" = "Файл конфигурации содержит неверную опцию (%@)."; +"parsed_file.alerts.missing.message" = "Файл конфигурации не содержит необходимую опцию (%@)."; +"parsed_file.alerts.unsupported.message" = "Файл конфигурации содержит неподдерживаемую опцию (%@)."; +"parsed_file.alerts.potentially_unsupported.message" = "Файл конфигурации верный, но возможно содержит неподдерживаемую опцию (%@).\n\nСоединение может прерваться - зависит от настроек сервера."; +"parsed_file.alerts.encryption_passphrase.message" = "Пожалуйста, введите кодовую фразу шифрования"; +"parsed_file.alerts.decryption.message" = "Конфигурация содержит зашифрованный приватный ключ, он не может быть расшифрован. Перепроверьте кодовую фразу."; +"parsed_file.alerts.parsing.message" = "Не получается разобрать предоставленный файл конфигурации (%@)."; +"parsed_file.alerts.buttons.report" = "Сообщить о проблеме"; + +"imported_hosts.title" = "Импортированные хост профили"; + +"service.welcome.message" = "Добро пожаловать в Passepartout!\n\nИспользуйте организатор для добавления нового профиля."; +"service.sections.general.header" = "Основное"; +"service.sections.vpn.header" = "VPN"; +"service.sections.vpn.footer" = "Соединение будет установлено при необходимости."; +"service.sections.status.header" = "Соединение"; +"service.sections.configuration.header" = "Конфигурация"; +"service.sections.provider_infrastructure.footer" = "Последнее обновление %@."; +"service.sections.vpn_survives_sleep.footer" = "Отключите для уменьшения расхода заряда аккумулятора, может привести к временным замедлениям в связи с повторным подключением после \"пробуждения\"."; +"service.sections.vpn_resolves_hostname.footer" = "Предпочтительно в большинстве сетей и необходимо в некоторых IPv6 сетях. Отключите если  DNS заблокирован, или для увеличения скорости в случае медленных ответов DNS."; +//"service.sections.vpn_prefers_udp.footer" = "UDP быстрее TCP, но может не работать в некоторых сетях. Отключите в случае блокировки UDP в Вашей сети."; +"service.sections.trusted.header" = "Доверенные сети"; +"service.sections.trusted.footer" = "При подключении к доверенным сетям VPN обычно выключается, и остаётся отключенным. Отключите эту опцию чтобы оставлять VPN подключенным."; +"service.sections.diagnostics.header" = "Диагностика"; +"service.sections.diagnostics.footer" = "Маскировка включится после повторного подключения. Информация о сети - это названия хост профилей, IP адрес, маршрутизация и SSID. Данные для входа и приватные ключи не собираются."; +//"service.sections.destruction.footer" = "Удалить конфигурацию из настроек устройства."; + +"service.cells.use_profile.caption" = "Использовать это профиль."; +"service.cells.vpn_service.caption" = "Включен"; +"service.cells.connection_status.caption" = "Статус"; +"service.cells.reconnect.caption" = "Переподключиться"; +"service.cells.account.caption" = "Аккаунт"; +"service.cells.account.none" = "Ничего не создано"; +"service.cells.endpoint.caption" = "Конечная точка"; +"service.cells.endpoint.value.automatic" = "Автоматически"; +"service.cells.endpoint.value.manual" = "Вручную"; +"service.cells.provider.pool.caption" = "Местоположение"; +"service.cells.provider.preset.caption" = "Пресет"; +"service.cells.provider.refresh.caption" = "Обновить инфраструктуру"; +"service.cells.host.parameters.caption" = "Параметры"; +"service.cells.host.parameters.value.cipher" = "%@"; +"service.cells.host.parameters.value.cipher_digest" = "%@ / %@"; +"service.cells.vpn_survives_sleep.caption" = "Оставлять включенным во время сна"; +"service.cells.vpn_resolves_hostname.caption" = "Разрешить имя хоста сервера"; +//"service.cells.vpn_prefers_udp.caption" = "Предпочитать UDP подключение"; +"service.cells.trusted_mobile.caption" = "Мобильная сеть"; +"service.cells.trusted_wifi.caption" = "%@"; +"service.cells.trusted_add_wifi.caption" = "Добавить текущий Wi-Fi"; +"service.cells.trusted_policy.caption" = "Дов. сеть отключает VPN"; +"service.cells.test_connectivity.caption" = "Проверить подключение"; +"service.cells.data_count.caption" = "Переданная информация"; +"service.cells.data_count.value" = "↓%@ / ↑%@"; +"service.cells.data_count.none" = "Недоступно"; +"service.cells.debug_log.caption" = "Журнал отладки"; +"service.cells.masks_private_data.caption" = "Маскировать информацию сети"; +"service.cells.report_issue.caption" = "Сообщить о проблеме подкл."; + +"service.alerts.rename.title" = "Переименовать профиль"; +"service.alerts.credentials_needed.message" = "Сначала нужно ввести данные аккаунта."; +"service.alerts.reconnect_vpn.message" = "Хотите заново подключиться к VPN?"; +"service.alerts.trusted.no_network.message" = "Вы не подключены к Wi-Fi."; +"service.alerts.trusted.will_disconnect_trusted.message" = "При доверии этой сети VPN может быть отключен. Продолжить?"; +"service.alerts.trusted.will_disconnect_policy.message" = "При изменении установок доверия VPN может быть отключен. Продолжить?"; +"service.alerts.test_connectivity.title" = "Связь"; +"service.alerts.test_connectivity.messages.success" = "Ваше устройство подключено к интернету!"; +"service.alerts.test_connectivity.messages.failure" = "Ваше устройство не подключено к интернету, пожалйста проверьте установки Вашего профиля."; +"service.alerts.data_count.messages.current" = "Получено: %llu\nОтправлено: %llu"; +"service.alerts.data_count.messages.not_available" = "Информация не доступна, Вы подключены?"; +"service.alerts.masks_private_data.messages.must_reconnect" = "Для безопасного сброса журнала отладки и изменения маскировки информации сети Вы должны заново подключиться к VPN."; +"service.alerts.buttons.reconnect" = "Переподключить"; +"service.alerts.download.title" = "Необходимо скачивание"; +"service.alerts.download.message" = "%@ необходимы дополнительные файлы конфигурации.\n\nПодтвердите для скачивания."; +"service.alerts.download.failed" = "Не удалось скачать файлы конфигурации.%@"; +"service.alerts.download.hud.extracting" = "Извлечение файлов, пожалуста подождите..."; + +"account.sections.credentials.header" = "Данные для входа"; +"account.sections.guidance.footer.infrastructure.mullvad" = "Используйте Ваш логин и пароль с веб-сайта %@\"m\"."; +"account.sections.guidance.footer.infrastructure.nordvpn" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail."; +"account.sections.guidance.footer.infrastructure.pia" = "Используйте Ваши данные для входа с веб-сайта %@. Ваш логин обычно числовой с приставкой \"p\"."; +"account.sections.guidance.footer.infrastructure.protonvpn" = "Найдите Ваши данные для входа %@ \"Account > OpenVPN / IKEv2 Username\" секции веб-сайта."; +"account.sections.guidance.footer.infrastructure.tunnelbear" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail."; +"account.sections.guidance.footer.infrastructure.windscribe" = "Найдите Ваши данные для входа %@ в OpenVPN Config Generator на веб-сайте."; +"account.sections.registration.footer" = "Создайте аккаунт на %@ веб-сайте."; +"account.cells.username.caption" = "Логин"; +"account.cells.username.placeholder" = "логин"; +"account.cells.password.caption" = "Пароль"; +"account.cells.password.placeholder" = "пароль"; +//"account.cells.password_confirm.caption" = "Подтвердить"; +//"account.cells.password_confirm.mismatch" = "Пароли не совпадают!"; +"account.cells.open_guide.caption" = "Проверьте Ваши данные"; +"account.cells.signup.caption" = "Зарегистрируйтесь с %@"; + +"provider.pool.sections.free.header" = "Бесплатный"; +"provider.pool.sections.paid.header" = "Платный"; + +"endpoint.sections.location_addresses.header" = "Адреса"; +"endpoint.sections.location_protocols.header" = "Протоколы"; +"endpoint.cells.any_address.caption" = "Автоматически"; +"endpoint.cells.any_protocol.caption" = "Автоматически"; + +"provider.preset.cells.tech_details.caption" = "Техническая информация"; +//"provider.preset.sections.main.footer" = "Нажмите i для раскрытия технической информации."; + +"configuration.sections.communication.header" = "Связь"; +"configuration.sections.reset.footer" = "Если после изменения параметров связи у Вас разорвалось соединение, нажмите, чтобы вернуться к исходной конфигурации."; +"configuration.sections.tls.header" = "TLS"; +"configuration.sections.compression.header" = "Компресия"; +"configuration.sections.network.header" = "Сеть"; +"configuration.sections.other.header" = "Другое"; +"configuration.cells.cipher.caption" = "Шифруем"; +"configuration.cells.digest.caption" = "Аутентификация"; +"configuration.cells.digest.value.embedded" = "Внедрена"; +"configuration.cells.reset_original.caption" = "Сброс конфигурации"; +"configuration.cells.client.caption" = "Сертификат клиента"; +"configuration.cells.client.value.enabled" = "Проверено"; +"configuration.cells.client.value.disabled" = "Не проверено"; +"configuration.cells.tls_wrapping.caption" = "Упаковываем"; +"configuration.cells.tls_wrapping.value.auth" = "Аутентификация"; +"configuration.cells.tls_wrapping.value.crypt" = "Шифрование"; +"configuration.cells.eku.caption" = "Расширенная проверка"; +"configuration.cells.dns_server.caption" = "DNS"; +"configuration.cells.dns_domain.caption" = "Домен"; +"configuration.cells.proxy_http.caption" = "Прокси"; +"configuration.cells.proxy_https.caption" = "Прокси (HTTPS)"; +"configuration.cells.compression_framing.caption" = "Фрейминг"; +"configuration.cells.compression_framing.value.lzo" = "--comp-lzo"; +"configuration.cells.compression_framing.value.compress" = "--compress"; +"configuration.cells.compression_algorithm.caption" = "Алгоритм"; +"configuration.cells.compression_algorithm.value.lzo" = "LZO"; +"configuration.cells.compression_algorithm.value.other" = "Неподдерживаемое"; +"configuration.cells.keep_alive.caption" = "Поддерживаем"; +"configuration.cells.keep_alive.value.seconds" = "%d секунд"; +"configuration.cells.renegotiation_seconds.caption" = "Перезаключение"; +"configuration.cells.renegotiation_seconds.value.after" = "после %@"; +"configuration.cells.random_endpoint.caption" = "Рандомная конечная точка"; +"configuration.cells.all.value.enabled" = "Включен"; +"configuration.cells.all.value.disabled" = "Выключен"; +"configuration.cells.all.value.none" = "Нет"; + +"debug_log.buttons.previous" = "Предыдущий"; +"debug_log.buttons.next" = "Следующий"; +"debug_log.alerts.empty_log.message" = "Журнал отладки пуст."; + +"vpn.connecting" = "Подключается"; +"vpn.active" = "Активен"; +"vpn.disconnecting" = "Отключается"; +"vpn.inactive" = "Не активен"; +"vpn.disabled" = "Отключен"; + +"vpn.errors.timeout" = "Тайм-аут"; +"vpn.errors.dns" = "Ошибка DNS"; +"vpn.errors.auth" = "Ошибка аутентификации"; +"vpn.errors.tls" = "Ошибка TSL"; +"vpn.errors.encryption" = "Ошибка расшифровки"; +"vpn.errors.compression" = "Сжатие не поддерживается"; +"vpn.errors.network" = "Изменение сети"; +"vpn.errors.routing" = "Отсутствует маршрутизация"; + +"issue_reporter.title" = "Сообщить о проблеме"; +"issue_reporter.message" = "Журнал отладки Вашего последнего соединения необходим для разрешения проблем подключения, и является полностью анонимным.\n\n .ovpn файл, если есть, прикреплён без каких-либо конфиденциальных данных .\n\nПожалуйста, перепроверьте прикреплённые файлы, если не уверены."; +"issue_reporter.buttons.accept" = "Я понимаю"; + +"translations.title" = "Переводы"; + +"shortcuts.add.title" = "Создать команду"; +"shortcuts.add.sections.vpn.header" = "VPN"; +"shortcuts.add.sections.wifi.header" = "Wi-Fi"; +"shortcuts.add.sections.cellular.header" = "Мобильная сеть"; +"shortcuts.add.cells.connect.caption" = "Подключиться к"; +"shortcuts.add.cells.enable_vpn.caption" = "Включи VPN"; +"shortcuts.add.cells.disable_vpn.caption" = "Выключи VPN"; +"shortcuts.add.cells.trust_current_wifi.caption" = "Доверять текущему Wi-Fi"; +"shortcuts.add.cells.untrust_current_wifi.caption" = "Не доверять текущему Wi-Fi"; +"shortcuts.add.cells.trust_cellular.caption" = "Доверять мобильной сети"; +"shortcuts.add.cells.untrust_cellular.caption" = "Не доверять мобильной сети"; +"shortcuts.add.alerts.no_profiles.message" = "Нет профиля для подключения."; + +"shortcuts.edit.title" = "Управлять командами"; +"shortcuts.edit.sections.all.header" = "Существующие команды"; +"shortcuts.edit.cells.add_shortcut.caption" = "Создать команду"; + +"about.title" = "О нас"; +"about.sections.web.header" = "Веб"; +"about.sections.share.header" = "Поделиться"; +"about.cells.website.caption" = "Домашняя страница"; +"about.cells.faq.caption" = "FAQ"; +"about.cells.disclaimer.caption" = "Предупреждение"; +"about.cells.privacy_policy.caption" = "Политика конфиденциальности"; +"about.cells.share_twitter.caption" = "Твитнуть о нас!"; +"about.cells.share_generic.caption" = "Пригласить друга"; + +"donation.title" = "Пожертвовать"; +"donation.sections.one_time.header" = "Один раз"; +"donation.sections.one_time.footer" = "Если Вы хотите поблагодарить мою бесплатную работу, здесь есть несколько сумм, которые Вы можете пожертвовать прямо сейчас.\n\nСумма будет списана только один раз, а Вы можете пожертвовать несколько раз."; +"donation.cells.loading.caption" = "Загружаем пожертвования"; +"donation.cells.purchasing.caption" = "Исполняется"; +"donation.alerts.purchase.success.title" = "Спасибо"; +"donation.alerts.purchase.success.message" = "Это значит многое для меня, и, я надеюсь, Вы продолжить использовать и рассказывать об этом приложении."; +"donation.alerts.purchase.failure.message" = "Не получается совершить пожертвование. %@"; + +"share.message" = "Passepartout - это простой в использовании OpenVPN клиент для iOS и macOS, с открытым исходным кодом"; + +"version.title" = "Версия"; +"version.labels.intro" = "Passepartout и TunnelKit написаны и установлены Davide De Rosa (keeshux).\n\nИсходные коды для Passepartout и TunnelKit публично доступны на GitHub под GPLv3, вы можете найти ссылки на домашней странице.\n\nPassepartout является неофициальным клиентом, и никаким образом не связан с OpenVPN Inc."; +"version.buttons.changelog" = "ЖУРНАЛ ИЗМЕНЕНИЙ"; +"version.buttons.credits" = "БЛАГОДАРНОСТИ"; + +"credits.title" = "Благодарность"; +"credits.sections.licenses.header" = "Лицензии"; +"credits.sections.notices.header" = "Упоминания"; +"credits.sections.translations.header" = "Переводы"; + +"label.license.error" = "Не получается загрузить полную лицензию.";