Reuse generic guidance strings

Tell by credentials purpose (web or specific).
This commit is contained in:
Davide De Rosa 2021-07-30 17:55:08 +02:00
parent 52b3d31299
commit 31cd5be376
16 changed files with 89 additions and 38 deletions

View File

@ -204,6 +204,8 @@
0E9CD789225746B300D033B4 /* Flags.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 0E9CD788225746B300D033B4 /* Flags.xcassets */; };
0E9CDB6723604AD5006733B4 /* ServerNetworkViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0E9CDB6623604AD5006733B4 /* ServerNetworkViewController.swift */; };
0EAAD71920E6669A0088754A /* GroupConstants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE8DED20C93E4C004C739C /* GroupConstants.swift */; };
0EB1F41C26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB1F41B26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift */; };
0EB1F41D26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB1F41B26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift */; };
0EB60FDA2111136E00AD27F3 /* UITextView+Search.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB60FD92111136E00AD27F3 /* UITextView+Search.swift */; };
0EB67D6B2184581E00BA6200 /* ImportedHostsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EB67D6A2184581E00BA6200 /* ImportedHostsViewController.swift */; };
0EBE3A79213C4E5500BFA2F5 /* OrganizerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0EBE3A78213C4E5400BFA2F5 /* OrganizerViewController.swift */; };
@ -523,6 +525,7 @@
0E9CD7862257462800D033B4 /* Providers.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Providers.xcassets; sourceTree = "<group>"; };
0E9CD788225746B300D033B4 /* Flags.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Flags.xcassets; sourceTree = "<group>"; };
0E9CDB6623604AD5006733B4 /* ServerNetworkViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerNetworkViewController.swift; sourceTree = "<group>"; };
0EB1F41B26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Infrastructure+CredentialsPurpose.swift"; sourceTree = "<group>"; };
0EB60FD92111136E00AD27F3 /* UITextView+Search.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITextView+Search.swift"; sourceTree = "<group>"; };
0EB67D6A2184581E00BA6200 /* ImportedHostsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportedHostsViewController.swift; sourceTree = "<group>"; };
0EBBE8F42182361700106008 /* ConnectionService+Migration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ConnectionService+Migration.swift"; sourceTree = "<group>"; };
@ -1053,6 +1056,7 @@
isa = PBXGroup;
children = (
0ED31C1120CF0ABA0027975F /* Infrastructure.swift */,
0EB1F41B26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift */,
0E569F29259F2DB10022DFB8 /* Infrastructure+Metadata.swift */,
0E569F28259F2DB10022DFB8 /* Infrastructure+Name.swift */,
0E569F2A259F2DB10022DFB8 /* InfrastructureFactory.swift */,
@ -1866,6 +1870,7 @@
0E3152DC223FA05800F61841 /* ProviderConnectionProfile.swift in Sources */,
0E569F2B259F2DB10022DFB8 /* Infrastructure+Name.swift in Sources */,
0E3152D9223FA05800F61841 /* HostConnectionProfile.swift in Sources */,
0EB1F41C26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift in Sources */,
0E3152D6223FA05400F61841 /* TransientStore.swift in Sources */,
0E3152CC223FA04D00F61841 /* WebServices.swift in Sources */,
0E3152BB223FA03D00F61841 /* AppConstants.swift in Sources */,
@ -1955,6 +1960,7 @@
0E5204CE259F675400CBAB56 /* Credentials.swift in Sources */,
0E5204E0259F675400CBAB56 /* WebServices.swift in Sources */,
0E5204DF259F675400CBAB56 /* SessionProxy+Communication.swift in Sources */,
0EB1F41D26B456C7003916BF /* Infrastructure+CredentialsPurpose.swift in Sources */,
0E5204D7259F675400CBAB56 /* DebugLog.swift in Sources */,
0E5204C4259F675400CBAB56 /* TrustPolicy.swift in Sources */,
0E5204CA259F675400CBAB56 /* ProfileNetworkSettings.swift in Sources */,

View File

