Merge branch 'minor-fixes'
This commit is contained in:
commit
571cee7818
|
@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file.
|
||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## Unreleased
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Add current Wi-Fi to trusted networks list but don't trust it by default.
|
||||||
|
|
||||||
## 1.0 beta 1159 (2018-10-27)
|
## 1.0 beta 1159 (2018-10-27)
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
|
@ -0,0 +1,75 @@
|
||||||
|
// swiftlint:disable all
|
||||||
|
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
|
||||||
|
|
||||||
|
// swiftlint:disable sorted_imports
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
// swiftlint:disable superfluous_disable_command
|
||||||
|
// swiftlint:disable file_length
|
||||||
|
|
||||||
|
// MARK: - Storyboard Scenes
|
||||||
|
|
||||||
|
// swiftlint:disable explicit_type_interface identifier_name line_length type_body_length type_name
|
||||||
|
internal enum StoryboardScene {
|
||||||
|
internal enum Main: StoryboardType {
|
||||||
|
internal static let storyboardName = "Main"
|
||||||
|
|
||||||
|
internal static let initialScene = InitialSceneType<UIKit.UISplitViewController>(storyboard: Main.self)
|
||||||
|
|
||||||
|
internal static let accountIdentifier = SceneType<AccountViewController>(storyboard: Main.self, identifier: "AccountIdentifier")
|
||||||
|
|
||||||
|
internal static let configurationIdentifier = SceneType<ConfigurationViewController>(storyboard: Main.self, identifier: "ConfigurationIdentifier")
|
||||||
|
|
||||||
|
internal static let serviceIdentifier = SceneType<UIKit.UINavigationController>(storyboard: Main.self, identifier: "ServiceIdentifier")
|
||||||
|
}
|
||||||
|
internal enum Organizer: StoryboardType {
|
||||||
|
internal static let storyboardName = "Organizer"
|
||||||
|
|
||||||
|
internal static let initialScene = InitialSceneType<UIKit.UINavigationController>(storyboard: Organizer.self)
|
||||||
|
|
||||||
|
internal static let provider = SceneType<UIKit.UINavigationController>(storyboard: Organizer.self, identifier: "Provider")
|
||||||
|
|
||||||
|
internal static let wizardHostIdentifier = SceneType<UIKit.UINavigationController>(storyboard: Organizer.self, identifier: "WizardHostIdentifier")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// swiftlint:enable explicit_type_interface identifier_name line_length type_body_length type_name
|
||||||
|
|
||||||
|
// MARK: - Implementation Details
|
||||||
|
|
||||||
|
internal protocol StoryboardType {
|
||||||
|
static var storyboardName: String { get }
|
||||||
|
}
|
||||||
|
|
||||||
|
internal extension StoryboardType {
|
||||||
|
static var storyboard: UIStoryboard {
|
||||||
|
let name = self.storyboardName
|
||||||
|
return UIStoryboard(name: name, bundle: Bundle(for: BundleToken.self))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal struct SceneType<T: UIViewController> {
|
||||||
|
internal let storyboard: StoryboardType.Type
|
||||||
|
internal let identifier: String
|
||||||
|
|
||||||
|
internal func instantiate() -> T {
|
||||||
|
let identifier = self.identifier
|
||||||
|
guard let controller = storyboard.storyboard.instantiateViewController(withIdentifier: identifier) as? T else {
|
||||||
|
fatalError("ViewController '\(identifier)' is not of the expected class \(T.self).")
|
||||||
|
}
|
||||||
|
return controller
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal struct InitialSceneType<T: UIViewController> {
|
||||||
|
internal let storyboard: StoryboardType.Type
|
||||||
|
|
||||||
|
internal func instantiate() -> T {
|
||||||
|
guard let controller = storyboard.storyboard.instantiateInitialViewController() as? T else {
|
||||||
|
fatalError("ViewController is not of the expected class \(T.self).")
|
||||||
|
}
|
||||||
|
return controller
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final class BundleToken {}
|
|
@ -0,0 +1,54 @@
|
||||||
|
// swiftlint:disable all
|
||||||
|
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
|
||||||
|
|
||||||
|
// swiftlint:disable sorted_imports
|
||||||
|
import Foundation
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
// swiftlint:disable superfluous_disable_command
|
||||||
|
// swiftlint:disable file_length
|
||||||
|
|
||||||
|
// MARK: - Storyboard Segues
|
||||||
|
|
||||||
|
// swiftlint:disable explicit_type_interface identifier_name line_length type_body_length type_name
|
||||||
|
internal enum StoryboardSegue {
|
||||||
|
internal enum Main: String, SegueType {
|
||||||
|
case accountSegueIdentifier = "AccountSegueIdentifier"
|
||||||
|
case debugLogSegueIdentifier = "DebugLogSegueIdentifier"
|
||||||
|
case endpointSegueIdentifier = "EndpointSegueIdentifier"
|
||||||
|
case hostParametersSegueIdentifier = "HostParametersSegueIdentifier"
|
||||||
|
case providerPoolSegueIdentifier = "ProviderPoolSegueIdentifier"
|
||||||
|
case providerPresetSegueIdentifier = "ProviderPresetSegueIdentifier"
|
||||||
|
}
|
||||||
|
internal enum Organizer: String, SegueType {
|
||||||
|
case aboutSegueIdentifier = "AboutSegueIdentifier"
|
||||||
|
case addProviderSegueIdentifier = "AddProviderSegueIdentifier"
|
||||||
|
case creditsSegueIdentifier = "CreditsSegueIdentifier"
|
||||||
|
case disclaimerSegueIdentifier = "DisclaimerSegueIdentifier"
|
||||||
|
case importHostSegueIdentifier = "ImportHostSegueIdentifier"
|
||||||
|
case selectProfileSegueIdentifier = "SelectProfileSegueIdentifier"
|
||||||
|
case showImportedHostsSegueIdentifier = "ShowImportedHostsSegueIdentifier"
|
||||||
|
case versionSegueIdentifier = "VersionSegueIdentifier"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// swiftlint:enable explicit_type_interface identifier_name line_length type_body_length type_name
|
||||||
|
|
||||||
|
// MARK: - Implementation Details
|
||||||
|
|
||||||
|
internal protocol SegueType: RawRepresentable {}
|
||||||
|
|
||||||
|
internal extension UIViewController {
|
||||||
|
func perform<S: SegueType>(segue: S, sender: Any? = nil) where S.RawValue == String {
|
||||||
|
let identifier = segue.rawValue
|
||||||
|
performSegue(withIdentifier: identifier, sender: sender)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal extension SegueType where RawValue == String {
|
||||||
|
init?(_ segue: UIStoryboardSegue) {
|
||||||
|
guard let identifier = segue.identifier else { return nil }
|
||||||
|
self.init(rawValue: identifier)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private final class BundleToken {}
|
|
@ -1,101 +0,0 @@
|
||||||
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
|
|
||||||
|
|
||||||
// swiftlint:disable sorted_imports
|
|
||||||
import Foundation
|
|
||||||
import UIKit
|
|
||||||
import Passepartout_iOS
|
|
||||||
|
|
||||||
// swiftlint:disable superfluous_disable_command
|
|
||||||
// swiftlint:disable file_length
|
|
||||||
|
|
||||||
internal protocol StoryboardType {
|
|
||||||
static var storyboardName: String { get }
|
|
||||||
}
|
|
||||||
|
|
||||||
internal extension StoryboardType {
|
|
||||||
static var storyboard: UIStoryboard {
|
|
||||||
let name = self.storyboardName
|
|
||||||
return UIStoryboard(name: name, bundle: Bundle(for: BundleToken.self))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal struct SceneType<T: Any> {
|
|
||||||
internal let storyboard: StoryboardType.Type
|
|
||||||
internal let identifier: String
|
|
||||||
|
|
||||||
internal func instantiate() -> T {
|
|
||||||
let identifier = self.identifier
|
|
||||||
guard let controller = storyboard.storyboard.instantiateViewController(withIdentifier: identifier) as? T else {
|
|
||||||
fatalError("ViewController '\(identifier)' is not of the expected class \(T.self).")
|
|
||||||
}
|
|
||||||
return controller
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal struct InitialSceneType<T: Any> {
|
|
||||||
internal let storyboard: StoryboardType.Type
|
|
||||||
|
|
||||||
internal func instantiate() -> T {
|
|
||||||
guard let controller = storyboard.storyboard.instantiateInitialViewController() as? T else {
|
|
||||||
fatalError("ViewController is not of the expected class \(T.self).")
|
|
||||||
}
|
|
||||||
return controller
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal protocol SegueType: RawRepresentable { }
|
|
||||||
|
|
||||||
internal extension UIViewController {
|
|
||||||
func perform<S: SegueType>(segue: S, sender: Any? = nil) where S.RawValue == String {
|
|
||||||
let identifier = segue.rawValue
|
|
||||||
performSegue(withIdentifier: identifier, sender: sender)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// swiftlint:disable explicit_type_interface identifier_name line_length type_body_length type_name
|
|
||||||
internal enum StoryboardScene {
|
|
||||||
internal enum Main: StoryboardType {
|
|
||||||
internal static let storyboardName = "Main"
|
|
||||||
|
|
||||||
internal static let initialScene = InitialSceneType<UISplitViewController>(storyboard: Main.self)
|
|
||||||
|
|
||||||
internal static let accountIdentifier = SceneType<Passepartout_iOS.AccountViewController>(storyboard: Main.self, identifier: "AccountIdentifier")
|
|
||||||
|
|
||||||
internal static let configurationIdentifier = SceneType<Passepartout_iOS.ConfigurationViewController>(storyboard: Main.self, identifier: "ConfigurationIdentifier")
|
|
||||||
|
|
||||||
internal static let serviceIdentifier = SceneType<UINavigationController>(storyboard: Main.self, identifier: "ServiceIdentifier")
|
|
||||||
}
|
|
||||||
internal enum Organizer: StoryboardType {
|
|
||||||
internal static let storyboardName = "Organizer"
|
|
||||||
|
|
||||||
internal static let initialScene = InitialSceneType<UINavigationController>(storyboard: Organizer.self)
|
|
||||||
|
|
||||||
internal static let provider = SceneType<UINavigationController>(storyboard: Organizer.self, identifier: "Provider")
|
|
||||||
|
|
||||||
internal static let wizardHostIdentifier = SceneType<UINavigationController>(storyboard: Organizer.self, identifier: "WizardHostIdentifier")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal enum StoryboardSegue {
|
|
||||||
internal enum Main: String, SegueType {
|
|
||||||
case accountSegueIdentifier = "AccountSegueIdentifier"
|
|
||||||
case debugLogSegueIdentifier = "DebugLogSegueIdentifier"
|
|
||||||
case endpointSegueIdentifier = "EndpointSegueIdentifier"
|
|
||||||
case hostParametersSegueIdentifier = "HostParametersSegueIdentifier"
|
|
||||||
case providerPoolSegueIdentifier = "ProviderPoolSegueIdentifier"
|
|
||||||
case providerPresetSegueIdentifier = "ProviderPresetSegueIdentifier"
|
|
||||||
}
|
|
||||||
internal enum Organizer: String, SegueType {
|
|
||||||
case aboutSegueIdentifier = "AboutSegueIdentifier"
|
|
||||||
case addProviderSegueIdentifier = "AddProviderSegueIdentifier"
|
|
||||||
case creditsSegueIdentifier = "CreditsSegueIdentifier"
|
|
||||||
case disclaimerSegueIdentifier = "DisclaimerSegueIdentifier"
|
|
||||||
case importHostSegueIdentifier = "ImportHostSegueIdentifier"
|
|
||||||
case selectProfileSegueIdentifier = "SelectProfileSegueIdentifier"
|
|
||||||
case showImportedHostsSegueIdentifier = "ShowImportedHostsSegueIdentifier"
|
|
||||||
case versionSegueIdentifier = "VersionSegueIdentifier"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// swiftlint:enable explicit_type_interface identifier_name line_length type_body_length type_name
|
|
||||||
|
|
||||||
private final class BundleToken {}
|
|
|
@ -9,7 +9,7 @@
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
0E05C5D420D1645F006EE732 /* FieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05C5CE20D139AF006EE732 /* FieldTableViewCell.swift */; };
|
0E05C5D420D1645F006EE732 /* FieldTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05C5CE20D139AF006EE732 /* FieldTableViewCell.swift */; };
|
||||||
0E05C5D520D1645F006EE732 /* SettingTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED824CD20D12DBE00F2FE9E /* SettingTableViewCell.swift */; };
|
0E05C5D520D1645F006EE732 /* SettingTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED824CD20D12DBE00F2FE9E /* SettingTableViewCell.swift */; };
|
||||||
0E05C5D620D1645F006EE732 /* SwiftGen+Storyboards.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DE320C89028004C739C /* SwiftGen+Storyboards.swift */; };
|
0E05C5D620D1645F006EE732 /* SwiftGen+Scenes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DE320C89028004C739C /* SwiftGen+Scenes.swift */; };
|
||||||
0E05C5D720D1645F006EE732 /* ToggleTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED824C920D12B8700F2FE9E /* ToggleTableViewCell.swift */; };
|
0E05C5D720D1645F006EE732 /* ToggleTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ED824C920D12B8700F2FE9E /* ToggleTableViewCell.swift */; };
|
||||||
0E05C5DC20D198B9006EE732 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E05C5DF20D198B9006EE732 /* Localizable.strings */; };
|
0E05C5DC20D198B9006EE732 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = 0E05C5DF20D198B9006EE732 /* Localizable.strings */; };
|
||||||
0E05C5E420D1993C006EE732 /* SwiftGen+Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05C5E320D1993C006EE732 /* SwiftGen+Strings.swift */; };
|
0E05C5E420D1993C006EE732 /* SwiftGen+Strings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E05C5E320D1993C006EE732 /* SwiftGen+Strings.swift */; };
|
||||||
|
@ -85,6 +85,7 @@
|
||||||
0EDE8DE720C93945004C739C /* Credentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DE620C93945004C739C /* Credentials.swift */; };
|
0EDE8DE720C93945004C739C /* Credentials.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DE620C93945004C739C /* Credentials.swift */; };
|
||||||
0EDE8DEE20C93E4C004C739C /* GroupConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */; };
|
0EDE8DEE20C93E4C004C739C /* GroupConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */; };
|
||||||
0EE3BBB2215ED3A900F30952 /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE3BBB1215ED3A900F30952 /* AboutViewController.swift */; };
|
0EE3BBB2215ED3A900F30952 /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EE3BBB1215ED3A900F30952 /* AboutViewController.swift */; };
|
||||||
|
0EF56BBB2185AC8500B0C8AB /* SwiftGen+Segues.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EF56BBA2185AC8500B0C8AB /* SwiftGen+Segues.swift */; };
|
||||||
0EF5CF252141CE58004FF1BD /* HUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EF5CF242141CE58004FF1BD /* HUD.swift */; };
|
0EF5CF252141CE58004FF1BD /* HUD.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EF5CF242141CE58004FF1BD /* HUD.swift */; };
|
||||||
0EF5CF292141F31F004FF1BD /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4FD7ED20D539A0002221FF /* Utils.swift */; };
|
0EF5CF292141F31F004FF1BD /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E4FD7ED20D539A0002221FF /* Utils.swift */; };
|
||||||
0EFD943E215BE10800529B64 /* IssueReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFD943D215BE10800529B64 /* IssueReporter.swift */; };
|
0EFD943E215BE10800529B64 /* IssueReporter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EFD943D215BE10800529B64 /* IssueReporter.swift */; };
|
||||||
|
@ -208,10 +209,11 @@
|
||||||
0EDE8DC520C86910004C739C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
0EDE8DC520C86910004C739C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
0EDE8DD220C86978004C739C /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; };
|
0EDE8DD220C86978004C739C /* NotificationCenter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NotificationCenter.framework; path = System/Library/Frameworks/NotificationCenter.framework; sourceTree = SDKROOT; };
|
||||||
0EDE8DE220C86A13004C739C /* Passepartout.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Passepartout.entitlements; sourceTree = "<group>"; };
|
0EDE8DE220C86A13004C739C /* Passepartout.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Passepartout.entitlements; sourceTree = "<group>"; };
|
||||||
0EDE8DE320C89028004C739C /* SwiftGen+Storyboards.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Storyboards.swift"; sourceTree = "<group>"; };
|
0EDE8DE320C89028004C739C /* SwiftGen+Scenes.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Scenes.swift"; sourceTree = "<group>"; };
|
||||||
0EDE8DE620C93945004C739C /* Credentials.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Credentials.swift; sourceTree = "<group>"; };
|
0EDE8DE620C93945004C739C /* Credentials.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Credentials.swift; sourceTree = "<group>"; };
|
||||||
0EDE8DED20C93E4C004C739C /* GroupConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupConstants.swift; sourceTree = "<group>"; };
|
0EDE8DED20C93E4C004C739C /* GroupConstants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GroupConstants.swift; sourceTree = "<group>"; };
|
||||||
0EE3BBB1215ED3A900F30952 /* AboutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = "<group>"; };
|
0EE3BBB1215ED3A900F30952 /* AboutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = "<group>"; };
|
||||||
|
0EF56BBA2185AC8500B0C8AB /* SwiftGen+Segues.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "SwiftGen+Segues.swift"; sourceTree = "<group>"; };
|
||||||
0EF5CF242141CE58004FF1BD /* HUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HUD.swift; sourceTree = "<group>"; };
|
0EF5CF242141CE58004FF1BD /* HUD.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HUD.swift; sourceTree = "<group>"; };
|
||||||
0EFD943D215BE10800529B64 /* IssueReporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IssueReporter.swift; sourceTree = "<group>"; };
|
0EFD943D215BE10800529B64 /* IssueReporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IssueReporter.swift; sourceTree = "<group>"; };
|
||||||
0EFD943F215BED8E00529B64 /* LabelViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelViewController.swift; sourceTree = "<group>"; };
|
0EFD943F215BED8E00529B64 /* LabelViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LabelViewController.swift; sourceTree = "<group>"; };
|
||||||
|
@ -441,7 +443,8 @@
|
||||||
0E4FD7F020D58618002221FF /* Macros.swift */,
|
0E4FD7F020D58618002221FF /* Macros.swift */,
|
||||||
0ED38AE9214054A50004D387 /* OptionViewController.swift */,
|
0ED38AE9214054A50004D387 /* OptionViewController.swift */,
|
||||||
0EA068F3218475F800C320AD /* ParsedFile+Alerts.swift */,
|
0EA068F3218475F800C320AD /* ParsedFile+Alerts.swift */,
|
||||||
0EDE8DE320C89028004C739C /* SwiftGen+Storyboards.swift */,
|
0EDE8DE320C89028004C739C /* SwiftGen+Scenes.swift */,
|
||||||
|
0EF56BBA2185AC8500B0C8AB /* SwiftGen+Segues.swift */,
|
||||||
0E05C61C20D27C82006EE732 /* Theme.swift */,
|
0E05C61C20D27C82006EE732 /* Theme.swift */,
|
||||||
0ECEE44F20E1182E00A6BB43 /* Theme+Cells.swift */,
|
0ECEE44F20E1182E00A6BB43 /* Theme+Cells.swift */,
|
||||||
0E2B493F20FCFF990094784C /* Theme+Titles.swift */,
|
0E2B493F20FCFF990094784C /* Theme+Titles.swift */,
|
||||||
|
@ -827,11 +830,12 @@
|
||||||
0E5E5DE2215119DD00E318A3 /* VPNConfiguration.swift in Sources */,
|
0E5E5DE2215119DD00E318A3 /* VPNConfiguration.swift in Sources */,
|
||||||
0EBE3AA0213DC1A100BFA2F5 /* ConnectionProfile.swift in Sources */,
|
0EBE3AA0213DC1A100BFA2F5 /* ConnectionProfile.swift in Sources */,
|
||||||
0E1066C920E0F84A004F98B7 /* Cells.swift in Sources */,
|
0E1066C920E0F84A004F98B7 /* Cells.swift in Sources */,
|
||||||
|
0EF56BBB2185AC8500B0C8AB /* SwiftGen+Segues.swift in Sources */,
|
||||||
0EBE3AA6213DC1B000BFA2F5 /* ProviderConnectionProfile.swift in Sources */,
|
0EBE3AA6213DC1B000BFA2F5 /* ProviderConnectionProfile.swift in Sources */,
|
||||||
0E3DA371215CB5BF00B40FC9 /* VersionViewController.swift in Sources */,
|
0E3DA371215CB5BF00B40FC9 /* VersionViewController.swift in Sources */,
|
||||||
0EBBE8F52182361800106008 /* ConnectionService+Migration.swift in Sources */,
|
0EBBE8F52182361800106008 /* ConnectionService+Migration.swift in Sources */,
|
||||||
0E39BCF3214DA9310035E9DE /* AppConstants.swift in Sources */,
|
0E39BCF3214DA9310035E9DE /* AppConstants.swift in Sources */,
|
||||||
0E05C5D620D1645F006EE732 /* SwiftGen+Storyboards.swift in Sources */,
|
0E05C5D620D1645F006EE732 /* SwiftGen+Scenes.swift in Sources */,
|
||||||
0E2B494220FD16540094784C /* TransientStore.swift in Sources */,
|
0E2B494220FD16540094784C /* TransientStore.swift in Sources */,
|
||||||
0E89DFC5213DF7AE00741BA1 /* Preferences.swift in Sources */,
|
0E89DFC5213DF7AE00741BA1 /* Preferences.swift in Sources */,
|
||||||
0E6BE13A20CFB76800A6DD36 /* ApplicationError.swift in Sources */,
|
0E6BE13A20CFB76800A6DD36 /* ApplicationError.swift in Sources */,
|
||||||
|
|
|
@ -98,7 +98,7 @@
|
||||||
//"service.cells.vpn_prefers_udp.caption" = "Prefer UDP socket";
|
//"service.cells.vpn_prefers_udp.caption" = "Prefer UDP socket";
|
||||||
"service.cells.trusted_mobile.caption" = "Cellular network";
|
"service.cells.trusted_mobile.caption" = "Cellular network";
|
||||||
"service.cells.trusted_wifi.caption" = "%@";
|
"service.cells.trusted_wifi.caption" = "%@";
|
||||||
"service.cells.trusted_add_wifi.caption" = "Trust current Wi-Fi";
|
"service.cells.trusted_add_wifi.caption" = "Add current Wi-Fi";
|
||||||
"service.cells.trusted_policy.caption" = "Retain existing connection";
|
"service.cells.trusted_policy.caption" = "Retain existing connection";
|
||||||
"service.cells.test_connectivity.caption" = "Test connectivity";
|
"service.cells.test_connectivity.caption" = "Test connectivity";
|
||||||
"service.cells.data_count.caption" = "Exchanged bytes count";
|
"service.cells.data_count.caption" = "Exchanged bytes count";
|
||||||
|
|
|
@ -129,9 +129,10 @@ class TrustedNetworksModel {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let isTrusted = false
|
||||||
let rowIndex = rowIndexForWifi(at: index)
|
let rowIndex = rowIndexForWifi(at: index)
|
||||||
let completionHandler: () -> Void = {
|
let completionHandler: () -> Void = {
|
||||||
self.trustedWifis[wifiToAdd] = true
|
self.trustedWifis[wifiToAdd] = isTrusted
|
||||||
|
|
||||||
if !isDuplicate {
|
if !isDuplicate {
|
||||||
self.sortedWifis.insert(wifiToAdd, at: index)
|
self.sortedWifis.insert(wifiToAdd, at: index)
|
||||||
|
@ -140,7 +141,7 @@ class TrustedNetworksModel {
|
||||||
#endif
|
#endif
|
||||||
self.delegate?.trustedNetworks(self, shouldInsertWifiAt: rowIndex)
|
self.delegate?.trustedNetworks(self, shouldInsertWifiAt: rowIndex)
|
||||||
} else {
|
} else {
|
||||||
self.delegate?.trustedNetworks(self, shouldReloadWifiAt: rowIndex, isTrusted: true)
|
self.delegate?.trustedNetworks(self, shouldReloadWifiAt: rowIndex, isTrusted: isTrusted)
|
||||||
}
|
}
|
||||||
|
|
||||||
self.delegate?.trustedNetworksShouldReinstall(self)
|
self.delegate?.trustedNetworksShouldReinstall(self)
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
// swiftlint:disable all
|
||||||
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
|
// Generated using SwiftGen, by O.Halligon — https://github.com/SwiftGen/SwiftGen
|
||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
@ -5,63 +6,54 @@ import Foundation
|
||||||
// swiftlint:disable superfluous_disable_command
|
// swiftlint:disable superfluous_disable_command
|
||||||
// swiftlint:disable file_length
|
// swiftlint:disable file_length
|
||||||
|
|
||||||
// swiftlint:disable explicit_type_interface identifier_name line_length nesting type_body_length type_name
|
// MARK: - Strings
|
||||||
|
|
||||||
|
// swiftlint:disable explicit_type_interface function_parameter_count identifier_name line_length
|
||||||
|
// swiftlint:disable nesting type_body_length type_name
|
||||||
internal enum L10n {
|
internal enum L10n {
|
||||||
|
|
||||||
internal enum About {
|
internal enum About {
|
||||||
/// About
|
/// About
|
||||||
internal static let title = L10n.tr("Localizable", "about.title")
|
internal static let title = L10n.tr("Localizable", "about.title")
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum JoinCommunity {
|
internal enum JoinCommunity {
|
||||||
/// Join community
|
/// Join community
|
||||||
internal static let caption = L10n.tr("Localizable", "about.cells.join_community.caption")
|
internal static let caption = L10n.tr("Localizable", "about.cells.join_community.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ShareGeneric {
|
internal enum ShareGeneric {
|
||||||
/// Invite a friend
|
/// Invite a friend
|
||||||
internal static let caption = L10n.tr("Localizable", "about.cells.share_generic.caption")
|
internal static let caption = L10n.tr("Localizable", "about.cells.share_generic.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ShareTwitter {
|
internal enum ShareTwitter {
|
||||||
/// Tweet about it!
|
/// Tweet about it!
|
||||||
internal static let caption = L10n.tr("Localizable", "about.cells.share_twitter.caption")
|
internal static let caption = L10n.tr("Localizable", "about.cells.share_twitter.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Version {
|
internal enum Version {
|
||||||
/// Version
|
/// Version
|
||||||
internal static let caption = L10n.tr("Localizable", "about.cells.version.caption")
|
internal static let caption = L10n.tr("Localizable", "about.cells.version.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Website {
|
internal enum Website {
|
||||||
/// Visit website
|
/// Visit website
|
||||||
internal static let caption = L10n.tr("Localizable", "about.cells.website.caption")
|
internal static let caption = L10n.tr("Localizable", "about.cells.website.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum WriteReview {
|
internal enum WriteReview {
|
||||||
/// Write a review
|
/// Write a review
|
||||||
internal static let caption = L10n.tr("Localizable", "about.cells.write_review.caption")
|
internal static let caption = L10n.tr("Localizable", "about.cells.write_review.caption")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Sections {
|
internal enum Sections {
|
||||||
|
|
||||||
internal enum Feedback {
|
internal enum Feedback {
|
||||||
/// Feedback
|
/// Feedback
|
||||||
internal static let header = L10n.tr("Localizable", "about.sections.feedback.header")
|
internal static let header = L10n.tr("Localizable", "about.sections.feedback.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Info {
|
internal enum Info {
|
||||||
/// General
|
/// General
|
||||||
internal static let header = L10n.tr("Localizable", "about.sections.info.header")
|
internal static let header = L10n.tr("Localizable", "about.sections.info.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Share {
|
internal enum Share {
|
||||||
/// Share
|
/// Share
|
||||||
internal static let header = L10n.tr("Localizable", "about.sections.share.header")
|
internal static let header = L10n.tr("Localizable", "about.sections.share.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Source {
|
internal enum Source {
|
||||||
/// Source code
|
/// Source code
|
||||||
internal static let header = L10n.tr("Localizable", "about.sections.source.header")
|
internal static let header = L10n.tr("Localizable", "about.sections.source.header")
|
||||||
|
@ -70,16 +62,13 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Account {
|
internal enum Account {
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum Password {
|
internal enum Password {
|
||||||
/// Password
|
/// Password
|
||||||
internal static let caption = L10n.tr("Localizable", "account.cells.password.caption")
|
internal static let caption = L10n.tr("Localizable", "account.cells.password.caption")
|
||||||
/// secret
|
/// secret
|
||||||
internal static let placeholder = L10n.tr("Localizable", "account.cells.password.placeholder")
|
internal static let placeholder = L10n.tr("Localizable", "account.cells.password.placeholder")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Username {
|
internal enum Username {
|
||||||
/// Username
|
/// Username
|
||||||
internal static let caption = L10n.tr("Localizable", "account.cells.username.caption")
|
internal static let caption = L10n.tr("Localizable", "account.cells.username.caption")
|
||||||
|
@ -87,9 +76,7 @@ internal enum L10n {
|
||||||
internal static let placeholder = L10n.tr("Localizable", "account.cells.username.placeholder")
|
internal static let placeholder = L10n.tr("Localizable", "account.cells.username.placeholder")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum SuggestionFooter {
|
internal enum SuggestionFooter {
|
||||||
|
|
||||||
internal enum Infrastructure {
|
internal enum Infrastructure {
|
||||||
/// Use your website credentials. Your username is usually numeric with a "p" prefix.
|
/// 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 static let pia = L10n.tr("Localizable", "account.suggestion_footer.infrastructure.pia")
|
||||||
|
@ -98,18 +85,14 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Configuration {
|
internal enum Configuration {
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum Cipher {
|
internal enum Cipher {
|
||||||
/// Cipher
|
/// Cipher
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.cipher.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.cipher.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Client {
|
internal enum Client {
|
||||||
/// Client certificate
|
/// Client certificate
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.client.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.client.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// Not verified
|
/// Not verified
|
||||||
internal static let disabled = L10n.tr("Localizable", "configuration.cells.client.value.disabled")
|
internal static let disabled = L10n.tr("Localizable", "configuration.cells.client.value.disabled")
|
||||||
|
@ -117,21 +100,17 @@ internal enum L10n {
|
||||||
internal static let enabled = L10n.tr("Localizable", "configuration.cells.client.value.enabled")
|
internal static let enabled = L10n.tr("Localizable", "configuration.cells.client.value.enabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum CompressionAlgorithm {
|
internal enum CompressionAlgorithm {
|
||||||
/// Compression
|
/// Compression
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.compression_algorithm.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.compression_algorithm.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// Disabled
|
/// Disabled
|
||||||
internal static let disabled = L10n.tr("Localizable", "configuration.cells.compression_algorithm.value.disabled")
|
internal static let disabled = L10n.tr("Localizable", "configuration.cells.compression_algorithm.value.disabled")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum CompressionFrame {
|
internal enum CompressionFrame {
|
||||||
/// Framing
|
/// Framing
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.compression_frame.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.compression_frame.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// Compress
|
/// Compress
|
||||||
internal static let compress = L10n.tr("Localizable", "configuration.cells.compression_frame.value.compress")
|
internal static let compress = L10n.tr("Localizable", "configuration.cells.compression_frame.value.compress")
|
||||||
|
@ -141,21 +120,17 @@ internal enum L10n {
|
||||||
internal static let lzo = L10n.tr("Localizable", "configuration.cells.compression_frame.value.lzo")
|
internal static let lzo = L10n.tr("Localizable", "configuration.cells.compression_frame.value.lzo")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Digest {
|
internal enum Digest {
|
||||||
/// Authentication
|
/// Authentication
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.digest.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.digest.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// Embedded
|
/// Embedded
|
||||||
internal static let embedded = L10n.tr("Localizable", "configuration.cells.digest.value.embedded")
|
internal static let embedded = L10n.tr("Localizable", "configuration.cells.digest.value.embedded")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum KeepAlive {
|
internal enum KeepAlive {
|
||||||
/// Keep-alive
|
/// Keep-alive
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.keep_alive.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.keep_alive.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// Disabled
|
/// Disabled
|
||||||
internal static let never = L10n.tr("Localizable", "configuration.cells.keep_alive.value.never")
|
internal static let never = L10n.tr("Localizable", "configuration.cells.keep_alive.value.never")
|
||||||
|
@ -165,11 +140,9 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum RenegotiationSeconds {
|
internal enum RenegotiationSeconds {
|
||||||
/// Renegotiation
|
/// Renegotiation
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.renegotiation_seconds.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.renegotiation_seconds.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// after %@
|
/// after %@
|
||||||
internal static func after(_ p1: String) -> String {
|
internal static func after(_ p1: String) -> String {
|
||||||
|
@ -179,16 +152,13 @@ internal enum L10n {
|
||||||
internal static let never = L10n.tr("Localizable", "configuration.cells.renegotiation_seconds.value.never")
|
internal static let never = L10n.tr("Localizable", "configuration.cells.renegotiation_seconds.value.never")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ResetOriginal {
|
internal enum ResetOriginal {
|
||||||
/// Reset configuration
|
/// Reset configuration
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.reset_original.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.reset_original.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum TlsWrapping {
|
internal enum TlsWrapping {
|
||||||
/// Wrapping
|
/// Wrapping
|
||||||
internal static let caption = L10n.tr("Localizable", "configuration.cells.tls_wrapping.caption")
|
internal static let caption = L10n.tr("Localizable", "configuration.cells.tls_wrapping.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// Authentication
|
/// Authentication
|
||||||
internal static let auth = L10n.tr("Localizable", "configuration.cells.tls_wrapping.value.auth")
|
internal static let auth = L10n.tr("Localizable", "configuration.cells.tls_wrapping.value.auth")
|
||||||
|
@ -199,24 +169,19 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Sections {
|
internal enum Sections {
|
||||||
|
|
||||||
internal enum Communication {
|
internal enum Communication {
|
||||||
/// Communication
|
/// Communication
|
||||||
internal static let header = L10n.tr("Localizable", "configuration.sections.communication.header")
|
internal static let header = L10n.tr("Localizable", "configuration.sections.communication.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Other {
|
internal enum Other {
|
||||||
/// Other
|
/// Other
|
||||||
internal static let header = L10n.tr("Localizable", "configuration.sections.other.header")
|
internal static let header = L10n.tr("Localizable", "configuration.sections.other.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Reset {
|
internal enum Reset {
|
||||||
/// If you ended up with broken connectivity after changing the communication parameters, tap to revert to the original configuration.
|
/// 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")
|
internal static let footer = L10n.tr("Localizable", "configuration.sections.reset.footer")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Tls {
|
internal enum Tls {
|
||||||
/// TLS
|
/// TLS
|
||||||
internal static let header = L10n.tr("Localizable", "configuration.sections.tls.header")
|
internal static let header = L10n.tr("Localizable", "configuration.sections.tls.header")
|
||||||
|
@ -227,7 +192,6 @@ internal enum L10n {
|
||||||
internal enum Credits {
|
internal enum Credits {
|
||||||
/// Credits
|
/// Credits
|
||||||
internal static let title = L10n.tr("Localizable", "credits.title")
|
internal static let title = L10n.tr("Localizable", "credits.title")
|
||||||
|
|
||||||
internal enum Labels {
|
internal enum Labels {
|
||||||
/// Passepartout is a non-official client and is in no way affiliated with OpenVPN Inc.\n\nThe logo is taken from the awesome Circle Icons set by Nick Roach.
|
/// Passepartout is a non-official client and is in no way affiliated with OpenVPN Inc.\n\nThe logo is taken from the awesome Circle Icons set by Nick Roach.
|
||||||
internal static let thirdParties = L10n.tr("Localizable", "credits.labels.third_parties")
|
internal static let thirdParties = L10n.tr("Localizable", "credits.labels.third_parties")
|
||||||
|
@ -235,15 +199,12 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum DebugLog {
|
internal enum DebugLog {
|
||||||
|
|
||||||
internal enum Alerts {
|
internal enum Alerts {
|
||||||
|
|
||||||
internal enum EmptyLog {
|
internal enum EmptyLog {
|
||||||
/// The debug log is empty.
|
/// The debug log is empty.
|
||||||
internal static let message = L10n.tr("Localizable", "debug_log.alerts.empty_log.message")
|
internal static let message = L10n.tr("Localizable", "debug_log.alerts.empty_log.message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Buttons {
|
internal enum Buttons {
|
||||||
/// Next
|
/// Next
|
||||||
internal static let next = L10n.tr("Localizable", "debug_log.buttons.next")
|
internal static let next = L10n.tr("Localizable", "debug_log.buttons.next")
|
||||||
|
@ -255,7 +216,6 @@ internal enum L10n {
|
||||||
internal enum Disclaimer {
|
internal enum Disclaimer {
|
||||||
/// Disclaimer
|
/// Disclaimer
|
||||||
internal static let title = L10n.tr("Localizable", "disclaimer.title")
|
internal static let title = L10n.tr("Localizable", "disclaimer.title")
|
||||||
|
|
||||||
internal enum Labels {
|
internal enum Labels {
|
||||||
/// Passepartout is a VPN client based on independent work. As such, the developer -while making his best efforts to avoid it- takes no responsibility about any damage caused by the use of this software.\n\nAdditionally, the developer takes no responsibility about data usage, monitoring, logging etc. by the servers you connect to. Passepartout is not even involved in the above choices, as they're part of server-side policies.\n\nFor more information about data usage by third parties, please review the privacy policy of your VPN provider.
|
/// Passepartout is a VPN client based on independent work. As such, the developer -while making his best efforts to avoid it- takes no responsibility about any damage caused by the use of this software.\n\nAdditionally, the developer takes no responsibility about data usage, monitoring, logging etc. by the servers you connect to. Passepartout is not even involved in the above choices, as they're part of server-side policies.\n\nFor more information about data usage by third parties, please review the privacy policy of your VPN provider.
|
||||||
internal static let text = L10n.tr("Localizable", "disclaimer.labels.text")
|
internal static let text = L10n.tr("Localizable", "disclaimer.labels.text")
|
||||||
|
@ -263,27 +223,21 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Endpoint {
|
internal enum Endpoint {
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum AnyAddress {
|
internal enum AnyAddress {
|
||||||
/// Any
|
/// Any
|
||||||
internal static let caption = L10n.tr("Localizable", "endpoint.cells.any_address.caption")
|
internal static let caption = L10n.tr("Localizable", "endpoint.cells.any_address.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum AnyProtocol {
|
internal enum AnyProtocol {
|
||||||
/// Any
|
/// Any
|
||||||
internal static let caption = L10n.tr("Localizable", "endpoint.cells.any_protocol.caption")
|
internal static let caption = L10n.tr("Localizable", "endpoint.cells.any_protocol.caption")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Sections {
|
internal enum Sections {
|
||||||
|
|
||||||
internal enum LocationAddresses {
|
internal enum LocationAddresses {
|
||||||
/// Addresses
|
/// Addresses
|
||||||
internal static let header = L10n.tr("Localizable", "endpoint.sections.location_addresses.header")
|
internal static let header = L10n.tr("Localizable", "endpoint.sections.location_addresses.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum LocationProtocols {
|
internal enum LocationProtocols {
|
||||||
/// Protocols
|
/// Protocols
|
||||||
internal static let header = L10n.tr("Localizable", "endpoint.sections.location_protocols.header")
|
internal static let header = L10n.tr("Localizable", "endpoint.sections.location_protocols.header")
|
||||||
|
@ -310,20 +264,16 @@ internal enum L10n {
|
||||||
internal static let message = L10n.tr("Localizable", "issue_reporter.message")
|
internal static let message = L10n.tr("Localizable", "issue_reporter.message")
|
||||||
/// Report issue
|
/// Report issue
|
||||||
internal static let title = L10n.tr("Localizable", "issue_reporter.title")
|
internal static let title = L10n.tr("Localizable", "issue_reporter.title")
|
||||||
|
|
||||||
internal enum Alerts {
|
internal enum Alerts {
|
||||||
|
|
||||||
internal enum EmailNotConfigured {
|
internal enum EmailNotConfigured {
|
||||||
/// No e-mail account is configured.
|
/// No e-mail account is configured.
|
||||||
internal static let message = L10n.tr("Localizable", "issue_reporter.alerts.email_not_configured.message")
|
internal static let message = L10n.tr("Localizable", "issue_reporter.alerts.email_not_configured.message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Buttons {
|
internal enum Buttons {
|
||||||
/// I understand
|
/// I understand
|
||||||
internal static let accept = L10n.tr("Localizable", "issue_reporter.buttons.accept")
|
internal static let accept = L10n.tr("Localizable", "issue_reporter.buttons.accept")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Email {
|
internal enum Email {
|
||||||
/// Hi,\n\n%@\n\n%@\n\nRegards
|
/// Hi,\n\n%@\n\n%@\n\nRegards
|
||||||
internal static func body(_ p1: String, _ p2: String) -> String {
|
internal static func body(_ p1: String, _ p2: String) -> String {
|
||||||
|
@ -339,67 +289,53 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Organizer {
|
internal enum Organizer {
|
||||||
|
|
||||||
internal enum Alerts {
|
internal enum Alerts {
|
||||||
|
|
||||||
internal enum AddHost {
|
internal enum AddHost {
|
||||||
/// 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.
|
/// 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.
|
||||||
internal static let message = L10n.tr("Localizable", "organizer.alerts.add_host.message")
|
internal static let message = L10n.tr("Localizable", "organizer.alerts.add_host.message")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum DeleteVpnProfile {
|
internal enum DeleteVpnProfile {
|
||||||
/// Do you really want to delete the VPN profile from the device?
|
/// Do you really want to delete the VPN profile from the device?
|
||||||
internal static let message = L10n.tr("Localizable", "organizer.alerts.delete_vpn_profile.message")
|
internal static let message = L10n.tr("Localizable", "organizer.alerts.delete_vpn_profile.message")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ExhaustedProviders {
|
internal enum ExhaustedProviders {
|
||||||
/// You have created profiles for any available network.
|
/// You have created profiles for any available network.
|
||||||
internal static let message = L10n.tr("Localizable", "organizer.alerts.exhausted_providers.message")
|
internal static let message = L10n.tr("Localizable", "organizer.alerts.exhausted_providers.message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum About {
|
internal enum About {
|
||||||
/// About %@
|
/// About %@
|
||||||
internal static func caption(_ p1: String) -> String {
|
internal static func caption(_ p1: String) -> String {
|
||||||
return L10n.tr("Localizable", "organizer.cells.about.caption", p1)
|
return L10n.tr("Localizable", "organizer.cells.about.caption", p1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum AddHost {
|
internal enum AddHost {
|
||||||
/// Add new host
|
/// Add new host
|
||||||
internal static let caption = L10n.tr("Localizable", "organizer.cells.add_host.caption")
|
internal static let caption = L10n.tr("Localizable", "organizer.cells.add_host.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum AddProvider {
|
internal enum AddProvider {
|
||||||
/// Add new network
|
/// Add new network
|
||||||
internal static let caption = L10n.tr("Localizable", "organizer.cells.add_provider.caption")
|
internal static let caption = L10n.tr("Localizable", "organizer.cells.add_provider.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Profile {
|
internal enum Profile {
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// In use
|
/// In use
|
||||||
internal static let current = L10n.tr("Localizable", "organizer.cells.profile.value.current")
|
internal static let current = L10n.tr("Localizable", "organizer.cells.profile.value.current")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Uninstall {
|
internal enum Uninstall {
|
||||||
/// Delete VPN profile
|
/// Delete VPN profile
|
||||||
internal static let caption = L10n.tr("Localizable", "organizer.cells.uninstall.caption")
|
internal static let caption = L10n.tr("Localizable", "organizer.cells.uninstall.caption")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Sections {
|
internal enum Sections {
|
||||||
|
|
||||||
internal enum Hosts {
|
internal enum Hosts {
|
||||||
/// Import hosts from raw .ovpn configuration files.
|
/// Import hosts from raw .ovpn configuration files.
|
||||||
internal static let footer = L10n.tr("Localizable", "organizer.sections.hosts.footer")
|
internal static let footer = L10n.tr("Localizable", "organizer.sections.hosts.footer")
|
||||||
/// Hosts
|
/// Hosts
|
||||||
internal static let header = L10n.tr("Localizable", "organizer.sections.hosts.header")
|
internal static let header = L10n.tr("Localizable", "organizer.sections.hosts.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Providers {
|
internal enum Providers {
|
||||||
/// Here you find a few public infrastructures offering preset configuration profiles.
|
/// Here you find a few public infrastructures offering preset configuration profiles.
|
||||||
internal static let footer = L10n.tr("Localizable", "organizer.sections.providers.footer")
|
internal static let footer = L10n.tr("Localizable", "organizer.sections.providers.footer")
|
||||||
|
@ -410,35 +346,29 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ParsedFile {
|
internal enum ParsedFile {
|
||||||
|
|
||||||
internal enum Alerts {
|
internal enum Alerts {
|
||||||
|
|
||||||
internal enum Buttons {
|
internal enum Buttons {
|
||||||
/// Report an issue
|
/// Report an issue
|
||||||
internal static let report = L10n.tr("Localizable", "parsed_file.alerts.buttons.report")
|
internal static let report = L10n.tr("Localizable", "parsed_file.alerts.buttons.report")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Missing {
|
internal enum Missing {
|
||||||
/// The configuration file lacks a required option (%@).
|
/// The configuration file lacks a required option (%@).
|
||||||
internal static func message(_ p1: String) -> String {
|
internal static func message(_ p1: String) -> String {
|
||||||
return L10n.tr("Localizable", "parsed_file.alerts.missing.message", p1)
|
return L10n.tr("Localizable", "parsed_file.alerts.missing.message", p1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Parsing {
|
internal enum Parsing {
|
||||||
/// Unable to parse the provided configuration file (%@).
|
/// Unable to parse the provided configuration file (%@).
|
||||||
internal static func message(_ p1: String) -> String {
|
internal static func message(_ p1: String) -> String {
|
||||||
return L10n.tr("Localizable", "parsed_file.alerts.parsing.message", p1)
|
return L10n.tr("Localizable", "parsed_file.alerts.parsing.message", p1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum PotentiallyUnsupported {
|
internal enum PotentiallyUnsupported {
|
||||||
/// The configuration file is correct but contains a potentially unsupported option (%@).\n\nConnectivity may break depending on server settings.
|
/// 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 {
|
internal static func message(_ p1: String) -> String {
|
||||||
return L10n.tr("Localizable", "parsed_file.alerts.potentially_unsupported.message", p1)
|
return L10n.tr("Localizable", "parsed_file.alerts.potentially_unsupported.message", p1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Unsupported {
|
internal enum Unsupported {
|
||||||
/// The configuration file contains an unsupported option (%@).
|
/// The configuration file contains an unsupported option (%@).
|
||||||
internal static func message(_ p1: String) -> String {
|
internal static func message(_ p1: String) -> String {
|
||||||
|
@ -449,11 +379,8 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Provider {
|
internal enum Provider {
|
||||||
|
|
||||||
internal enum Preset {
|
internal enum Preset {
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum TechDetails {
|
internal enum TechDetails {
|
||||||
/// Technical details
|
/// Technical details
|
||||||
internal static let caption = L10n.tr("Localizable", "provider.preset.cells.tech_details.caption")
|
internal static let caption = L10n.tr("Localizable", "provider.preset.cells.tech_details.caption")
|
||||||
|
@ -467,7 +394,6 @@ internal enum L10n {
|
||||||
internal static let message = L10n.tr("Localizable", "reddit.message")
|
internal static let message = L10n.tr("Localizable", "reddit.message")
|
||||||
/// Reddit
|
/// Reddit
|
||||||
internal static let title = L10n.tr("Localizable", "reddit.title")
|
internal static let title = L10n.tr("Localizable", "reddit.title")
|
||||||
|
|
||||||
internal enum Buttons {
|
internal enum Buttons {
|
||||||
/// Don't ask again
|
/// Don't ask again
|
||||||
internal static let never = L10n.tr("Localizable", "reddit.buttons.never")
|
internal static let never = L10n.tr("Localizable", "reddit.buttons.never")
|
||||||
|
@ -479,16 +405,12 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Service {
|
internal enum Service {
|
||||||
|
|
||||||
internal enum Alerts {
|
internal enum Alerts {
|
||||||
|
|
||||||
internal enum CredentialsNeeded {
|
internal enum CredentialsNeeded {
|
||||||
/// You need to enter account credentials first.
|
/// You need to enter account credentials first.
|
||||||
internal static let message = L10n.tr("Localizable", "service.alerts.credentials_needed.message")
|
internal static let message = L10n.tr("Localizable", "service.alerts.credentials_needed.message")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum DataCount {
|
internal enum DataCount {
|
||||||
|
|
||||||
internal enum Messages {
|
internal enum Messages {
|
||||||
/// Received: %llu\nSent: %llu
|
/// Received: %llu\nSent: %llu
|
||||||
internal static func current(_ p1: Int, _ p2: Int) -> String {
|
internal static func current(_ p1: Int, _ p2: Int) -> String {
|
||||||
|
@ -498,16 +420,13 @@ internal enum L10n {
|
||||||
internal static let notAvailable = L10n.tr("Localizable", "service.alerts.data_count.messages.not_available")
|
internal static let notAvailable = L10n.tr("Localizable", "service.alerts.data_count.messages.not_available")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ReconnectVpn {
|
internal enum ReconnectVpn {
|
||||||
/// Do you want to reconnect to the VPN?
|
/// Do you want to reconnect to the VPN?
|
||||||
internal static let message = L10n.tr("Localizable", "service.alerts.reconnect_vpn.message")
|
internal static let message = L10n.tr("Localizable", "service.alerts.reconnect_vpn.message")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum TestConnectivity {
|
internal enum TestConnectivity {
|
||||||
/// Connectivity
|
/// Connectivity
|
||||||
internal static let title = L10n.tr("Localizable", "service.alerts.test_connectivity.title")
|
internal static let title = L10n.tr("Localizable", "service.alerts.test_connectivity.title")
|
||||||
|
|
||||||
internal enum Messages {
|
internal enum Messages {
|
||||||
/// Your device has no Internet connectivity, please review your profile parameters.
|
/// Your device has no Internet connectivity, please review your profile parameters.
|
||||||
internal static let failure = L10n.tr("Localizable", "service.alerts.test_connectivity.messages.failure")
|
internal static let failure = L10n.tr("Localizable", "service.alerts.test_connectivity.messages.failure")
|
||||||
|
@ -515,54 +434,43 @@ internal enum L10n {
|
||||||
internal static let success = L10n.tr("Localizable", "service.alerts.test_connectivity.messages.success")
|
internal static let success = L10n.tr("Localizable", "service.alerts.test_connectivity.messages.success")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Trusted {
|
internal enum Trusted {
|
||||||
|
|
||||||
internal enum NoNetwork {
|
internal enum NoNetwork {
|
||||||
/// You are not connected to any Wi-Fi network.
|
/// You are not connected to any Wi-Fi network.
|
||||||
internal static let message = L10n.tr("Localizable", "service.alerts.trusted.no_network.message")
|
internal static let message = L10n.tr("Localizable", "service.alerts.trusted.no_network.message")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum WillDisconnectPolicy {
|
internal enum WillDisconnectPolicy {
|
||||||
/// By changing the trust policy, the VPN may be disconnected. Continue?
|
/// 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 static let message = L10n.tr("Localizable", "service.alerts.trusted.will_disconnect_policy.message")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum WillDisconnectTrusted {
|
internal enum WillDisconnectTrusted {
|
||||||
/// By trusting this network, the VPN may be disconnected. Continue?
|
/// 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 static let message = L10n.tr("Localizable", "service.alerts.trusted.will_disconnect_trusted.message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum Account {
|
internal enum Account {
|
||||||
/// Account
|
/// Account
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.account.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.account.caption")
|
||||||
/// None configured
|
/// None configured
|
||||||
internal static let `none` = L10n.tr("Localizable", "service.cells.account.none")
|
internal static let `none` = L10n.tr("Localizable", "service.cells.account.none")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ConnectionStatus {
|
internal enum ConnectionStatus {
|
||||||
/// Status
|
/// Status
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.connection_status.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.connection_status.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum DataCount {
|
internal enum DataCount {
|
||||||
/// Exchanged bytes count
|
/// Exchanged bytes count
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.data_count.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.data_count.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum DebugLog {
|
internal enum DebugLog {
|
||||||
/// Debug log
|
/// Debug log
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.debug_log.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.debug_log.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Endpoint {
|
internal enum Endpoint {
|
||||||
/// Endpoint
|
/// Endpoint
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.endpoint.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.endpoint.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// Automatic
|
/// Automatic
|
||||||
internal static let automatic = L10n.tr("Localizable", "service.cells.endpoint.value.automatic")
|
internal static let automatic = L10n.tr("Localizable", "service.cells.endpoint.value.automatic")
|
||||||
|
@ -570,13 +478,10 @@ internal enum L10n {
|
||||||
internal static let manual = L10n.tr("Localizable", "service.cells.endpoint.value.manual")
|
internal static let manual = L10n.tr("Localizable", "service.cells.endpoint.value.manual")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Host {
|
internal enum Host {
|
||||||
|
|
||||||
internal enum Parameters {
|
internal enum Parameters {
|
||||||
/// Parameters
|
/// Parameters
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.host.parameters.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.host.parameters.caption")
|
||||||
|
|
||||||
internal enum Value {
|
internal enum Value {
|
||||||
/// %@
|
/// %@
|
||||||
internal static func cipher(_ p1: String) -> String {
|
internal static func cipher(_ p1: String) -> String {
|
||||||
|
@ -589,137 +494,111 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Provider {
|
internal enum Provider {
|
||||||
|
|
||||||
internal enum Pool {
|
internal enum Pool {
|
||||||
/// Location
|
/// Location
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.provider.pool.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.provider.pool.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Preset {
|
internal enum Preset {
|
||||||
/// Preset
|
/// Preset
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.provider.preset.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.provider.preset.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Refresh {
|
internal enum Refresh {
|
||||||
/// Refresh infrastructure
|
/// Refresh infrastructure
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.provider.refresh.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.provider.refresh.caption")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Reconnect {
|
internal enum Reconnect {
|
||||||
/// Reconnect
|
/// Reconnect
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.reconnect.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.reconnect.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ReportIssue {
|
internal enum ReportIssue {
|
||||||
/// Report connectivity issue
|
/// Report connectivity issue
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.report_issue.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.report_issue.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum TestConnectivity {
|
internal enum TestConnectivity {
|
||||||
/// Test connectivity
|
/// Test connectivity
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.test_connectivity.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.test_connectivity.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum TrustedAddWifi {
|
internal enum TrustedAddWifi {
|
||||||
/// Trust current Wi-Fi
|
/// Add current Wi-Fi
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_add_wifi.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_add_wifi.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum TrustedMobile {
|
internal enum TrustedMobile {
|
||||||
/// Cellular network
|
/// Cellular network
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_mobile.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_mobile.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum TrustedPolicy {
|
internal enum TrustedPolicy {
|
||||||
/// Retain existing connection
|
/// Retain existing connection
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_policy.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.trusted_policy.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum TrustedWifi {
|
internal enum TrustedWifi {
|
||||||
/// %@
|
/// %@
|
||||||
internal static func caption(_ p1: String) -> String {
|
internal static func caption(_ p1: String) -> String {
|
||||||
return L10n.tr("Localizable", "service.cells.trusted_wifi.caption", p1)
|
return L10n.tr("Localizable", "service.cells.trusted_wifi.caption", p1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum UseProfile {
|
internal enum UseProfile {
|
||||||
/// Use this profile
|
/// Use this profile
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.use_profile.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.use_profile.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum VpnResolvesHostname {
|
internal enum VpnResolvesHostname {
|
||||||
/// Resolve server hostname
|
/// Resolve server hostname
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_resolves_hostname.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_resolves_hostname.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum VpnService {
|
internal enum VpnService {
|
||||||
/// Enabled
|
/// Enabled
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_service.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_service.caption")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum VpnSurvivesSleep {
|
internal enum VpnSurvivesSleep {
|
||||||
/// Keep alive on sleep
|
/// Keep alive on sleep
|
||||||
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_survives_sleep.caption")
|
internal static let caption = L10n.tr("Localizable", "service.cells.vpn_survives_sleep.caption")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Sections {
|
internal enum Sections {
|
||||||
|
|
||||||
internal enum Configuration {
|
internal enum Configuration {
|
||||||
/// Configuration
|
/// Configuration
|
||||||
internal static let header = L10n.tr("Localizable", "service.sections.configuration.header")
|
internal static let header = L10n.tr("Localizable", "service.sections.configuration.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Diagnostics {
|
internal enum Diagnostics {
|
||||||
/// Diagnostics
|
/// Diagnostics
|
||||||
internal static let header = L10n.tr("Localizable", "service.sections.diagnostics.header")
|
internal static let header = L10n.tr("Localizable", "service.sections.diagnostics.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum General {
|
internal enum General {
|
||||||
/// General
|
/// General
|
||||||
internal static let header = L10n.tr("Localizable", "service.sections.general.header")
|
internal static let header = L10n.tr("Localizable", "service.sections.general.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum ProviderInfrastructure {
|
internal enum ProviderInfrastructure {
|
||||||
/// Last updated on %@.
|
/// Last updated on %@.
|
||||||
internal static func footer(_ p1: String) -> String {
|
internal static func footer(_ p1: String) -> String {
|
||||||
return L10n.tr("Localizable", "service.sections.provider_infrastructure.footer", p1)
|
return L10n.tr("Localizable", "service.sections.provider_infrastructure.footer", p1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Status {
|
internal enum Status {
|
||||||
/// Connection
|
/// Connection
|
||||||
internal static let header = L10n.tr("Localizable", "service.sections.status.header")
|
internal static let header = L10n.tr("Localizable", "service.sections.status.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Trusted {
|
internal enum Trusted {
|
||||||
/// When entering a trusted network, an existing VPN connection will not be shut down by default. Disable to always enforce a disconnection.
|
/// When entering a trusted network, an existing VPN connection will not be shut down by default. Disable to always enforce a disconnection.
|
||||||
internal static let footer = L10n.tr("Localizable", "service.sections.trusted.footer")
|
internal static let footer = L10n.tr("Localizable", "service.sections.trusted.footer")
|
||||||
/// Trusted networks
|
/// Trusted networks
|
||||||
internal static let header = L10n.tr("Localizable", "service.sections.trusted.header")
|
internal static let header = L10n.tr("Localizable", "service.sections.trusted.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Vpn {
|
internal enum Vpn {
|
||||||
/// The connection will be established whenever necessary.
|
/// The connection will be established whenever necessary.
|
||||||
internal static let footer = L10n.tr("Localizable", "service.sections.vpn.footer")
|
internal static let footer = L10n.tr("Localizable", "service.sections.vpn.footer")
|
||||||
/// VPN
|
/// VPN
|
||||||
internal static let header = L10n.tr("Localizable", "service.sections.vpn.header")
|
internal static let header = L10n.tr("Localizable", "service.sections.vpn.header")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum VpnResolvesHostname {
|
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.
|
/// 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 static let footer = L10n.tr("Localizable", "service.sections.vpn_resolves_hostname.footer")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum VpnSurvivesSleep {
|
internal enum VpnSurvivesSleep {
|
||||||
/// Disable to improve battery usage, at the expense of occasional slowdowns due to wake-up reconnections.
|
/// 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 static let footer = L10n.tr("Localizable", "service.sections.vpn_survives_sleep.footer")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Welcome {
|
internal enum Welcome {
|
||||||
/// Welcome to Passepartout!\n\nUse the organizer to add a new profile.
|
/// Welcome to Passepartout!\n\nUse the organizer to add a new profile.
|
||||||
internal static let message = L10n.tr("Localizable", "service.welcome.message")
|
internal static let message = L10n.tr("Localizable", "service.welcome.message")
|
||||||
|
@ -732,12 +611,10 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Version {
|
internal enum Version {
|
||||||
|
|
||||||
internal enum Buttons {
|
internal enum Buttons {
|
||||||
/// CHANGELOG
|
/// CHANGELOG
|
||||||
internal static let changelog = L10n.tr("Localizable", "version.buttons.changelog")
|
internal static let changelog = L10n.tr("Localizable", "version.buttons.changelog")
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Labels {
|
internal enum Labels {
|
||||||
/// Passepartout and TunnelKit are written and maintained by Davide De Rosa (keeshux).\n\nTunnelKit is a native OpenVPN client originally forked from PIATunnel by Private Internet Access.\n\nSource code for Passepartout and TunnelKit is publicly available on GitHub under the GPLv3.
|
/// Passepartout and TunnelKit are written and maintained by Davide De Rosa (keeshux).\n\nTunnelKit is a native OpenVPN client originally forked from PIATunnel by Private Internet Access.\n\nSource code for Passepartout and TunnelKit is publicly available on GitHub under the GPLv3.
|
||||||
internal static let intro = L10n.tr("Localizable", "version.labels.intro")
|
internal static let intro = L10n.tr("Localizable", "version.labels.intro")
|
||||||
|
@ -755,7 +632,6 @@ internal enum L10n {
|
||||||
internal static let disconnecting = L10n.tr("Localizable", "vpn.disconnecting")
|
internal static let disconnecting = L10n.tr("Localizable", "vpn.disconnecting")
|
||||||
/// Inactive
|
/// Inactive
|
||||||
internal static let inactive = L10n.tr("Localizable", "vpn.inactive")
|
internal static let inactive = L10n.tr("Localizable", "vpn.inactive")
|
||||||
|
|
||||||
internal enum Errors {
|
internal enum Errors {
|
||||||
/// Auth failed
|
/// Auth failed
|
||||||
internal static let auth = L10n.tr("Localizable", "vpn.errors.auth")
|
internal static let auth = L10n.tr("Localizable", "vpn.errors.auth")
|
||||||
|
@ -773,19 +649,14 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Wizards {
|
internal enum Wizards {
|
||||||
|
|
||||||
internal enum Host {
|
internal enum Host {
|
||||||
|
|
||||||
internal enum Alerts {
|
internal enum Alerts {
|
||||||
|
|
||||||
internal enum Existing {
|
internal enum Existing {
|
||||||
/// A host profile with the same title already exists. Replace it?
|
/// A host profile with the same title already exists. Replace it?
|
||||||
internal static let message = L10n.tr("Localizable", "wizards.host.alerts.existing.message")
|
internal static let message = L10n.tr("Localizable", "wizards.host.alerts.existing.message")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Cells {
|
internal enum Cells {
|
||||||
|
|
||||||
internal enum TitleInput {
|
internal enum TitleInput {
|
||||||
/// Title
|
/// Title
|
||||||
internal static let caption = L10n.tr("Localizable", "wizards.host.cells.title_input.caption")
|
internal static let caption = L10n.tr("Localizable", "wizards.host.cells.title_input.caption")
|
||||||
|
@ -793,9 +664,7 @@ internal enum L10n {
|
||||||
internal static let placeholder = L10n.tr("Localizable", "wizards.host.cells.title_input.placeholder")
|
internal static let placeholder = L10n.tr("Localizable", "wizards.host.cells.title_input.placeholder")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
internal enum Sections {
|
internal enum Sections {
|
||||||
|
|
||||||
internal enum Existing {
|
internal enum Existing {
|
||||||
/// Existing profiles
|
/// Existing profiles
|
||||||
internal static let header = L10n.tr("Localizable", "wizards.host.sections.existing.header")
|
internal static let header = L10n.tr("Localizable", "wizards.host.sections.existing.header")
|
||||||
|
@ -804,7 +673,10 @@ internal enum L10n {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// swiftlint:enable explicit_type_interface identifier_name line_length nesting type_body_length type_name
|
// swiftlint:enable explicit_type_interface function_parameter_count identifier_name line_length
|
||||||
|
// swiftlint:enable nesting type_body_length type_name
|
||||||
|
|
||||||
|
// MARK: - Implementation Details
|
||||||
|
|
||||||
extension L10n {
|
extension L10n {
|
||||||
private static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String {
|
private static func tr(_ table: String, _ key: String, _ args: CVarArg...) -> String {
|
||||||
|
|
|
@ -99,10 +99,6 @@ extension TunnelKitProvider.Configuration {
|
||||||
var tlsKeyLines: [Substring]?
|
var tlsKeyLines: [Substring]?
|
||||||
var tlsWrap: SessionProxy.TLSWrap?
|
var tlsWrap: SessionProxy.TLSWrap?
|
||||||
|
|
||||||
var currentBlockName: String?
|
|
||||||
var currentBlock: [String] = []
|
|
||||||
var unsupportedError: ApplicationError? = nil
|
|
||||||
|
|
||||||
log.verbose("Configuration file:")
|
log.verbose("Configuration file:")
|
||||||
for line in lines {
|
for line in lines {
|
||||||
log.verbose(line)
|
log.verbose(line)
|
||||||
|
@ -115,6 +111,10 @@ extension TunnelKitProvider.Configuration {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var currentBlockName: String?
|
||||||
|
var currentBlock: [String] = []
|
||||||
|
var unsupportedError: ApplicationError? = nil
|
||||||
|
|
||||||
Regex.blockBegin.enumerateComponents(in: line) {
|
Regex.blockBegin.enumerateComponents(in: line) {
|
||||||
isHandled = true
|
isHandled = true
|
||||||
let tag = $0.first!
|
let tag = $0.first!
|
||||||
|
@ -229,7 +229,7 @@ extension TunnelKitProvider.Configuration {
|
||||||
compressionFraming = .compLZO
|
compressionFraming = .compLZO
|
||||||
|
|
||||||
guard let arg = $0.first, arg == "no" else {
|
guard let arg = $0.first, arg == "no" else {
|
||||||
warning = .unsupportedConfiguration(option: "compression")
|
warning = warning ?? .unsupportedConfiguration(option: "compression")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -238,7 +238,7 @@ extension TunnelKitProvider.Configuration {
|
||||||
compressionFraming = .compress
|
compressionFraming = .compress
|
||||||
|
|
||||||
guard $0.isEmpty else {
|
guard $0.isEmpty else {
|
||||||
warning = .unsupportedConfiguration(option: "compression")
|
warning = warning ?? .unsupportedConfiguration(option: "compression")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
18
swiftgen.yml
18
swiftgen.yml
|
@ -1,14 +1,16 @@
|
||||||
strings:
|
strings:
|
||||||
paths:
|
inputs:
|
||||||
- Passepartout/Resources/en.lproj/Localizable.strings
|
- Passepartout/Resources/en.lproj/Localizable.strings
|
||||||
templateName: structured-swift4
|
outputs:
|
||||||
|
- templateName: structured-swift4
|
||||||
output: Passepartout/Sources/SwiftGen+Strings.swift
|
output: Passepartout/Sources/SwiftGen+Strings.swift
|
||||||
|
|
||||||
storyboards:
|
ib:
|
||||||
paths:
|
inputs:
|
||||||
- Passepartout-iOS/en.lproj/Main.storyboard
|
- Passepartout-iOS/en.lproj/Main.storyboard
|
||||||
- Passepartout-iOS/en.lproj/Organizer.storyboard
|
- Passepartout-iOS/en.lproj/Organizer.storyboard
|
||||||
templateName: swift4
|
outputs:
|
||||||
output: Passepartout-iOS/Global/SwiftGen+Storyboards.swift
|
- templateName: scenes-swift4
|
||||||
params:
|
output: Passepartout-iOS/Global/SwiftGen+Scenes.swift
|
||||||
module: Passepartout
|
- templateName: segues-swift4
|
||||||
|
output: Passepartout-iOS/Global/SwiftGen+Segues.swift
|
||||||
|
|
Loading…
Reference in New Issue