2018-10-28 08:36:56 +00:00
|
|
|
// swiftlint:disable all
|
2018-10-11 07:13:19 +00:00
|
|
|
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
|
|
|
|
|
|
|
|
import Foundation
|
|
|
|
|
|
|
|
// swiftlint:disable superfluous_disable_command
|
|
|
|
// swiftlint:disable file_length
|
|
|
|
|
2018-10-28 08:36:56 +00:00
|
|
|
// MARK: - Strings
|
|
|
|
|
|
|
|
// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length
|
|
|
|
// swiftlint:disable nesting type_body_length type_name
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum L10n {
|
|
|
|
|
|
|
|
internal enum About {
|
|
|
|
/// About
|
|
|
|
internal static let title = L10n.tr("Localizable", "about.title")
|
|
|
|
internal enum Cells {
|
2018-10-29 20:22:08 +00:00
|
|
|
internal enum Disclaimer {
|
|
|
|
/// Disclaimer
|
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.disclaimer.caption")
|
|
|
|
}
|
2019-02-03 21:07:10 +00:00
|
|
|
internal enum Faq {
|
|
|
|
/// FAQ
|
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.faq.caption")
|
|
|
|
}
|
2018-10-24 19:57:27 +00:00
|
|
|
internal enum JoinCommunity {
|
|
|
|
/// Join community
|
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.join_community.caption")
|
2018-10-17 21:24:58 +00:00
|
|
|
}
|
2018-10-29 19:59:05 +00:00
|
|
|
internal enum PrivacyPolicy {
|
|
|
|
/// Privacy policy
|
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.privacy_policy.caption")
|
|
|
|
}
|
2018-10-23 09:40:29 +00:00
|
|
|
internal enum ShareGeneric {
|
|
|
|
/// Invite a friend
|
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.share_generic.caption")
|
|
|
|
}
|
2018-10-23 09:28:24 +00:00
|
|
|
internal enum ShareTwitter {
|
|
|
|
/// Tweet about it!
|
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.share_twitter.caption")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Website {
|
2018-10-30 19:44:18 +00:00
|
|
|
/// Home page
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.website.caption")
|
|
|
|
}
|
|
|
|
internal enum WriteReview {
|
|
|
|
/// Write a review
|
|
|
|
internal static let caption = L10n.tr("Localizable", "about.cells.write_review.caption")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Sections {
|
|
|
|
internal enum Feedback {
|
|
|
|
/// Feedback
|
|
|
|
internal static let header = L10n.tr("Localizable", "about.sections.feedback.header")
|
|
|
|
}
|
2018-10-23 09:40:29 +00:00
|
|
|
internal enum Share {
|
|
|
|
/// Share
|
|
|
|
internal static let header = L10n.tr("Localizable", "about.sections.share.header")
|
|
|
|
}
|
2018-10-30 19:44:18 +00:00
|
|
|
internal enum Web {
|
|
|
|
/// Web
|
|
|
|
internal static let header = L10n.tr("Localizable", "about.sections.web.header")
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
internal enum Account {
|
|
|
|
internal enum Cells {
|
|
|
|
internal enum Password {
|
|
|
|
/// Password
|
|
|
|
internal static let caption = L10n.tr("Localizable", "account.cells.password.caption")
|
|
|
|
/// secret
|
|
|
|
internal static let placeholder = L10n.tr("Localizable", "account.cells.password.placeholder")
|
|
|
|
}
|
|
|
|
internal enum Username {
|
|
|
|
/// Username
|
|
|
|
internal static let caption = L10n.tr("Localizable", "account.cells.username.caption")
|
|
|
|
/// username
|
|
|
|
internal static let placeholder = L10n.tr("Localizable", "account.cells.username.placeholder")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum SuggestionFooter {
|
|
|
|
internal enum Infrastructure {
|
|
|
|
/// Use your website credentials. Your username is usually numeric with a "p" prefix.
|
|
|
|
internal static let pia = L10n.tr("Localizable", "account.suggestion_footer.infrastructure.pia")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
internal enum Configuration {
|
|
|
|
internal enum Cells {
|
|
|
|
internal enum Cipher {
|
|
|
|
/// Cipher
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.cipher.caption")
|
|
|
|
}
|
|
|
|
internal enum Client {
|
|
|
|
/// Client certificate
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.client.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// Not verified
|
|
|
|
internal static let disabled = L10n.tr("Localizable", "configuration.cells.client.value.disabled")
|
|
|
|
/// Verified
|
|
|
|
internal static let enabled = L10n.tr("Localizable", "configuration.cells.client.value.enabled")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum CompressionAlgorithm {
|
|
|
|
/// Compression
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.compression_algorithm.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// Disabled
|
|
|
|
internal static let disabled = L10n.tr("Localizable", "configuration.cells.compression_algorithm.value.disabled")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum CompressionFrame {
|
|
|
|
/// Framing
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.compression_frame.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// Compress
|
|
|
|
internal static let compress = L10n.tr("Localizable", "configuration.cells.compression_frame.value.compress")
|
|
|
|
/// None
|
|
|
|
internal static let disabled = L10n.tr("Localizable", "configuration.cells.compression_frame.value.disabled")
|
|
|
|
/// LZO
|
|
|
|
internal static let lzo = L10n.tr("Localizable", "configuration.cells.compression_frame.value.lzo")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Digest {
|
|
|
|
/// Authentication
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.digest.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// Embedded
|
|
|
|
internal static let embedded = L10n.tr("Localizable", "configuration.cells.digest.value.embedded")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum KeepAlive {
|
|
|
|
/// Keep-alive
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.keep_alive.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// Disabled
|
|
|
|
internal static let never = L10n.tr("Localizable", "configuration.cells.keep_alive.value.never")
|
|
|
|
/// %d seconds
|
|
|
|
internal static func seconds(_ p1: Int) -> String {
|
|
|
|
return L10n.tr("Localizable", "configuration.cells.keep_alive.value.seconds", p1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum RenegotiationSeconds {
|
|
|
|
/// Renegotiation
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.renegotiation_seconds.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// after %@
|
|
|
|
internal static func after(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "configuration.cells.renegotiation_seconds.value.after", p1)
|
|
|
|
}
|
|
|
|
/// Disabled
|
|
|
|
internal static let never = L10n.tr("Localizable", "configuration.cells.renegotiation_seconds.value.never")
|
|
|
|
}
|
|
|
|
}
|
2018-10-22 09:16:05 +00:00
|
|
|
internal enum ResetOriginal {
|
|
|
|
/// Reset configuration
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.reset_original.caption")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum TlsWrapping {
|
|
|
|
/// Wrapping
|
|
|
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.tls_wrapping.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// Authentication
|
|
|
|
internal static let auth = L10n.tr("Localizable", "configuration.cells.tls_wrapping.value.auth")
|
|
|
|
/// Encryption
|
|
|
|
internal static let crypt = L10n.tr("Localizable", "configuration.cells.tls_wrapping.value.crypt")
|
|
|
|
/// Disabled
|
|
|
|
internal static let disabled = L10n.tr("Localizable", "configuration.cells.tls_wrapping.value.disabled")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Sections {
|
|
|
|
internal enum Communication {
|
|
|
|
/// Communication
|
|
|
|
internal static let header = L10n.tr("Localizable", "configuration.sections.communication.header")
|
|
|
|
}
|
|
|
|
internal enum Other {
|
|
|
|
/// Other
|
|
|
|
internal static let header = L10n.tr("Localizable", "configuration.sections.other.header")
|
|
|
|
}
|
2018-10-22 09:16:05 +00:00
|
|
|
internal enum Reset {
|
|
|
|
/// If you ended up with broken connectivity after changing the communication parameters, tap to revert to the original configuration.
|
|
|
|
internal static let footer = L10n.tr("Localizable", "configuration.sections.reset.footer")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Tls {
|
|
|
|
/// TLS
|
|
|
|
internal static let header = L10n.tr("Localizable", "configuration.sections.tls.header")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
internal enum Credits {
|
|
|
|
/// Credits
|
|
|
|
internal static let title = L10n.tr("Localizable", "credits.title")
|
2018-11-26 15:27:15 +00:00
|
|
|
internal enum Sections {
|
|
|
|
internal enum Licenses {
|
|
|
|
/// Licenses
|
|
|
|
internal static let header = L10n.tr("Localizable", "credits.sections.licenses.header")
|
|
|
|
}
|
|
|
|
internal enum Notices {
|
|
|
|
/// Notices
|
|
|
|
internal static let header = L10n.tr("Localizable", "credits.sections.notices.header")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
internal enum DebugLog {
|
|
|
|
internal enum Alerts {
|
|
|
|
internal enum EmptyLog {
|
|
|
|
/// The debug log is empty.
|
|
|
|
internal static let message = L10n.tr("Localizable", "debug_log.alerts.empty_log.message")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Buttons {
|
|
|
|
/// Next
|
|
|
|
internal static let next = L10n.tr("Localizable", "debug_log.buttons.next")
|
|
|
|
/// Previous
|
|
|
|
internal static let previous = L10n.tr("Localizable", "debug_log.buttons.previous")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
internal enum Endpoint {
|
|
|
|
internal enum Cells {
|
|
|
|
internal enum AnyAddress {
|
|
|
|
/// Any
|
|
|
|
internal static let caption = L10n.tr("Localizable", "endpoint.cells.any_address.caption")
|
|
|
|
}
|
|
|
|
internal enum AnyProtocol {
|
|
|
|
/// Any
|
|
|
|
internal static let caption = L10n.tr("Localizable", "endpoint.cells.any_protocol.caption")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Sections {
|
|
|
|
internal enum LocationAddresses {
|
|
|
|
/// Addresses
|
|
|
|
internal static let header = L10n.tr("Localizable", "endpoint.sections.location_addresses.header")
|
|
|
|
}
|
|
|
|
internal enum LocationProtocols {
|
|
|
|
/// Protocols
|
|
|
|
internal static let header = L10n.tr("Localizable", "endpoint.sections.location_protocols.header")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
internal enum Global {
|
|
|
|
/// Cancel
|
|
|
|
internal static let cancel = L10n.tr("Localizable", "global.cancel")
|
|
|
|
/// Next
|
|
|
|
internal static let next = L10n.tr("Localizable", "global.next")
|
|
|
|
/// OK
|
|
|
|
internal static let ok = L10n.tr("Localizable", "global.ok")
|
2018-11-02 10:19:59 +00:00
|
|
|
internal enum Host {
|
|
|
|
internal enum TitleInput {
|
2018-11-06 10:17:43 +00:00
|
|
|
/// Acceptable characters are alphanumerics plus dash "-", underscore "_" and dot ".".
|
2018-11-02 10:19:59 +00:00
|
|
|
internal static let message = L10n.tr("Localizable", "global.host.title_input.message")
|
|
|
|
/// My Profile
|
|
|
|
internal static let placeholder = L10n.tr("Localizable", "global.host.title_input.placeholder")
|
|
|
|
}
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
|
2018-10-27 08:25:21 +00:00
|
|
|
internal enum ImportedHosts {
|
2018-11-01 12:27:11 +00:00
|
|
|
/// Imported hosts
|
2018-10-27 08:25:21 +00:00
|
|
|
internal static let title = L10n.tr("Localizable", "imported_hosts.title")
|
|
|
|
}
|
|
|
|
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum IssueReporter {
|
2018-10-26 22:47:28 +00:00
|
|
|
/// The debug log of your latest connections is crucial to resolve your connectivity issues and is completely anonymous.\n\nThe .ovpn configuration file, if any, is attached stripped of any sensitive data.\n\nPlease double check the email attachments if unsure.
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let message = L10n.tr("Localizable", "issue_reporter.message")
|
2018-10-22 20:42:42 +00:00
|
|
|
/// Report issue
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let title = L10n.tr("Localizable", "issue_reporter.title")
|
|
|
|
internal enum Alerts {
|
|
|
|
internal enum EmailNotConfigured {
|
|
|
|
/// No e-mail account is configured.
|
|
|
|
internal static let message = L10n.tr("Localizable", "issue_reporter.alerts.email_not_configured.message")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Buttons {
|
2018-10-18 13:57:59 +00:00
|
|
|
/// I understand
|
|
|
|
internal static let accept = L10n.tr("Localizable", "issue_reporter.buttons.accept")
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
internal enum Email {
|
2018-10-23 08:49:35 +00:00
|
|
|
/// Hi,\n\n%@\n\n%@\n\nRegards
|
|
|
|
internal static func body(_ p1: String, _ p2: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "issue_reporter.email.body", p1, p2)
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
2018-10-23 08:49:35 +00:00
|
|
|
/// description of the issue:
|
|
|
|
internal static let description = L10n.tr("Localizable", "issue_reporter.email.description")
|
2018-10-23 08:25:41 +00:00
|
|
|
/// %@ - Report issue
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static func subject(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "issue_reporter.email.subject", p1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-12-04 09:41:33 +00:00
|
|
|
internal enum Label {
|
|
|
|
internal enum License {
|
|
|
|
/// Unable to download full license content.
|
|
|
|
internal static let error = L10n.tr("Localizable", "label.license.error")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Organizer {
|
|
|
|
internal enum Alerts {
|
|
|
|
internal enum AddHost {
|
2018-10-27 09:14:06 +00:00
|
|
|
/// Open an URL to an .ovpn configuration file from Safari, Mail or another app to set up a host profile.\n\nYou can also import an .ovpn with iTunes File Sharing.
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let message = L10n.tr("Localizable", "organizer.alerts.add_host.message")
|
|
|
|
}
|
|
|
|
internal enum DeleteVpnProfile {
|
2019-02-06 09:25:40 +00:00
|
|
|
/// Do you really want to erase the VPN configuration from your device settings? This may fix some broken VPN states and will not affect your network and host profiles.
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let message = L10n.tr("Localizable", "organizer.alerts.delete_vpn_profile.message")
|
|
|
|
}
|
|
|
|
internal enum ExhaustedProviders {
|
|
|
|
/// You have created profiles for any available network.
|
|
|
|
internal static let message = L10n.tr("Localizable", "organizer.alerts.exhausted_providers.message")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Cells {
|
|
|
|
internal enum About {
|
|
|
|
/// About %@
|
|
|
|
internal static func caption(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "organizer.cells.about.caption", p1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum AddHost {
|
|
|
|
/// Add new host
|
|
|
|
internal static let caption = L10n.tr("Localizable", "organizer.cells.add_host.caption")
|
|
|
|
}
|
|
|
|
internal enum AddProvider {
|
|
|
|
/// Add new network
|
|
|
|
internal static let caption = L10n.tr("Localizable", "organizer.cells.add_provider.caption")
|
|
|
|
}
|
2018-10-17 13:30:40 +00:00
|
|
|
internal enum Profile {
|
|
|
|
internal enum Value {
|
|
|
|
/// In use
|
|
|
|
internal static let current = L10n.tr("Localizable", "organizer.cells.profile.value.current")
|
|
|
|
}
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Uninstall {
|
2019-01-05 20:59:02 +00:00
|
|
|
/// Remove VPN configuration
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let caption = L10n.tr("Localizable", "organizer.cells.uninstall.caption")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Sections {
|
|
|
|
internal enum Hosts {
|
|
|
|
/// Import hosts from raw .ovpn configuration files.
|
|
|
|
internal static let footer = L10n.tr("Localizable", "organizer.sections.hosts.footer")
|
|
|
|
/// Hosts
|
|
|
|
internal static let header = L10n.tr("Localizable", "organizer.sections.hosts.header")
|
|
|
|
}
|
|
|
|
internal enum Providers {
|
|
|
|
/// Here you find a few public infrastructures offering preset configuration profiles.
|
|
|
|
internal static let footer = L10n.tr("Localizable", "organizer.sections.providers.footer")
|
|
|
|
/// Networks
|
|
|
|
internal static let header = L10n.tr("Localizable", "organizer.sections.providers.header")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-27 09:51:50 +00:00
|
|
|
internal enum ParsedFile {
|
|
|
|
internal enum Alerts {
|
|
|
|
internal enum Buttons {
|
|
|
|
/// Report an issue
|
|
|
|
internal static let report = L10n.tr("Localizable", "parsed_file.alerts.buttons.report")
|
|
|
|
}
|
|
|
|
internal enum Missing {
|
|
|
|
/// The configuration file lacks a required option (%@).
|
|
|
|
internal static func message(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "parsed_file.alerts.missing.message", p1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Parsing {
|
|
|
|
/// Unable to parse the provided configuration file (%@).
|
|
|
|
internal static func message(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "parsed_file.alerts.parsing.message", p1)
|
|
|
|
}
|
|
|
|
}
|
2018-10-27 12:14:46 +00:00
|
|
|
internal enum PotentiallyUnsupported {
|
|
|
|
/// The configuration file is correct but contains a potentially unsupported option (%@).\n\nConnectivity may break depending on server settings.
|
|
|
|
internal static func message(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "parsed_file.alerts.potentially_unsupported.message", p1)
|
|
|
|
}
|
|
|
|
}
|
2018-10-27 09:51:50 +00:00
|
|
|
internal enum Unsupported {
|
|
|
|
/// The configuration file contains an unsupported option (%@).
|
|
|
|
internal static func message(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "parsed_file.alerts.unsupported.message", p1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Provider {
|
|
|
|
internal enum Preset {
|
|
|
|
internal enum Cells {
|
|
|
|
internal enum TechDetails {
|
|
|
|
/// Technical details
|
|
|
|
internal static let caption = L10n.tr("Localizable", "provider.preset.cells.tech_details.caption")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-18 07:52:23 +00:00
|
|
|
internal enum Reddit {
|
|
|
|
/// Did you know that Passepartout has a subreddit? Subscribe for updates or to discuss issues, features, new platforms or whatever you like.\n\nIt's also a great way to show you care about this project.
|
|
|
|
internal static let message = L10n.tr("Localizable", "reddit.message")
|
2018-10-18 13:57:59 +00:00
|
|
|
/// Reddit
|
|
|
|
internal static let title = L10n.tr("Localizable", "reddit.title")
|
2018-10-18 07:52:23 +00:00
|
|
|
internal enum Buttons {
|
|
|
|
/// Don't ask again
|
|
|
|
internal static let never = L10n.tr("Localizable", "reddit.buttons.never")
|
|
|
|
/// Remind me later
|
|
|
|
internal static let remind = L10n.tr("Localizable", "reddit.buttons.remind")
|
|
|
|
/// Subscribe now!
|
|
|
|
internal static let subscribe = L10n.tr("Localizable", "reddit.buttons.subscribe")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Service {
|
|
|
|
internal enum Alerts {
|
2018-10-18 20:51:37 +00:00
|
|
|
internal enum CredentialsNeeded {
|
|
|
|
/// You need to enter account credentials first.
|
|
|
|
internal static let message = L10n.tr("Localizable", "service.alerts.credentials_needed.message")
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
internal enum DataCount {
|
|
|
|
internal enum Messages {
|
|
|
|
/// Received: %llu\nSent: %llu
|
|
|
|
internal static func current(_ p1: Int, _ p2: Int) -> String {
|
|
|
|
return L10n.tr("Localizable", "service.alerts.data_count.messages.current", p1, p2)
|
|
|
|
}
|
|
|
|
/// Information not available, are you connected?
|
|
|
|
internal static let notAvailable = L10n.tr("Localizable", "service.alerts.data_count.messages.not_available")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum ReconnectVpn {
|
|
|
|
/// Do you want to reconnect to the VPN?
|
|
|
|
internal static let message = L10n.tr("Localizable", "service.alerts.reconnect_vpn.message")
|
|
|
|
}
|
2018-11-02 10:19:59 +00:00
|
|
|
internal enum Rename {
|
|
|
|
/// Rename profile
|
|
|
|
internal static let title = L10n.tr("Localizable", "service.alerts.rename.title")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum TestConnectivity {
|
|
|
|
/// Connectivity
|
|
|
|
internal static let title = L10n.tr("Localizable", "service.alerts.test_connectivity.title")
|
|
|
|
internal enum Messages {
|
|
|
|
/// Your device has no Internet connectivity, please review your profile parameters.
|
|
|
|
internal static let failure = L10n.tr("Localizable", "service.alerts.test_connectivity.messages.failure")
|
|
|
|
/// Your device is connected to the Internet!
|
|
|
|
internal static let success = L10n.tr("Localizable", "service.alerts.test_connectivity.messages.success")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Trusted {
|
|
|
|
internal enum NoNetwork {
|
|
|
|
/// You are not connected to any Wi-Fi network.
|
|
|
|
internal static let message = L10n.tr("Localizable", "service.alerts.trusted.no_network.message")
|
|
|
|
}
|
|
|
|
internal enum WillDisconnectPolicy {
|
|
|
|
/// By changing the trust policy, the VPN may be disconnected. Continue?
|
|
|
|
internal static let message = L10n.tr("Localizable", "service.alerts.trusted.will_disconnect_policy.message")
|
|
|
|
}
|
|
|
|
internal enum WillDisconnectTrusted {
|
|
|
|
/// By trusting this network, the VPN may be disconnected. Continue?
|
|
|
|
internal static let message = L10n.tr("Localizable", "service.alerts.trusted.will_disconnect_trusted.message")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Cells {
|
|
|
|
internal enum Account {
|
|
|
|
/// Account
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.account.caption")
|
|
|
|
/// None configured
|
|
|
|
internal static let `none` = L10n.tr("Localizable", "service.cells.account.none")
|
|
|
|
}
|
|
|
|
internal enum ConnectionStatus {
|
|
|
|
/// Status
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.connection_status.caption")
|
|
|
|
}
|
|
|
|
internal enum DataCount {
|
|
|
|
/// Exchanged bytes count
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.data_count.caption")
|
|
|
|
}
|
|
|
|
internal enum DebugLog {
|
|
|
|
/// Debug log
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.debug_log.caption")
|
|
|
|
}
|
|
|
|
internal enum Endpoint {
|
|
|
|
/// Endpoint
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.endpoint.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// Automatic
|
|
|
|
internal static let automatic = L10n.tr("Localizable", "service.cells.endpoint.value.automatic")
|
|
|
|
/// Manual
|
|
|
|
internal static let manual = L10n.tr("Localizable", "service.cells.endpoint.value.manual")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Host {
|
|
|
|
internal enum Parameters {
|
|
|
|
/// Parameters
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.host.parameters.caption")
|
|
|
|
internal enum Value {
|
|
|
|
/// %@
|
|
|
|
internal static func cipher(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "service.cells.host.parameters.value.cipher", p1)
|
|
|
|
}
|
|
|
|
/// %@ / %@
|
|
|
|
internal static func cipherDigest(_ p1: String, _ p2: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "service.cells.host.parameters.value.cipher_digest", p1, p2)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Provider {
|
|
|
|
internal enum Pool {
|
|
|
|
/// Location
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.provider.pool.caption")
|
|
|
|
}
|
|
|
|
internal enum Preset {
|
|
|
|
/// Preset
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.provider.preset.caption")
|
|
|
|
}
|
|
|
|
internal enum Refresh {
|
|
|
|
/// Refresh infrastructure
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.provider.refresh.caption")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Reconnect {
|
|
|
|
/// Reconnect
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.reconnect.caption")
|
|
|
|
}
|
2018-10-23 08:25:16 +00:00
|
|
|
internal enum ReportIssue {
|
|
|
|
/// Report connectivity issue
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.report_issue.caption")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum TestConnectivity {
|
|
|
|
/// Test connectivity
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.test_connectivity.caption")
|
|
|
|
}
|
|
|
|
internal enum TrustedAddWifi {
|
2018-10-28 13:39:38 +00:00
|
|
|
/// Add current Wi-Fi
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_add_wifi.caption")
|
|
|
|
}
|
|
|
|
internal enum TrustedMobile {
|
|
|
|
/// Cellular network
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_mobile.caption")
|
|
|
|
}
|
|
|
|
internal enum TrustedPolicy {
|
2018-11-04 11:05:45 +00:00
|
|
|
/// Trust disables VPN
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_policy.caption")
|
|
|
|
}
|
|
|
|
internal enum TrustedWifi {
|
|
|
|
/// %@
|
|
|
|
internal static func caption(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "service.cells.trusted_wifi.caption", p1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum UseProfile {
|
|
|
|
/// Use this profile
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.use_profile.caption")
|
|
|
|
}
|
|
|
|
internal enum VpnResolvesHostname {
|
|
|
|
/// Resolve server hostname
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_resolves_hostname.caption")
|
|
|
|
}
|
|
|
|
internal enum VpnService {
|
|
|
|
/// Enabled
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_service.caption")
|
|
|
|
}
|
|
|
|
internal enum VpnSurvivesSleep {
|
|
|
|
/// Keep alive on sleep
|
|
|
|
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_survives_sleep.caption")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Sections {
|
|
|
|
internal enum Configuration {
|
|
|
|
/// Configuration
|
|
|
|
internal static let header = L10n.tr("Localizable", "service.sections.configuration.header")
|
|
|
|
}
|
|
|
|
internal enum Diagnostics {
|
|
|
|
/// Diagnostics
|
|
|
|
internal static let header = L10n.tr("Localizable", "service.sections.diagnostics.header")
|
|
|
|
}
|
|
|
|
internal enum General {
|
|
|
|
/// General
|
|
|
|
internal static let header = L10n.tr("Localizable", "service.sections.general.header")
|
|
|
|
}
|
|
|
|
internal enum ProviderInfrastructure {
|
|
|
|
/// Last updated on %@.
|
|
|
|
internal static func footer(_ p1: String) -> String {
|
|
|
|
return L10n.tr("Localizable", "service.sections.provider_infrastructure.footer", p1)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Status {
|
|
|
|
/// Connection
|
|
|
|
internal static let header = L10n.tr("Localizable", "service.sections.status.header")
|
|
|
|
}
|
|
|
|
internal enum Trusted {
|
2018-11-05 13:12:30 +00:00
|
|
|
/// When entering a trusted network, the VPN is normally shut down and kept disconnected. Disable this option to not enforce such behavior.
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let footer = L10n.tr("Localizable", "service.sections.trusted.footer")
|
|
|
|
/// Trusted networks
|
|
|
|
internal static let header = L10n.tr("Localizable", "service.sections.trusted.header")
|
|
|
|
}
|
|
|
|
internal enum Vpn {
|
2018-10-21 08:08:56 +00:00
|
|
|
/// The connection will be established whenever necessary.
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let footer = L10n.tr("Localizable", "service.sections.vpn.footer")
|
|
|
|
/// VPN
|
|
|
|
internal static let header = L10n.tr("Localizable", "service.sections.vpn.header")
|
|
|
|
}
|
|
|
|
internal enum VpnResolvesHostname {
|
|
|
|
/// Preferred in most networks and required in some IPv6 networks. Disable where DNS is blocked, or to speed up negotiation when DNS is slow to respond.
|
|
|
|
internal static let footer = L10n.tr("Localizable", "service.sections.vpn_resolves_hostname.footer")
|
|
|
|
}
|
|
|
|
internal enum VpnSurvivesSleep {
|
|
|
|
/// Disable to improve battery usage, at the expense of occasional slowdowns due to wake-up reconnections.
|
|
|
|
internal static let footer = L10n.tr("Localizable", "service.sections.vpn_survives_sleep.footer")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Welcome {
|
|
|
|
/// Welcome to Passepartout!\n\nUse the organizer to add a new profile.
|
|
|
|
internal static let message = L10n.tr("Localizable", "service.welcome.message")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2018-10-23 09:54:31 +00:00
|
|
|
internal enum Share {
|
|
|
|
/// Passepartout is an user-friendly, open source OpenVPN client for iOS and macOS
|
|
|
|
internal static let message = L10n.tr("Localizable", "share.message")
|
|
|
|
}
|
|
|
|
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Version {
|
2018-10-29 19:44:01 +00:00
|
|
|
/// Version
|
|
|
|
internal static let title = L10n.tr("Localizable", "version.title")
|
2018-10-11 07:13:19 +00:00
|
|
|
internal enum Buttons {
|
|
|
|
/// CHANGELOG
|
|
|
|
internal static let changelog = L10n.tr("Localizable", "version.buttons.changelog")
|
2018-10-29 19:41:25 +00:00
|
|
|
/// CREDITS
|
|
|
|
internal static let credits = L10n.tr("Localizable", "version.buttons.credits")
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
internal enum Labels {
|
2018-10-30 19:46:09 +00:00
|
|
|
/// Passepartout and TunnelKit are written and maintained by Davide De Rosa (keeshux).\n\nSource code for Passepartout and TunnelKit is publicly available on GitHub under the GPLv3, you can find links in the home page.\n\nPassepartout is a non-official client and is in no way affiliated with OpenVPN Inc.
|
2018-10-11 07:13:19 +00:00
|
|
|
internal static let intro = L10n.tr("Localizable", "version.labels.intro")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
internal enum Vpn {
|
|
|
|
/// Active
|
|
|
|
internal static let active = L10n.tr("Localizable", "vpn.active")
|
|
|
|
/// Connecting
|
|
|
|
internal static let connecting = L10n.tr("Localizable", "vpn.connecting")
|
|
|
|
/// Disabled
|
|
|
|
internal static let disabled = L10n.tr("Localizable", "vpn.disabled")
|
|
|
|
/// Disconnecting
|
|
|
|
internal static let disconnecting = L10n.tr("Localizable", "vpn.disconnecting")
|
|
|
|
/// Inactive
|
|
|
|
internal static let inactive = L10n.tr("Localizable", "vpn.inactive")
|
2018-10-21 21:53:20 +00:00
|
|
|
internal enum Errors {
|
|
|
|
/// Auth failed
|
|
|
|
internal static let auth = L10n.tr("Localizable", "vpn.errors.auth")
|
|
|
|
/// DNS failed
|
|
|
|
internal static let dns = L10n.tr("Localizable", "vpn.errors.dns")
|
2018-10-23 21:17:16 +00:00
|
|
|
/// Encryption failed
|
|
|
|
internal static let encryption = L10n.tr("Localizable", "vpn.errors.encryption")
|
2018-10-21 21:53:20 +00:00
|
|
|
/// Network changed
|
|
|
|
internal static let network = L10n.tr("Localizable", "vpn.errors.network")
|
|
|
|
/// Timeout
|
|
|
|
internal static let timeout = L10n.tr("Localizable", "vpn.errors.timeout")
|
|
|
|
/// TLS failed
|
|
|
|
internal static let tls = L10n.tr("Localizable", "vpn.errors.tls")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
internal enum Wizards {
|
|
|
|
internal enum Host {
|
|
|
|
internal enum Alerts {
|
2018-10-23 08:49:35 +00:00
|
|
|
internal enum Existing {
|
|
|
|
/// A host profile with the same title already exists. Replace it?
|
|
|
|
internal static let message = L10n.tr("Localizable", "wizards.host.alerts.existing.message")
|
|
|
|
}
|
2018-10-11 07:13:19 +00:00
|
|
|
}
|
|
|
|
internal enum Cells {
|
|
|
|
internal enum TitleInput {
|
|
|
|
/// Title
|
|
|
|
internal static let caption = L10n.tr("Localizable", "wizards.host.cells.title_input.caption")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
internal enum Sections {
|
|
|
|
internal enum Existing {
|
|
|
|
/// Existing profiles
|
|
|
|
internal static let header = L10n.tr("Localizable", "wizards.host.sections.existing.header")
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2018-10-28 08:36:56 +00:00
|
|
|
// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length
|
|
|
|
// swiftlint:enable nesting type_body_length type_name
|
|
|
|
|
|
|
|
// MARK: - Implementation Details
|
2018-10-11 07:13:19 +00:00
|
|
|
|
|
|
|
extension L10n {
|
|
|
|
private static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String {
|
|
|
|
let format = NSLocalizedString(key, tableName: table, bundle: Bundle(for: BundleToken.self), comment: "")
|
|
|
|
return String(format: format, locale: Locale.current, arguments: args)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private final class BundleToken {}
|