// // Unlocalized.swift // Passepartout // // Created by Davide De Rosa on 2/26/22. // Copyright (c) 2022 Davide De Rosa. All rights reserved. // // https://github.com/passepartoutvpn // // This file is part of Passepartout. // // Passepartout is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Passepartout is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Passepartout. If not, see . // import Foundation import PassepartoutCore enum Unlocalized { static let appName = Constants.Global.appName enum Placeholders { static let empty = "" static let address = "0.0.0.0" static let port = "8080" static let hostname = "example.com" static let dohURL = "https://example.com/dns-query" static let dotServerName = hostname static let dnsAddress = address static let dnsDomain = hostname static let pacURL = "https://proxy/auto-conf" static let proxyBypassDomain = hostname } enum DNS { static let plain = "Cleartext" } enum Keychain { static func passwordLabel(_ profileName: String, vpnProtocol: VPNProtocolType) -> String { return "\(Constants.Global.appName): \(profileName) (\(vpnProtocol.description))" } } enum Issues { static let recipient = "issues@\(Constants.Domain.name)" static let subject = "\(appName) - Report issue" static func body(_ description: String, _ metadata: String) -> String { return "Hi,\n\n\(description)\n\n\(metadata)\n\nRegards" } static let template = "description of the issue: " static let maxLogBytes = UInt64(20000) enum Filenames { static var debugLog: String { let fmt = DateFormatter() fmt.dateFormat = "yyyyMMdd-HHmmss" let iso = fmt.string(from: Date()) return "debug-\(iso).txt" } static let configuration = "profile.ovpn" // static let configuration = "profile.ovpn.txt" static let template = "description of the issue: " } enum MIME { static let debugLog = "text/plain" // static let configuration = "application/x-openvpn-profile" static let configuration = "text/plain" } } enum Social { static let reddit = "Reddit" private static let twitterHashtags = ["OpenVPN", "iOS", "macOS"] static func twitterIntent(withMessage message: String) -> URL { var text = message for ht in twitterHashtags { text = text.replacingOccurrences(of: ht, with: "#\(ht)") } var comps = URLComponents(string: "https://twitter.com/intent/tweet")! comps.queryItems = [ URLQueryItem(name: "url", value: Constants.URLs.website.absoluteString), URLQueryItem(name: "via", value: "keeshux"), URLQueryItem(name: "text", value: text) ] return comps.url! } } enum Translations { enum Email { static let recipient = "translate@\(Constants.Domain.name)" static let subject = "\(appName) - Translations" static func body(_ description: String) -> String { return "Hi,\n\n\(description)\n\nRegards" } static let template = "I offer to translate to: " } static let translators: [String: String] = [ "de": "Christian Lederer, Theodor Tietze", "el": "Konstantinos Koukoulakis", "en-US": "Davide De Rosa", "es": "Davide De Rosa, Elena Vivó", "fr-FR": "Julien Laniel", "it": "Davide De Rosa", "nl": "Norbert de Vreede", "pl": "Piotr Książek", "pt-BR": "Helder Santana", "ru": "Alexander Korobynikov", "sv": "Henry Gross-Hellsen", "zh-Hans": "OnlyThen" ] } enum Credits { typealias License = (String, String, URL) typealias Notice = (String, String) static let author = "Davide De Rosa" static let licenses: [License] = [( "Kvitto", "BSD", URL(string: "https://raw.githubusercontent.com/Cocoanetics/Kvitto/develop/LICENSE")! ), ( "lzo", "GPLv2", URL(string: "https://www.gnu.org/licenses/gpl-2.0.txt")! ), ( "MBProgressHUD", "MIT", URL(string: "https://raw.githubusercontent.com/jdg/MBProgressHUD/master/LICENSE")! ), ( "OpenSSL", "OpenSSL", URL(string: "https://raw.githubusercontent.com/openssl/openssl/master/LICENSE.txt")! ), ( "PIATunnel", "MIT", URL(string: "https://raw.githubusercontent.com/pia-foss/tunnel-apple/master/LICENSE")! ), ( "SSZipArchive", "MIT", URL(string: "https://raw.githubusercontent.com/samsoffes/ssziparchive/master/LICENSE")! ), ( "SwiftGen", "MIT", URL(string: "https://raw.githubusercontent.com/SwiftGen/SwiftGen/master/LICENCE")! ), ( "SwiftyBeaver", "MIT", URL(string: "https://raw.githubusercontent.com/SwiftyBeaver/SwiftyBeaver/master/LICENSE")! )] static let notices: [Notice] = [( "Circle Icons", "The logo is taken from the awesome Circle Icons set by Nick Roach." ), ( "Country flags", "The country flags are taken from: https://github.com/lipis/flag-icon-css/" ), ( "OpenVPN", "© 2002-2018 OpenVPN Inc. - OpenVPN is a registered trademark of OpenVPN Inc." )] } enum About { static let github = "GitHub" static let readme = "README" static let changelog = "CHANGELOG" static let faq = "FAQ" static let alternativeTo = "AlternativeTo" } enum VPN { static let vpn = "VPN" static let certificateAuthority = "CA" static let xor = "XOR" } enum OpenVPN { static let compLZO = "--comp-lzo" static let compress = "--compress" static let lzo = "LZO" } enum Network { static let dns = "DNS" static let tls = "TLS" static let https = "HTTPS" static let url = "URL" static let mtu = "MTU" static let ipv4 = "IPv4" static let ipv6 = "IPv6" static let ssid = "SSID" static let proxyAutoConfiguration = "PAC" } enum Other { static let siri = "Siri" } }