@ -296,10 +296,6 @@ internal enum L10n {
internal enum Guidance {
internal enum Footer {
internal enum Infrastructure {
/// Use your %@ website credentials.
internal static func hideme(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.hideme", String(describing: p1))
}
/// Use your %@ website credentials. Your username is usually numeric (without spaces).
internal static func mullvad(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.mullvad", String(describing: p1))
@ -316,10 +312,6 @@ internal enum L10n {
internal static func protonvpn(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.protonvpn", String(describing: p1))
}
/// Use your %@ service credentials, which may differ from website credentials.
internal static func torguard(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.torguard", String(describing: p1))
}
/// Use your %@ website credentials. Your username is usually your e-mail.
internal static func tunnelbear(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.tunnelbear", String(describing: p1))
@ -332,6 +324,16 @@ internal enum L10n {
internal static func windscribe(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.windscribe", String(describing: p1))
}
internal enum Default {
/// Use your %@ service credentials, which may differ from website credentials.
internal static func specific(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.default.specific", String(describing: p1))
}
/// Use your %@ website credentials.
internal static func web(_ p1: Any) -> String {
return L10n.tr("Core", "account.sections.guidance.footer.infrastructure.default.web", String(describing: p1))
}
}
}
}
}

View File

@ -60,11 +60,17 @@ extension Infrastructure.Metadata {
}
var guidanceString: String? {
let key = "account.sections.guidance.footer.infrastructure.\(name)"
let format = NSLocalizedString(key, tableName: "Core", bundle: Bundle(for: AppDelegate.self), comment: "")
guard format != key else {
return nil
let prefix = "account.sections.guidance.footer.infrastructure"
let key = "\(prefix).\(name)"
var format = NSLocalizedString(key, tableName: "Core", bundle: Bundle(for: AppDelegate.self), comment: "")
// i.e. key not found
if format == key {
let purpose = name.credentialsPurpose
let defaultKey = "\(prefix).default.\(purpose)"
format = NSLocalizedString(defaultKey, tableName: "Core", bundle: Bundle(for: AppDelegate.self), comment: "")
}
return String(format: format, locale: .current, description)
}
}

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Extrahiere Dateien, bitte warten...";
"account.title" = "Account";
"account.sections.guidance.footer.infrastructure.hideme" = "Benutze deine %@ Web-Zugangsdaten.";
"account.sections.guidance.footer.infrastructure.default.web" = "Benutze deine %@ Web-Zugangsdaten.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Verwenden Sie Ihre %@ service-Anmeldeinformationen, die von den Website-Anmeldeinformationen abweichen können.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise numerischt (ohne Zwischenraum).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise deine Email.";
"account.sections.guidance.footer.infrastructure.pia" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise numerischt mit einem \"p\" Präfix.";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Deine Zugangsdaten für %@ findest du unter \"Account > OpenVPN / IKEv2 Username\" auf der Webseite.";
"account.sections.guidance.footer.infrastructure.torguard" = "Verwenden Sie Ihre %@ service-Anmeldeinformationen, die von den Website-Anmeldeinformationen abweichen können.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise deine Email.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise deine Email.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Deine Zugangsdaten für %@ findest du im OpenVPN Config Generator auf der Webseite.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Εξάγοντας τα αρχεία, παρακαλώ να είστε υπομονετικοί...";
"account.title" = "Λογαριασμός";
"account.sections.guidance.footer.infrastructure.hideme" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@.";
"account.sections.guidance.footer.infrastructure.default.web" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Χρησιμοποιήστε τα διαπιστευτήρια της υπηρεσίας %@, τα οποία ενδέχεται να διαφέρουν από τα διαπιστευτήρια του ιστότοπου.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως αριθμητικό (χωρίς διαστήματα).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως το ηλεκτρονικό σας ταχυδρομείο.";
"account.sections.guidance.footer.infrastructure.pia" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως αριθμητικό με πρόθεμα \"p\".";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Βρείτε τα διαπιστευτήριά σας %@ στην ενότητα \"Λογαριασμός> OpenVPN / IKEv2 Username \" της ιστοσελίδας.";
"account.sections.guidance.footer.infrastructure.torguard" = "Χρησιμοποιήστε τα διαπιστευτήρια της υπηρεσίας %@, τα οποία ενδέχεται να διαφέρουν από τα διαπιστευτήρια του ιστότοπου.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως το ηλεκτρονικό σας ταχυδρομείο.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως το ηλεκτρονικό σας ταχυδρομείο.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Βρείτε τα διαπιστευτήριά σας %@ στο OpenVPN Config Generator στον ιστότοπο.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Extracting files, please be patient...";
"account.title" = "Account";
"account.sections.guidance.footer.infrastructure.hideme" = "Use your %@ website credentials.";
"account.sections.guidance.footer.infrastructure.default.web" = "Use your %@ website credentials.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Use your %@ service credentials, which may differ from website credentials.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Use your %@ website credentials. Your username is usually numeric (without spaces).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Use your %@ website credentials. Your username is usually your e-mail.";
"account.sections.guidance.footer.infrastructure.pia" = "Use your %@ website credentials. Your username is usually numeric with a \"p\" prefix.";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Find your %@ credentials in the \"Account > OpenVPN / IKEv2 Username\" section of the website.";
"account.sections.guidance.footer.infrastructure.torguard" = "Use your %@ service credentials, which may differ from website credentials.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Use your %@ website credentials. Your username is usually your e-mail.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Use your %@ website credentials. Your username is usually your e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Find your %@ credentials in the OpenVPN Config Generator on the website.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Extrayendo ficheros, por favor ten paciencia...";
"account.title" = "Cuenta";
"account.sections.guidance.footer.infrastructure.hideme" = "Usa tus credenciales de la web %@.";
"account.sections.guidance.footer.infrastructure.default.web" = "Usa tus credenciales de la web %@.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Usa tus credenciales de servicio %@, que pueden diferir de las credenciales de la web.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Usa tus credenciales de la web %@. Normalmente tu usuario es numérico (sin espacios).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Usa tus credenciales de la web %@. Normalmente tu usuario es tu e-mail.";
"account.sections.guidance.footer.infrastructure.pia" = "Usa tus credenciales de la web %@. Normalmente tu usuario es numérico con un prefijo \"p\".";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Encuentra tus credenciales %@ en la sección \"Account > OpenVPN / IKEv2 Username\" de la web.";
"account.sections.guidance.footer.infrastructure.torguard" = "Usa tus credenciales de servicio %@, que pueden diferir de las credenciales de la web.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Usa tus credenciales de la web %@. Normalmente tu usuario es tu e-mail.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Usa tus credenciales de la web %@. Normalmente tu usuario es tu e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Encuentra tus credenciales %@ en el \"OpenVPN Config Generator\" en la web.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Extraction des fichiers, veuillez patienter...";
"account.title" = "Compte";
"account.sections.guidance.footer.infrastructure.hideme" = "Utilisez votre identifiants web de %@.";
"account.sections.guidance.footer.infrastructure.default.web" = "Utilisez votre identifiants web de %@.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Utilisez vos informations d'identification de service %@, qui peuvent différer des informations d'identification du web.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement numérique (sans espaces).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement votre courriel.";
"account.sections.guidance.footer.infrastructure.pia" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement numérique avec le préfixe \"p\" ";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Trouvez votre identifiant web %@ dans la section du site web \"Account > OpenVPN / IKEv2 nom d'utilisateur\" ";
"account.sections.guidance.footer.infrastructure.torguard" = "Utilisez vos informations d'identification de service %@, qui peuvent différer des informations d'identification du web.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement votre courriel.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement votre courriel.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Trouver votre identifiant %@ dans la section web Générateur de configuration OpenVPN.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Estraendo i file, un attimo di pazienza...";
"account.title" = "Account";
"account.sections.guidance.footer.infrastructure.hideme" = "Usa le credenziali del sito di %@.";
"account.sections.guidance.footer.infrastructure.default.web" = "Usa le credenziali del sito di %@.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Usa le tue credenziali del servizio %@, che potrebbero differire dalle credenziali del sito web.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Usa le credenziali del sito di %@. Il tuo username è generalmente numerico (senza spazi).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Usa le credenziali del sito di %@. Il tuo username è generalmente la tua e-mail.";
"account.sections.guidance.footer.infrastructure.pia" = "Usa le credenziali del sito di %@. Il tuo username è generalmente numerico con un prefisso \"p\".";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Trova le tue credenziali nella sezione \"Account > OpenVPN / IKEv2 Username\" del sito di %@.";
"account.sections.guidance.footer.infrastructure.torguard" = "Usa le tue credenziali del servizio %@, che potrebbero differire dalle credenziali del sito web.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Usa le credenziali del sito di %@. Il tuo username è generalmente la tua e-mail.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Usa le credenziali del sito di %@. Il tuo username è generalmente la tua e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Trova le tue credenziali nell'OpenVPN Config Generator sul sito di %@.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Bestanden uitpakken, even geduld...";
"account.title" = "Account";
"account.sections.guidance.footer.infrastructure.hideme" = "Gebruik de inloggegevens van %@.";
"account.sections.guidance.footer.infrastructure.default.web" = "Gebruik de inloggegevens van %@.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Gebruik uw %@ service-gegevens, die kunnen verschillen van de gegevens van de website.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal numeriek (zonder ruimte).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal uw e-mailadres.";
"account.sections.guidance.footer.infrastructure.pia" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal numeriek met \"p\" als voorvoegsel.";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Vind de inloggegevens van %@ in \"Account > OpenVPN / IKEv2 Username\" onderdeel van de website.";
"account.sections.guidance.footer.infrastructure.torguard" = "Gebruik uw %@ service-gegevens, die kunnen verschillen van de gegevens van de website.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Gebruik de inloggegevens van %@. Uw gebruikersnaam is meestal uw e-mailadres.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Gebruik de inloggegevens van %@ Uw gebruikersnaam is meestal uw e-mailadres.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Vind de inloggegevens van %@ in de OpenVPN Config Generator op de website.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Wypakowywanie plików, proszę czekać ...";
"account.title" = "Konto";
"account.sections.guidance.footer.infrastructure.hideme" = "Użyj loginu do %@.";
"account.sections.guidance.footer.infrastructure.default.web" = "Użyj loginu do %@.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Użyj poświadczeń usługi %@, które mogą różnić się od poświadczeń witryny.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Użyj loginu do %@. Twoja nazwa użytkownika jest najczęściej ciągiem liczb (bez przestrzeni).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Użyj loginu do %@. Twoja nazwa użytkownika to najczęściej e-mail.";
"account.sections.guidance.footer.infrastructure.pia" = "Użyj loginu do %@. Twoja nazwa użytkownika jesy najczęściej ciągiem liczb poprzedonym prefiksem \"p\".";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Użyj loginu do %@. Zajdziesz go w sekcji \"Account > OpenVPN / IKEv2 Username\".";
"account.sections.guidance.footer.infrastructure.torguard" = "Użyj poświadczeń usługi %@, które mogą różnić się od poświadczeń witryny.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Użyj loginu do %@. Twoja nazwa użytkownika to najczęściej e-mail.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Użyj loginu do %@. Twoja nazwa użytkownika to najczęściej e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Użyj loginu do %@ z generatora konfiguracji OpenVPN dostępnego na stronie.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Extraindo arquivos, seja paciente...";
"account.title" = "Conta";
"account.sections.guidance.footer.infrastructure.hideme" = "Utilize %@ credenciais do site.";
"account.sections.guidance.footer.infrastructure.default.web" = "Utilize %@ credenciais do site.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Utilize suas credenciais de serviço %@, que podem diferir das credenciais do site.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Utilize %@ credenciais do site. Seu usuário é normalmente numérico (sem espaços).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Utilize %@ credenciais do site. Seu usuário é normalmente o seu email.";
"account.sections.guidance.footer.infrastructure.pia" = "Utilize %@ credenciais do site. Seu usuário é normalmente numérico com prefixo \"p\".";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Encontre %@ credenciais na sessão \"Account > OpenVPN / IKEv2 Username\" do site.";
"account.sections.guidance.footer.infrastructure.torguard" = "Utilize suas credenciais de serviço %@, que podem diferir das credenciais do site.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Utilize %@ credenciais do site. Seu usuário é normalmente o seu email.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Utilize %@ credenciais do site. Seu usuário é normalmente o seu email.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Encontre %@ credenciais no gerador de configuração OpenVPN do site.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Извлечение файлов, пожалуста подождите...";
"account.title" = "Аккаунт";
"account.sections.guidance.footer.infrastructure.hideme" = "Используйте Ваши данные для входа с веб-сайта %@.";
"account.sections.guidance.footer.infrastructure.default.web" = "Используйте Ваши данные для входа с веб-сайта %@.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Используйте свои учетные данные %@ service, которые могут отличаться от учетных данных веб-сайта.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Используйте Ваши данные для входа с веб-сайта %@. Ваш логин обычно числовой с (без пробелов).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail.";
"account.sections.guidance.footer.infrastructure.pia" = "Используйте Ваши данные для входа с веб-сайта %@. Ваш логин обычно числовой с приставкой \"p\".";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Найдите Ваши данные для входа %@ \"Account > OpenVPN / IKEv2 Username\" секции веб-сайта.";
"account.sections.guidance.footer.infrastructure.torguard" = "Используйте свои учетные данные %@ service, которые могут отличаться от учетных данных веб-сайта.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Найдите Ваши данные для входа %@ в OpenVPN Config Generator на веб-сайте.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "Extraherar filer, var så tålmodig ...";
"account.title" = "Konto";
"account.sections.guidance.footer.infrastructure.hideme" = "Använd dina %@ webbplatsuppgifter.";
"account.sections.guidance.footer.infrastructure.default.web" = "Använd dina %@ webbplatsuppgifter.";
"account.sections.guidance.footer.infrastructure.default.specific" = "Använd dina %@ service-referenser, som kan skilja sig från webbplatsens referenser.";
"account.sections.guidance.footer.infrastructure.mullvad" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis numeriskt (utan utrymmen).";
"account.sections.guidance.footer.infrastructure.nordvpn" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis ditt e-postmeddelande.";
"account.sections.guidance.footer.infrastructure.pia" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis numeriskt med ett prefix för \" p \".";
"account.sections.guidance.footer.infrastructure.protonvpn" = "Hitta dina %@ credentials i avsnittet \" Konto> OpenVPN / IKEv2 Användarnamn \"på webbplatsen.";
"account.sections.guidance.footer.infrastructure.torguard" = "Använd dina %@ service-referenser, som kan skilja sig från webbplatsens referenser.";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis ditt e-postmeddelande.";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis ditt e-postmeddelande.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Hitta din %@ credentials i OpenVPN Config Generator på webbplatsen.";

View File

@ -161,12 +161,12 @@
"service.alerts.download.hud.extracting" = "提取文件中,请等待...";
"account.title" = "账户";
"account.sections.guidance.footer.infrastructure.hideme" = "使用你的%@网站认证信息。";
"account.sections.guidance.footer.infrastructure.default.web" = "使用你的%@网站认证信息。";
"account.sections.guidance.footer.infrastructure.default.specific" = "使用您的%@服务凭据,该凭据可能与网站凭据不同。";
"account.sections.guidance.footer.infrastructure.mullvad" = "使用你的%@网站认证信息。你的用户名一般是数字 (没有空格)。";
"account.sections.guidance.footer.infrastructure.nordvpn" = "使用你的%@网站认证信息。你的用户名一般是你的e-mail。";
"account.sections.guidance.footer.infrastructure.pia" = "使用你的%@网站认证信息。你的用户名一般是数字且带有前缀\"p\"。";
"account.sections.guidance.footer.infrastructure.protonvpn" = "在网站的\"Account > OpenVPN / IKEv2 Username\"部分找到你的%@的认证信息。";
"account.sections.guidance.footer.infrastructure.torguard" = "使用您的%@服务凭据,该凭据可能与网站凭据不同。";
"account.sections.guidance.footer.infrastructure.tunnelbear" = "使用你的%@网站认证信息。你的用户名一般是你的e-mail。";
"account.sections.guidance.footer.infrastructure.vyprvpn" = "使用你的%@网站认证信息。你的用户名一般是你的e-mail。";
"account.sections.guidance.footer.infrastructure.windscribe" = "在网站上的OpenVPN配置生成器中找到你的%@认证信息。 ";

View File

@ -2,8 +2,45 @@
// Infrastructure+CredentialsPurpose.swift
// Passepartout
//
// Created by Davide De Rosa on 30/07/21.
// Copyright © 2021 Davide De Rosa. All rights reserved.
// Created by Davide De Rosa on 7/30/21.
// Copyright (c) 2021 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 <http://www.gnu.org/licenses/>.
//
import Foundation
extension Infrastructure {
public enum CredentialsPurpose {
case web
case specific
}
}
extension Infrastructure.Name {
public var credentialsPurpose: Infrastructure.CredentialsPurpose {
switch self {
case .protonvpn, .surfshark, .torguard, .windscribe:
return .specific
default:
return .web
}
}
}