summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorJon Petersson <jon.petersson@mullvad.net>2025-08-18 13:45:01 +0200
committerJon Petersson <jon.petersson@mullvad.net>2025-08-18 13:45:01 +0200
commitb446176070bf31a42d6d725cfc8e835df957e362 (patch)
tree4ac6be47e9122ccaacfb2807703f9ca160844c83
parentbd25c377434e1661f63036061ee6de922fa89959 (diff)
parent0e0163a01b9166c1df107f34e4cf21b97f020f26 (diff)
downloadmullvadvpn-b446176070bf31a42d6d725cfc8e835df957e362.tar.xz
mullvadvpn-b446176070bf31a42d6d725cfc8e835df957e362.zip
Merge branch 'localization-pipeline-ios-1256'
-rw-r--r--ios/Assets/Localizable.xcstrings7428
-rw-r--r--ios/MullvadVPN.xcodeproj/project.pbxproj113
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodInteractor.swift8
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodValidationError.swift2
-rw-r--r--ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift41
-rw-r--r--ios/MullvadVPN/Supporting Files/da.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/de.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/es.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/fi.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/fr.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/it.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/ja.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/ko.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/my.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/nb.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/nl.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/pl.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/pt.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/ru.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/sv.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/th.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/tr.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/zh-Hans.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/Supporting Files/zh-Hant.lproj/InfoPlist.strings9
-rw-r--r--ios/MullvadVPN/View controllers/Account/PaymentAlertPresenter.swift12
-rw-r--r--ios/MullvadVPN/View controllers/DeviceList/DeviceManagementContentView.swift48
-rw-r--r--ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift14
-rw-r--r--ios/PacketTunnel/de.lproj/InfoPlist.strings6
-rw-r--r--ios/PacketTunnel/fr.lproj/InfoPlist.strings6
-rw-r--r--ios/PacketTunnel/sv.lproj/InfoPlist.strings6
-rw-r--r--ios/translation/crowdin.yml31
-rw-r--r--ios/translation/locales/de.xliff1870
-rw-r--r--ios/translation/locales/en.xliff283
-rw-r--r--ios/translation/locales/fr.xliff1870
-rw-r--r--ios/translation/locales/sv.xliff1870
-rw-r--r--ios/translation/scripts/Readme.md32
-rwxr-xr-xios/translation/scripts/localizations.sh (renamed from ios/translation/scripts/export-localizations.sh)74
37 files changed, 13112 insertions, 773 deletions
diff --git a/ios/Assets/Localizable.xcstrings b/ios/Assets/Localizable.xcstrings
index a304340507..3ed7c54ccd 100644
--- a/ios/Assets/Localizable.xcstrings
+++ b/ios/Assets/Localizable.xcstrings
@@ -2,1160 +2,7728 @@
"sourceLanguage" : "en",
"strings" : {
"“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.\nTo prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.\nWould you like to continue to enable “Local network sharing”?" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "“%@ Local Network Sharing” erfordert einen Neustart der VPN-Verbindung, die dich trennt und deinen Traffic kurz offenbart.\nUm dies zu verhindern, aktivieren Sie den Flugmodus manuell und deaktivieren Sie das WLAN, bevor Sie fortfahren.\nMöchten Sie weiterhin \"Lokales Netzwerkteilen\" aktivieren?"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le « Partage de réseau local%@ » nécessite de redémarrer la connexion VPN, ce qui vous déconnectera et exposera brièvement votre trafic.\nPour éviter cela, activez manuellement le mode avion et éteignez le Wi-Fi avant de continuer.\nVoulez-vous continuer à activer le « Partage de réseau local»?"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "“%@ Lokalt nätverksdelning” kräver att VPN-anslutningen startas om, vilket kopplar bort dig och kortfattat exponerar din trafik.\nFör att förhindra detta, aktivera flygplansläge manuellt och stäng av Wi-Fi innan du fortsätter.\nVill du fortsätta att aktivera “Lokalt nätverk delning”?"
+ }
+ }
+ }
},
"**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**\n\nDAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.\n\nBy using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted)." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "**Achtung: Dies erhöht den Netzwerkverkehr und wirkt sich auch negativ auf Geschwindigkeit, Latenz und Akkuverbrauch aus. Verwende mit Vorsicht auf begrenzte Tarife. *\n\nDAITA (Verteidigung gegen AI-geführte Verkehrsanalyse) versteckt Muster in deinem verschlüsselten VPN-Verkehr.\n\nDurch die Verwendung einer ausgefeilten KI ist es möglich, den Datenverkehr von Datenpaketen zu analysieren, die auf Ihrem Gerät ein- und auslaufen (selbst wenn der Datenverkehr verschlüsselt ist)."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "**Attention : Ceci augmente le trafic réseau et affectera également la vitesse, la latence et l'utilisation de la batterie. À utiliser avec prudence sur des plans limités. *\n\nDAITA (Défense contre l'analyse du trafic guidée par AI) masque les patrons dans votre trafic VPN chiffré.\n\nEn utilisant une IA sophistiquée, il est possible d'analyser le trafic des paquets de données entrants et sortants de votre appareil (même si le trafic est chiffré)."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "**Uppmärksamhet: Detta ökar nätverkstrafiken och kommer också att påverka hastighet, latens och batterianvändning. Använd med försiktighet på begränsade planer. *\n\nDAITA (Försvar mot AI-styrda Trafikanalys) döljer mönster i din krypterade VPN-trafik.\n\nGenom att använda sofistikerad AI är det möjligt att analysera trafiken av datapaket som går in och ut från din enhet (även om trafiken är krypterad)."
+ }
+ }
+ }
},
"**Tap here** to see what’s new." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "**Tippe hier** um zu sehen, was neu ist."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "**Tapotez ici** pour voir les nouveautés."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "**Tryck här** för att se vad som är nytt."
+ }
+ }
+ }
},
"%@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@"
+ }
+ }
+ }
+ },
+ "%@ cannot be empty." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ darf nicht leer sein."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ ne peut pas être vide."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ kan inte vara tomt."
+ }
+ }
+ }
},
"%@ have been added to your account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ wurde Ihrem Konto hinzugefügt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ a été ajouté à votre compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ har lagts till på ditt konto"
+ }
+ }
+ }
},
"%@ left on this account" : {
-
- },
- "%@ via %@" : {
"localizations" : {
- "en" : {
+ "de" : {
"stringUnit" : {
- "state" : "new",
- "value" : "%1$@ via %2$@"
+ "state" : "translated",
+ "value" : "%@ auf diesem Konto übrig"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ restant sur ce compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ kvar på detta konto"
}
}
}
},
"%@ were added to your account." : {
-
- },
- "%@, %@" : {
"localizations" : {
- "en" : {
+ "de" : {
"stringUnit" : {
- "state" : "new",
- "value" : "%1$@, %2$@"
+ "state" : "translated",
+ "value" : "%@ wurden deinem Konto hinzugefügt."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ a été ajouté à votre compte."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%@ lades till på ditt konto."
}
}
}
},
"%d more..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%d mehr..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%d de plus..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "%d mer..."
+ }
+ }
+ }
},
- "%lld more..." : {
-
+ "A custom list with this name exists, please choose a unique name." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eine benutzerdefinierte Liste mit diesem Namen existiert bereits, bitte wählen Sie einen eindeutigen Namen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Une liste personnalisée avec ce nom existe, veuillez choisir un nom unique."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "En anpassad lista med detta namn finns, välj ett unikt namn."
+ }
+ }
+ }
},
"About API access…" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Über API-Zugriff…"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "A propos de l'accès à l'API…"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om API-åtkomst…"
+ }
+ }
+ }
},
"About Direct method..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Über Direkte Methode..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "À propos de la méthode Direct..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om Direkt metod..."
+ }
+ }
+ }
},
"About Encrypted DNS proxy method..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Über Verschlüsselte DNS-Proxy-Methode..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "À propos de la méthode de proxy DNS chiffré..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om krypterad DNS-proxymetod..."
+ }
+ }
+ }
},
"About Mullvad bridges method..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Über Mullvad Bridges Methode..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "À propos de la méthode des ponts Mullvad..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om Mullvad broar metod..."
+ }
+ }
+ }
},
"About Server IP override..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Über Server IP überschreiben..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "À propos du remplacement de l'IP du serveur..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om Server IP åsidosätta..."
+ }
+ }
+ }
},
"Account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Compte client"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto"
+ }
+ }
+ }
},
"Account created" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto erstellt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Compte créé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto skapat"
+ }
+ }
+ }
},
"Account credit expires soon" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kontoguthaben läuft bald ab"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le crédit du compte expire bientôt"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto kredit upphör snart"
+ }
+ }
+ }
},
"Account credit has expired" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kontoguthaben ist abgelaufen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le crédit du compte a expiré"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto kredit har löpt ut"
+ }
+ }
+ }
},
"Account deletion" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto löschen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Suppression du compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Radering av konto"
+ }
+ }
+ }
},
"Account number" : {
-
- },
- "Active features" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kundennummer"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Numéro de compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kontonummer"
+ }
+ }
+ }
},
"Add" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Neu"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till"
+ }
+ }
+ }
},
"Add 30 days" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "30 Tage hinzufügen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter 30 jours"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till 30 dagar"
+ }
+ }
+ }
},
"Add 90 days" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "90 Tage hinzufügen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter 90 jours"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till 90 dagar"
+ }
+ }
+ }
},
"Add a server" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Server hinzufügen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter un serveur"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till en server"
+ }
+ }
+ }
},
"Add access method" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Zugriffsmethode hinzufügen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter une méthode d'accès"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till accessmetod"
+ }
+ }
+ }
},
"Add locations" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Orte hinzufügen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter des emplacements"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till platser"
+ }
+ }
+ }
},
"Add new list" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Neue Liste hinzufügen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter une nouvelle liste"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till ny lista"
+ }
+ }
+ }
},
"Add time" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Neue Zeit"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter une heure"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till tid"
+ }
+ }
+ }
},
"Add Time" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Neue Zeit"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ajouter une heure"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lägg till tid"
+ }
+ }
+ }
},
"Ads" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anzeigen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Annonces"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Annonser"
+ }
+ }
+ }
},
"Adult content" : {
-
- },
- "Agree and continue" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erwachseneninhalt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Contenu adulte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vuxen innehåll"
+ }
+ }
+ }
},
"All" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alle"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tous"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alla"
+ }
+ }
+ }
},
"All locations" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alle Standorte"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tous les emplacements"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alla platser"
+ }
+ }
+ }
},
"All Providers" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alle Anbieter"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tous les fournisseurs"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alla leverantörer"
+ }
+ }
+ }
},
"Any" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alle"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "N'importe quel"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Valfri"
+ }
+ }
+ }
},
"API access" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API-Zugriff"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Accès à l'API"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API åtkomst"
+ }
+ }
+ }
},
"API could not be reached, save anyway?" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API konnte nicht erreicht werden, trotzdem speichern?"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'API n'a pas pu être atteinte, enregistrer quand même ?"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API kunde inte nås, spara ändå?"
+ }
+ }
+ }
},
"API reachable" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API erreichbar"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API accessible"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API kan nås"
+ }
+ }
+ }
},
"API unreachable" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API nicht erreichbar"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API injoignable"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "API onåbar"
+ }
+ }
+ }
},
"App logs" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "App-Logs"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Journaux des applications"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "App loggar"
+ }
+ }
+ }
},
"AppStore receipt is not found on disk." : {
-
- },
- "Are you sure you want to log %@ out?" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "AppStore Quittung wurde nicht gefunden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le reçu de l'AppStore est introuvable sur le disque."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "AppStore-kvitto finns inte på disken."
+ }
+ }
+ }
},
"At least one method needs to be enabled." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mindestens eine Methode muss aktiviert sein."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Au moins une méthode doit être activée."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Minst en metod måste aktiveras."
+ }
+ }
+ }
},
"Authentication" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Authentifizierung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Authentification"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Autentisering"
+ }
+ }
+ }
},
"Automatic" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Automatisch"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Automatique"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Automatisk"
+ }
+ }
+ }
},
"Back to editing" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Zurück zur Bearbeitung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Retour à l'édition"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tillbaka till redigering"
+ }
+ }
+ }
},
"Blocked connection" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verbindung blockiert"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connexion bloquée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Blockerad anslutning"
+ }
+ }
+ }
},
"BLOCKING INTERNET" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "BLOCKING INTERNET"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "INTERNET DE BLOCKING"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "BLOCKAR INTERNET"
+ }
+ }
+ }
},
"Blocking internet: Your time on this account has expired. To continue using the internet, please add more time or disconnect the VPN." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Internetblockierung: Deine Zeit auf diesem Konto ist abgelaufen. Um das Internet weiter zu nutzen, füge bitte mehr Zeit hinzu oder trenne das VPN."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Blocage d'Internet: Votre temps sur ce compte a expiré. Pour continuer à utiliser Internet, veuillez ajouter plus de temps ou déconnecter le VPN."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Blockera internet: Din tid på detta konto har gått ut. För att fortsätta använda internet, lägg till mer tid eller koppla från VPN."
+ }
+ }
+ }
},
"By enabling \"Direct only\" you will have to manually select a server that is DAITA-enabled. Multihop won't automatically be used to enable DAITA with any server." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn Sie \"Nur Direkt\" aktivieren, müssen Sie manuell einen Server auswählen, der DAITA-aktiviert ist. Multihop wird nicht automatisch verwendet, um DAITA mit irgendeinem Server zu aktivieren."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "En activant \"Direct only\", vous devrez sélectionner manuellement un serveur qui est activé par DAITA. Multihop ne sera pas automatiquement utilisé pour activer DAITA avec aucun serveur."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Genom att aktivera \"Direct only\" måste du manuellt välja en server som är DAITA-aktiverad. Multihop används inte automatiskt för att aktivera DAITA med någon server."
+ }
+ }
+ }
},
"By enabling \"Direct only\" you will have to manually select a server that is DAITA-enabled. This can cause you to end up in a blocked state until you have selected a compatible server in the \"Select location\" view." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn Sie \"Nur Direkt\" aktivieren, müssen Sie manuell einen Server auswählen, der DAITA-aktiviert ist. Dies kann dazu führen, dass Sie in einem blockierten Zustand enden, bis Sie einen kompatiblen Server in der Ansicht \"Standort auswählen\" ausgewählt haben."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "En activant \"Direct only\", vous devrez sélectionner manuellement un serveur qui est activé par DAITA. Cela peut vous faire tomber dans un état bloqué jusqu'à ce que vous ayez sélectionné un serveur compatible dans la vue « Sélectionner un emplacement »."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Genom att aktivera \"Direct only\" måste du manuellt välja en server som är DAITA-aktiverad. Detta kan leda till att du hamnar i ett blockerat tillstånd tills du har valt en kompatibel server i \"Välj plats\"-vyn."
+ }
+ }
+ }
},
"Cancel" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Abbrechen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Abandonner"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Avbryt"
+ }
+ }
+ }
},
"Cannot complete the purchase" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kauf kann nicht abgeschlossen werden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de terminer l'achat"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kan inte slutföra köpet"
+ }
+ }
+ }
},
"Cannot read the AppStore receipt from disk" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kann die AppStore-Quittung nicht lesen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de lire la réception de l'AppStore depuis le disque"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kan inte läsa AppStore-kvittot från disk"
+ }
+ }
+ }
},
"Cannot refresh the AppStore receipt: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kann den AppStore Beleg nicht aktualisieren: %@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible d'actualiser le reçu de l'AppStore : %@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kan inte uppdatera AppStore-kvitto: %@"
+ }
+ }
+ }
},
"Cannot restore purchases" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Käufe können nicht wiederhergestellt werden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de restaurer les achats"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kan inte återställa köp"
+ }
+ }
+ }
},
"Checking account number" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Überprüfe Kontonummer"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Numéro de compte de la vérification"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kontrollerar kontonummer"
+ }
+ }
+ }
},
"Cipher" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cipher"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Chiffre"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cipher"
+ }
+ }
+ }
},
"Clear" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Leeren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nettoyer"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rensa"
+ }
+ }
+ }
},
"Clear all overrides" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alle Überschreibungen löschen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Effacer toutes les surcharges"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rensa alla åsidosättningar"
+ }
+ }
+ }
},
"Clear all overrides?" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alle Überschreibungen löschen?"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Effacer toutes les dérogations ?"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rensa alla överskridningar?"
+ }
+ }
+ }
},
"Clearing the imported overrides changes the server IPs, in the Select location view, back to default." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Das Löschen der importierten Überschreibungen ändert die Server-IPs in der Standortansicht auswählen wieder auf die Standardeinstellung."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "La suppression des surcharges importées modifie les adresses IP du serveur, dans la vue de l'emplacement de sélection, par défaut."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rensar de importerade åsidosättningarna ändrar serverns IP-adresser, i Välj plats vyn, tillbaka till standard."
+ }
+ }
+ }
},
"Client is not allowed to issue the request." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Der Kunde darf die Anfrage nicht ausstellen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le client n'est pas autorisé à émettre la requête."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kunden har inte tillåtelse att utfärda begäran."
+ }
+ }
+ }
},
"Collapses this location." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Schließt diesen Ort aus."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Réduire cet emplacement."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kollapsar denna plats."
+ }
+ }
+ }
},
"Congrats!" : {
-
- },
- "Connect" : {
-
- },
- "Connected" : {
-
- },
- "Connected to %@, %@" : {
"localizations" : {
- "en" : {
+ "de" : {
"stringUnit" : {
- "state" : "new",
- "value" : "Connected to %1$@, %2$@"
+ "state" : "translated",
+ "value" : "Glückwunsch!"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Félicitations !"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Grattis!"
}
}
}
},
- "Connecting to %@, %@" : {
+ "Connected" : {
"localizations" : {
- "en" : {
+ "de" : {
"stringUnit" : {
- "state" : "new",
- "value" : "Connecting to %1$@, %2$@"
+ "state" : "translated",
+ "value" : "Verbunden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connecté"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ansluten"
}
}
}
},
- "Connecting..." : {
-
- },
- "Connection details" : {
-
- },
- "Continue with login" : {
-
- },
"Copy to pasteboard" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kopiere in die Einlage"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Copier dans le presse-papier"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kopiera till pasteboard"
+ }
+ }
+ }
},
"Correct account number" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Richtige Kontonummer"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Numéro de compte correct"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rätt kontonummer"
+ }
+ }
+ }
},
"Create" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anlegen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Créer"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skapa"
+ }
+ }
+ }
},
"Create account" : {
-
- },
- "Created: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto erstellen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Créer un compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skapa konto"
+ }
+ }
+ }
},
"Creating new account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Neues Konto erstellen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Création d'un nouveau compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skapa nytt konto"
+ }
+ }
+ }
},
"Creating quantum secure connection" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Quantensichere Verbindung erstellen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Création de la connexion quantique sécurisée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skapar kvantsäker anslutning"
+ }
+ }
+ }
},
"Creating secure connection" : {
-
- },
- "Current device" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sichere Verbindung erstellen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Création d'une connexion sécurisée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skapar säker anslutning"
+ }
+ }
+ }
},
"Custom" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eigene"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Personnalisé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anpassad"
+ }
+ }
+ }
},
"Custom DNS" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eigener DNS"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DNS personnalisé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anpassad DNS"
+ }
+ }
+ }
},
"Custom lists" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eigene Listen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Listes personnalisées"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anpassade listor"
+ }
+ }
+ }
},
"DAITA" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA"
+ }
+ }
+ }
},
"DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.\nIt does this by carefully adding network noise and making all network packets the same size.\nNot all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.\nAttention: Be cautious if you have a limited data plan as this feature will increase your network traffic." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA (Verteidigung gegen AI-geführte Verkehrsanalyse) versteckt Muster in Ihrem verschlüsselten VPN-Verkehr. Wenn jemand Ihre Verbindung überwacht, erschwert dies es ihnen, deutlich zu erkennen, welche Websites Sie besuchen.\nDies geschieht durch das sorgfältige Hinzufügen von Netzwerkrauschen und die gleiche Größe aller Netzwerkpakete.\nNicht alle unsere Server sind DAITA-fähig. Daher verwenden wir Multihop automatisch, um DAITA mit jedem Server zu aktivieren.\nAchtung: Seien Sie vorsichtig, wenn Sie einen begrenzten Datenplan haben, da diese Funktion Ihren Netzwerkverkehr erhöhen wird."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA (Defence against AI-guided Traffic Analysis) döljer mönster i din krypterade VPN-trafik. Om någon övervakar din anslutning, detta gör det betydligt svårare för dem att identifiera vilka webbplatser du besöker.\nDet gör detta genom att noggrant lägga till nätverksljud och göra alla nätverkspaket till samma storlek.\nAlla våra servrar är inte DAITA-aktiverade. Därför använder vi multihop automatiskt för att aktivera DAITA med alla servrar.\nObservera: Var försiktig om du har en begränsad dataplan eftersom denna funktion kommer att öka din nätverkstrafik."
+ }
+ }
+ }
},
"DAITA isn't available at the currently selected location. After enabling, please go to the \"Select location\" view and select a location that supports DAITA." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA ist an der aktuell ausgewählten Stelle nicht verfügbar. Nach der Aktivierung gehen Sie bitte zur Ansicht \"Standort auswählen\" und wählen einen Ort, der DAITA unterstützt."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA n'est pas disponible à l'emplacement actuellement sélectionné. Après l'activation, veuillez aller dans la vue \"Sélectionner un emplacement\" et sélectionner un emplacement qui prend en charge DAITA."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA är inte tillgängligt på den valda platsen för närvarande. Efter aktivering, gå till \"Välj plats\"-vyn och välj en plats som stöder DAITA."
+ }
+ }
+ }
},
"DAITA isn't available on the current entry server. After enabling, please go to the \"Select location\" view and select an entry location that supports DAITA." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA ist auf dem aktuellen Eintragsserver nicht verfügbar. Nach der Aktivierung gehen Sie bitte in die Ansicht \"Standort auswählen\" und wählen einen Eintragsort aus, der DAITA unterstützt."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA n'est pas disponible sur le serveur d'entrée actuel. Après l'activation, veuillez aller dans la vue \"Sélectionner un emplacement\" et sélectionner un emplacement d'entrée qui prend en charge DAITA."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA är inte tillgängligt på den aktuella postservern. Efter aktivering, gå till \"Välj plats\"-vyn och välj en postplats som stöder DAITA."
+ }
+ }
+ }
},
"DAITA-enabled" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA-aktiviert"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Activé par DAITA"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA-aktiverat"
+ }
+ }
+ }
},
"DAITA: Multihop" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA: Multihop"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA : Multihop"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA: Multihop"
+ }
+ }
+ }
},
"Delete" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Löschen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Supprimez"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Radera"
+ }
+ }
+ }
},
"Delete account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto löschen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Supprimer le compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ta bort konto"
+ }
+ }
+ }
},
"Delete Account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto löschen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Supprimer le compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ta bort konto"
+ }
+ }
+ }
},
"Delete list" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Liste löschen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Supprimer la liste"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ta bort lista"
+ }
+ }
+ }
},
"Delete method" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Methode löschen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Méthode de suppression"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ta bort metod"
+ }
+ }
+ }
},
"Deleting account..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto wird gelöscht..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Suppression du compte..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tar bort konto..."
+ }
+ }
+ }
},
"Device is inactive" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gerät ist inaktiv"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'appareil est inactif"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Enheten är inaktiv"
+ }
+ }
+ }
},
"Device name" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gerätename"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nom de l'appareil"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Enhetens namn"
+ }
+ }
+ }
},
"Device name: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gerätename: %@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nom de l'appareil : %@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Enhetsnamn: %@"
+ }
+ }
+ }
},
"Direct" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Direkt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Directement"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Direkt"
+ }
+ }
+ }
},
"Direct only" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nur direkt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Direct uniquement"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Endast direkt"
+ }
+ }
+ }
},
"Disable all content blockers to activate this setting." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Deaktivieren Sie alle Inhaltsblocker, um diese Einstellung zu aktivieren."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Désactiver tous les bloqueurs de contenu pour activer ce paramètre."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inaktivera alla innehållsblockerare för att aktivera denna inställning."
+ }
+ }
+ }
},
"Disabled" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Deaktiviert"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Désactivé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inaktiverad"
+ }
+ }
+ }
},
"Disabling" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Deaktivieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Désactivation"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inaktiverar"
+ }
+ }
+ }
},
"Discard changes" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Änderungen verwerfen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Annuler les modifications"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ignorera ändringar"
+ }
+ }
+ }
},
"Disconnect" : {
-
- },
- "Disconnected" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verbindung trennen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Déconnecter"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Koppla från"
+ }
+ }
+ }
},
"Disconnecting" : {
-
- },
- "Disconnecting..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Trennen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Déconnexion"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kopplar från"
+ }
+ }
+ }
},
"DNS content blockers" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DNS-Inhaltsblocker"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Blocages de contenu DNS"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DNS-innehållsblockerare"
+ }
+ }
+ }
},
"DNS settings" : {
-
- },
- "Do you agree to remaining anonymous?" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DNS-Einstellungen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Paramètres DNS"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DNS-inställningar"
+ }
+ }
+ }
},
"Don’t have an account number?" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Haben Sie noch keine Kontonummer?"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous n'avez pas de numéro de compte ?"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Har du inget kontonummer?"
+ }
+ }
+ }
},
"Done" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fertig"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fait"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Klar"
+ }
+ }
+ }
},
"Edit custom list" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eigene Liste bearbeiten"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Modifier la liste personnalisée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redigera anpassad lista"
+ }
+ }
+ }
},
"Edit lists" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Listen bearbeiten"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Editer les listes"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redigera listor"
+ }
+ }
+ }
},
"Edit locations" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Orte bearbeiten"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Modifier les emplacements"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redigera platser"
+ }
+ }
+ }
},
"Edit message" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nachricht bearbeiten"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Modifier le message"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redigera meddelande"
+ }
+ }
+ }
},
"Enable" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aktivieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Activer"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aktivera"
+ }
+ }
+ }
},
"Enable \"%@\"" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "\"%@ \" aktivieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Activer «%@»"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aktivera \"%@\""
+ }
+ }
+ }
},
"Enable method" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Methode aktivieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Activer la méthode"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aktivera metod"
+ }
+ }
+ }
},
"Enabling" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aktivieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Activation"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aktiverar"
+ }
+ }
+ }
},
"Encrypted DNS proxy" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verschlüsselter DNS-Proxy"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Proxy DNS chiffré"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Krypterad DNS-proxy"
+ }
+ }
+ }
},
"Enter IP" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "IP eingeben"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Entrez l'adresse IP"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ange IP"
+ }
+ }
+ }
},
"Enter voucher code" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gutscheincode eingeben"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Entrez le code du bon de réduction"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ange rabattkod"
+ }
+ }
+ }
},
"Enter your account number" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Geben Sie Ihre Kontonummer ein"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Entrez votre numéro de compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ange ditt kontonummer"
+ }
+ }
+ }
},
"Entry" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eintrag"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Entrée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inlägg"
+ }
+ }
+ }
},
"Exit" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Beenden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Quitter"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Avsluta"
+ }
+ }
+ }
},
"Expands this location." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erweitert diesen Standort."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Développe cet emplacement."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Expanderar denna plats."
+ }
+ }
+ }
},
"Failed to connect to App store, please try again later." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verbindung zum App Store fehlgeschlagen, bitte versuchen Sie es später erneut."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de se connecter à l'App Store, veuillez réessayer plus tard."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att ansluta till App Store, försök igen senare."
+ }
+ }
+ }
},
"Failed to send" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Senden fehlgeschlagen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Échec de l'envoi"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att skicka"
+ }
+ }
+ }
},
"Failed to send the receipt to server: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fehler beim Senden der Quittung an Server: %@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible d'envoyer la réception au serveur: %@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att skicka kvittot till server: %@"
+ }
+ }
+ }
},
"Failed to start the tunnel: %@." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fehler beim Starten des Tunnels: %@."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de démarrer le tunnel : %@."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att starta tunneln: %@."
+ }
+ }
+ }
},
"Failed to start the tunnel." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tunnel konnte nicht gestartet werden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de démarrer le tunnel."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att starta tunneln."
+ }
+ }
+ }
},
"Failed to stop the tunnel: %@." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fehler beim Beenden des Tunnels: %@."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible d'arrêter le tunnel : %@."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att stoppa tunneln: %@."
+ }
+ }
+ }
},
"Failed to stop the tunnel." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fehler beim Stoppen des Tunnels."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible d'arrêter le tunnel."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att stoppa tunneln."
+ }
+ }
+ }
},
"Failed to validate account number: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fehler beim Überprüfen der Kontonummer: %@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de valider le numéro de compte : %@"
+ }
+ }
+ }
},
"FAQs & Guides" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "FAQ & Anleitungen"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "FAQs & Guider"
+ }
+ }
+ }
},
"Fetching devices..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Geräte werden abgerufen..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Récupération des appareils..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Hämtar enheter..."
+ }
+ }
+ }
},
"Filter" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Filtern"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Filtre"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Filtrera"
+ }
+ }
+ }
},
"Filtered:" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gefiltert:"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Filtré :"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Filtrerat:"
+ }
+ }
+ }
},
"Gambling" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Spielen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Jeu"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Spelande"
+ }
+ }
+ }
},
"Go ahead and start using the app to begin reclaiming your online privacy.\nTo continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gehen Sie voran und verwenden Sie die App, um Ihre Privatsphäre wiederherzustellen.\nUm Ihre Reise als privates Ninja fortzusetzen, besuchen Sie unsere Website, um andere datenschutzfreundliche Gewohnheiten und Werkzeuge zu übernehmen."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gå vidare och börja använda appen för att börja återta din integritet online.\nFör att fortsätta din resa som privatliv ninja, besök vår hemsida för att plocka upp andra integritetsvänliga vanor och verktyg."
+ }
+ }
+ }
},
"Go to login" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Zum Login"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aller à la connexion"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gå till inloggning"
+ }
+ }
+ }
},
"Going to login will unblock the Internet on this device." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn Sie sich anmelden, wird das Internet auf diesem Gerät entsperrt."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Se connecter débloquera Internet sur cet appareil."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Att gå till inloggning kommer att avblockera Internet på den här enheten."
+ }
+ }
+ }
},
"Got it!" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verstanden!"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Compris!"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Jag förstår!"
+ }
+ }
+ }
},
"Here’s your account number. Save it!" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Hier ist deine Kontonummer. Speichere es!"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Voici votre numéro de compte. Enregistrez-le !"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Här är ditt kontonummer. Spara det!"
+ }
+ }
+ }
},
"Hide account number" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kontonummer ausblenden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cacher le numéro de compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dölj kontonummer"
+ }
+ }
+ }
},
"If an observer monitors these data packets, DAITA makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.\n\nDAITA does this by carefully adding network noise and making all network packets the same size.\n\nNot all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.\n" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn ein Beobachter diese Datenpakete überwacht, DAITA macht es für sie wesentlich schwieriger, herauszufinden, welche Websites Sie besuchen oder mit wem Sie kommunizieren.\n\nDAITA tut dies, indem es Netzwerkrauschen einfügt und alle Netzwerkpakete auf die gleiche Größe bringt.\n\nNicht alle unsere Server sind DAITA-fähig. Daher verwenden wir Multihop automatisch, um DAITA mit jedem Server zu aktivieren.\n"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Si un observateur surveille ces paquets de données, DAITA leur rend beaucoup plus difficile d'identifier les sites Web que vous visitez ou avec lesquels vous communiquez.\n\nDAITA le fait en ajoutant soigneusement du bruit du réseau et en faisant de tous les paquets du réseau la même taille.\n\nTous nos serveurs ne sont pas activés par DAITA. Par conséquent, nous utilisons le multilien automatiquement pour activer DAITA avec n'importe quel serveur.\n"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om en observatör övervakar dessa datapaket, DAITA gör det betydligt svårare för dem att identifiera vilka webbplatser du besöker eller med vilka du kommunicerar.\n\nDAITA gör detta genom att noggrant lägga till nätverksljud och göra alla nätverkspaket till samma storlek.\n\nAlla våra servrar är inte DAITA-aktiverade. Därför använder vi multihop automatiskt för att aktivera DAITA med alla servrar.\n"
+ }
+ }
+ }
},
"If needed we will contact you at %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Bei Bedarf werden wir dich unter %@ kontaktieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Si nécessaire, nous vous contacterons à %@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om det behövs kommer vi att kontakta dig på %@"
+ }
+ }
+ }
},
"If you are having issues connecting to VPN servers, please contact support." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn du Probleme beim Verbinden mit VPN-Servern hast, kontaktiere bitte den Support."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Si vous rencontrez des problèmes de connexion aux serveurs VPN, veuillez contacter le support."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om du har problem med att ansluta till VPN-servrar, vänligen kontakta support."
+ }
+ }
+ }
},
"If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.\nThe DoH servers are hosted by one of the following providers: Quad9 or Cloudflare." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn du nicht mit unserem VPN verbunden bist, wird der verschlüsselte DNS-Proxy deine eigene nicht-VPN-IP beim Verbinden verwenden.\nDie DoH-Server werden von einem der folgenden Anbieter gehostet: Quad9 oder Cloudflare."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om du inte är ansluten till vårt VPN kommer den krypterade DNS-proxyn att använda din egen icke-VPN IP när du ansluter.\nDoH-servrarna är värd för en av följande leverantörer: Quad9 eller Cloudflare."
+ }
+ }
+ }
},
"If you disconnect now, you won’t be able to secure your connection until the device is online." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn Sie die Verbindung jetzt trennen, werden Sie Ihre Verbindung nicht sichern können, bis das Gerät online ist."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Si vous vous déconnectez maintenant, vous ne pourrez pas sécuriser votre connexion tant que l'appareil ne sera pas en ligne."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om du kopplar från nu kommer du inte att kunna säkra din anslutning förrän enheten är online."
+ }
+ }
+ }
},
"If you exit the form and try again later, the information you already entered will still be here." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn Sie das Formular verlassen und versuchen Sie es später noch einmal, werden die von Ihnen eingegebenen Informationen immer noch hier sein."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Si vous quittez le formulaire et réessayez plus tard, les informations que vous avez déjà saisies seront toujours là."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om du avslutar formuläret och försöker igen senare, kommer informationen du redan angett fortfarande att vara här."
+ }
+ }
+ }
},
"If you haven’t received additional VPN time after purchasing" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn du nach dem Kauf keine zusätzliche VPN-Zeit erhalten hast"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Si vous n'avez pas reçu de temps VPN supplémentaire après l'achat"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om du inte har fått ytterligare VPN-tid efter köp"
+ }
+ }
+ }
},
"If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn Sie immer noch Probleme haben, können Sie unseren Support direkt unter **%@** per E-Mail senden. Bitte fügen Sie Ihr App-Log an Ihre E-Mail hinzu."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Si vous rencontrez toujours des problèmes, vous pouvez envoyer un e-mail à notre assistance directement à **%@**. Veuillez joindre votre journal d'application à votre adresse e-mail."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Om du fortfarande upplever problem kan du maila vår support direkt på **%@**. Vänligen bifoga din app-logg till din e-post."
+ }
+ }
+ }
},
"Import" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importation"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importera"
+ }
+ }
+ }
},
"Import %@ was successful, overrides are now active." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Import %@ war erfolgreich, Überschreibungen sind jetzt aktiv."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importation %@ réussie, les remplacements sont maintenant actifs."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Import %@ lyckades, åsidosättningar är nu aktiva."
+ }
+ }
+ }
},
"Import %@ was unsuccessful, please try again." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Import %@ war nicht erfolgreich, bitte versuchen Sie es erneut."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'importation de %@ a échoué, veuillez réessayer."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importen av %@ misslyckades, försök igen."
+ }
+ }
+ }
},
"Import file" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Datei importieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importer un fichier"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importera fil"
+ }
+ }
+ }
},
"Import files or text with the new IP addresses for the servers in the Select location view." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importieren Sie Dateien oder Text mit den neuen IP-Adressen für die Server in der Standortansicht auswählen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importer des fichiers ou du texte avec les nouvelles adresses IP pour les serveurs dans la vue Choisir un emplacement."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importera filer eller text med de nya IP-adresserna för servrarna i Välj plats vyn."
+ }
+ }
+ }
},
"Import successful" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Import erfolgreich"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importation réussie"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importen lyckades"
+ }
+ }
+ }
},
"Import via text" : {
-
- },
- "In" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Über Text importieren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importer par texte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Importera via text"
+ }
+ }
+ }
},
"In use" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "In Verwendung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "En cours d'utilisation"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "I bruk"
+ }
+ }
+ }
},
"Include all networks" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Alle Netzwerke einbeziehen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inclure tous les réseaux"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inkludera alla nätverk"
+ }
+ }
+ }
},
"Internal error occurred. Settings will be reset to defaults and device logged out." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Interner Fehler aufgetreten. Einstellungen werden auf Standardwerte zurückgesetzt und das Gerät ist abgemeldet."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Une erreur interne est survenue. Les paramètres seront réinitialisés par défaut et le périphérique sera déconnecté."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Internt fel uppstod. Inställningarna återställs till standardinställningar och enheten loggas ut."
+ }
+ }
+ }
},
"Internal error." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Interner Fehler."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erreur interne."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Internt fel."
+ }
+ }
+ }
},
"Invalid account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ungültiges Konto"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Compte invalide"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ogiltigt konto"
+ }
+ }
+ }
},
"Invalid device state." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ungültiger Gerätestatus."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Etat de l'appareil non valide."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ogiltig enhets status."
+ }
+ }
+ }
},
"Invalid purchase identifier." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ungültige Einkaufsbezeichnung."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Identifiant d'achat invalide."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ogiltig inköpsidentifierare"
+ }
+ }
+ }
},
"It looks like you have entered a Mullvad account number instead of a voucher code. Do you want to log in to an existing account?\nIf so, click log out below to log in with the other account number." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Es sieht so aus, als hätten Sie statt eines Gutscheincodes eine Mullvad-Kontonummer eingegeben. Möchten Sie sich bei einem bestehenden Konto anmelden?\nWenn ja, klicken Sie unten auf Abmelden, um sich mit der anderen Kontonummer anzumelden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "On dirait que vous avez entré un numéro de compte Mullvad au lieu d'un code coupon. Voulez-vous vous connecter à un compte existant ?\nSi c'est le cas, cliquez sur déconnecter ci-dessous pour vous connecter avec l'autre numéro de compte."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det verkar som om du har angett ett Mullva-kontonummer istället för en kupongkod. Vill du logga in på ett befintligt konto?\nOm så är fallet, klicka på logga ut nedan för att logga in med det andra kontonumret."
+ }
+ }
+ }
},
"Language" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sprache"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Langue"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Språk"
+ }
+ }
+ }
},
"Last four digits of the account number are incorrect" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die letzten vier Ziffern der Kontonummer sind falsch"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Les quatre derniers chiffres du numéro de compte sont incorrects"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "De fyra sista siffrorna i kontonumret är felaktiga"
+ }
+ }
+ }
},
"Last used account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Zuletzt genutztes Konto"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dernier compte utilisé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Senast använda konto"
+ }
+ }
+ }
},
"Learn about privacy" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erfahren Sie mehr über Privatsphäre"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "En savoir plus sur la confidentialité"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Läs mer om sekretess"
+ }
+ }
+ }
},
"Less than a day" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Weniger als ein Tag"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Moins d'un jour"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mindre än en dag"
+ }
+ }
+ }
},
"Local network sharing" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gemeinsames Netzwerk"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Partage de réseau local"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Delning av lokalt nätverk"
+ }
+ }
+ }
},
"Log in" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anmelden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Se connecter"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Logga in"
+ }
+ }
+ }
},
"Log out" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Abmelden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Déconnexion"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Logga ut"
+ }
+ }
+ }
},
"Logged in" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Angemeldet"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connecté"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inloggad"
+ }
+ }
+ }
},
"Logging in..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anmelden..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connexion en cours..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Loggar in..."
+ }
+ }
+ }
},
"Logging out..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Abmelden..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Déconnexion..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Loggar ut..."
+ }
+ }
+ }
},
"Login" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anmelden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Se connecter"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inloggning"
+ }
+ }
+ }
},
"Login failed" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Login fehlgeschlagen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Échec de la connexion"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inloggning misslyckades"
+ }
+ }
+ }
},
"Make a purchase with StoreKit2" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kaufen Sie mit StoreKit2"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Faites un achat avec StoreKit2"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gör ett köp med StoreKit2"
+ }
+ }
+ }
},
"Malware" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Malware"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Malware"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Malware"
+ }
+ }
+ }
},
"Manage default and setup custom methods to access the Mullvad API." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verwalten Sie die Standardeinstellungen und konfigurieren Sie benutzerdefinierte Methoden, um auf die Mullvad API zuzugreifen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gérer les méthodes par défaut et configurer les méthodes personnalisées pour accéder à l'API Mullvad."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Hantera standard och konfigurera anpassade metoder för att komma åt Mullvads API."
+ }
+ }
+ }
},
"Manage default and setup custom methods to access the Mullvad API. " : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verwalten Sie die Standardeinstellungen und konfigurieren Sie benutzerdefinierte Methoden, um auf die Mullvad API zuzugreifen. "
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gérer les méthodes par défaut et configurer les méthodes personnalisées pour accéder à l'API Mullvad. "
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Hantera standard och konfigurera anpassade metoder för att komma åt Mullvads API. "
+ }
+ }
+ }
},
"Manage devices" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Geräte verwalten"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gérer les appareils"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Hantera enheter"
+ }
+ }
+ }
},
"method" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Methode"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Méthode"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "metod"
+ }
+ }
+ }
},
"Method settings" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Methodeneinstellungen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Paramètres de la méthode"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Metod inställningar"
+ }
+ }
+ }
},
"Mullvad bridges" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mullvad Brücken"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ponts de Mullvad"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mullvad bryggor"
+ }
+ }
+ }
},
"Multihop" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mehrfachbogen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multilien"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop"
+ }
+ }
+ }
},
"Multihop is being used to enable DAITA for your selected location." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop wird verwendet, um DAITA für Ihren ausgewählten Standort zu aktivieren."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le multilien est utilisé pour activer DAITA pour l'emplacement que vous avez sélectionné."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop används för att aktivera DAITA för din valda plats."
+ }
+ }
+ }
},
"Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.\nThis results in increased latency but increases anonymity online." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop leitet Ihren Datenverkehr auf einen WireGuard-Server und einen anderen aus, was es schwieriger macht, ihn zu verfolgen.\nDies führt zu erhöhter Latenz, erhöht aber die Anonymität online."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop rutter din trafik i en WireGuard server och ut en annan, vilket gör det svårare att spåra.\nDetta resulterar i ökad fördröjning men ökar anonymiteten på nätet."
+ }
+ }
+ }
},
"Multihop routes your traffic into one WireGuard server and out another, making it harder to trace. This results in increased latency but increases anonymity online." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop führt Ihren Traffic auf einen WireGuard-Server und einen anderen aus, wodurch es schwieriger wird, das Aufspüren zu erschweren. Dies führt zu erhöhter Latenz, erhöht aber die Anonymität online."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop achemine votre trafic vers un serveur WireGuard et un autre, ce qui rend la traçabilité plus difficile. Cela entraîne une latence accrue mais augmente l'anonymat en ligne."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Multihop leder din trafik till en WireGuard-server och ut en annan, vilket gör det svårare att spåra. Detta resulterar i ökad fördröjning men ökar anonymiteten online."
+ }
+ }
+ }
},
"Multiple validation errors occurred." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mehrere Validierungsfehler sind aufgetreten."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Plusieurs erreurs de validation se sont produites."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Flera valideringsfel uppstod."
+ }
+ }
+ }
},
"Name" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Name"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nom"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Namn"
+ }
+ }
+ }
},
"Name should be no longer than %i characters." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Name darf nicht länger als %i Zeichen sein."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Namnet får inte vara längre än %i tecken."
+ }
+ }
+ }
},
"Network error: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Netzwerkfehler: %@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erreur réseau : %@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nätverksfel: %@"
+ }
+ }
+ }
},
"NETWORK ISSUES" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NETZWERK ISSUES"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "ÎLES DE RÉSEAU"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NETWORK ISSUES"
+ }
+ }
+ }
},
"New custom list" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Neue benutzerdefinierte Liste"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nouvelle liste personnalisée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ny anpassad lista"
+ }
+ }
+ }
},
"NEW DEVICE CREATED" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NEUE GERÄT ERSTELLT"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NOUVEAU APPAREIL CRÉÉ"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NYA ENHETER SKAPAD"
+ }
+ }
+ }
},
"NEW VERSION INSTALLED" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NEUE VERSION INSTALLED"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NOUVELLE VERSION INSTALLEE"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "NY VERSION INSTALLERAD"
+ }
+ }
+ }
},
"Next" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nächste"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Suivant"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nästa"
+ }
+ }
+ }
+ },
+ "No DAITA compatible servers match your location settings. Try changing location." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Keine DAITA-kompatiblen Server stimmen mit Ihren Standorteinstellungen überein. Versuchen Sie, den Standort zu ändern."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aucun serveur compatible DAITA ne correspond à vos paramètres de localisation. Essayez de changer d'emplacement."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inga DAITA-kompatibla servrar matchar dina platsinställningar. Försök att ändra plats."
+ }
+ }
+ }
},
"No matching relays found, check your filter settings." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Keine passenden Relais gefunden, überprüfen Sie Ihre Filtereinstellungen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aucun relais correspondant, vérifiez les paramètres de votre filtre."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inga matchande reläer hittade, kontrollera dina filterinställningar."
+ }
+ }
+ }
},
"No matching servers" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Keine passenden Server"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aucun serveur correspondant"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inga matchande servrar"
+ }
+ }
+ }
},
"No network" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kein Netzwerk"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aucun réseau"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inget nätverk"
+ }
+ }
+ }
},
"No overrides imported" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Keine importierten Überschreibungen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aucune substitution importée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inga åsidosättningar importerade"
+ }
+ }
+ }
+ },
+ "No servers match your location filter. Try changing filter settings." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Keine Server stimmen mit Ihrem Standortfilter überein. Versuchen Sie, die Filtereinstellungen zu ändern."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aucun serveur ne correspond à votre filtre de localisation. Essayez de changer les paramètres de filtre."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inga servrar matchar ditt platsfilter. Prova att ändra filterinställningar."
+ }
+ }
+ }
+ },
+ "No servers match your settings, try changing server or other settings." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Keine Server entsprechen deinen Einstellungen, versuche Server oder andere Einstellungen zu ändern."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aucun serveur ne correspond à vos paramètres, essayez de changer de serveur ou d'autres paramètres."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inga servrar matchar dina inställningar, prova att ändra server eller andra inställningar."
+ }
+ }
+ }
},
"Obfuscation" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verschleierung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Obfuscation"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Obfusk"
+ }
+ }
+ }
},
"Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connection would be blocked." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verschleierung versteckt den WireGuard-Verkehr innerhalb eines anderen Protokolls. Es kann verwendet werden, um Zensur und andere Filterarten zu umgehen, wo eine einfache WireGuard-Verbindung blockiert würde."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'obfuscation cache le trafic WireGuard à l'intérieur d'un autre protocole. Il peut être utilisé pour aider à contourner la censure et d'autres types de filtrage, où une simple connexion WireGuard serait bloquée."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Obduktion döljer WireGuard trafik inuti ett annat protokoll. Den kan användas för att kringgå censur och andra typer av filtrering, där en vanlig WireGuard-anslutning skulle blockeras."
+ }
+ }
+ }
},
"Obscured" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verdeckt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Obscuré"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Obscured"
+ }
+ }
+ }
},
"Off" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Aus"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Désactivé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Av"
+ }
+ }
+ }
},
"On" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "An"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Activé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "På"
+ }
+ }
+ }
},
"On some networks, where various types of censorship are being used, our server IP addresses are sometimes blocked." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "In einigen Netzen, in denen verschiedene Arten von Zensur genutzt werden, werden unsere Server-IP-Adressen manchmal blockiert."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sur certains réseaux, où différents types de censure sont utilisés, les adresses IP de notre serveur sont parfois bloquées."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "På vissa nätverk, där olika typer av censur används, blockeras ibland våra serverIP-adresser."
+ }
+ }
+ }
},
"On some networks, where various types of censorship are being used, the API servers might not be directly reachable." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "In einigen Netzwerken, in denen verschiedene Arten von Zensur verwendet werden, sind die API-Server möglicherweise nicht direkt erreichbar."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sur certains réseaux, où différents types de censure sont utilisés, les serveurs API peuvent ne pas être directement accessibles."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "På vissa nätverk, där olika typer av censur används, kanske API-servrarna inte är direkt nåbara."
+ }
+ }
+ }
},
"Open DAITA settings" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "DAITA-Einstellungen öffnen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ouvrir les paramètres DAITA"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Öppna DAITA-inställningar"
+ }
+ }
+ }
},
"Optional" : {
-
- },
- "Out IPv4" : {
-
- },
- "Out IPv6" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Optional"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Optionnel"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Valfri"
+ }
+ }
+ }
},
"Out of time" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nicht mehr Zeit"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dépassement de temps"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Slut på tid"
+ }
+ }
+ }
},
"OUT OF TIME" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "ZEIT VON ZEIT"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "HORS DU TEMPS"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "SLUT AV TID"
+ }
+ }
+ }
},
"Overrides active" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Überschreibt aktiv"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Substitutions activées"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ersätter aktiva"
+ }
+ }
+ }
},
"Owned" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Besitzt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Possédé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ägd"
+ }
+ }
+ }
},
"Ownership" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eigentum"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Propriété"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ägarskap"
+ }
+ }
+ }
},
"Paid until" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Bezahlt bis"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Payé jusqu'au"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Betalad till"
+ }
+ }
+ }
},
"Password" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Passwort"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mot de passe"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lösenord"
+ }
+ }
+ }
},
"Performs a connection test to a Mullvad API server via this access method." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Führt einen Verbindungstest an einen Mullvad-API-Server über diese Zugriffsmethode durch."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Effectue un test de connexion à un serveur API Mullvad via cette méthode d'accès."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Utför ett anslutningstest till en Mullvads API-server via denna åtkomstmetod."
+ }
+ }
+ }
},
"Please enter a valid IPv4 or IPv6 address." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Bitte geben Sie eine gültige IPv4 oder IPv6 Adresse ein."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Veuillez entrer une adresse IPv4 ou IPv6 valide."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ange en giltig IPv4 eller IPv6-adress."
+ }
+ }
+ }
},
"Please enter a valid port." : {
-
- },
- "Please log out of at least one by removing it from the list below. You can find the corresponding device name under the device’s Account settings." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Bitte geben Sie einen gültigen Port ein."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Veuillez entrer un port valide."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ange en giltig port."
+ }
+ }
+ }
},
"Please retry by using the \"Restore purchases\" button." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Bitte versuchen Sie es noch einmal, indem Sie den Button \"Einkäufe wiederherstellen\" verwenden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Veuillez réessayer en utilisant le bouton \"Restaurer les achats\"."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Försök igen genom att använda knappen \"Återställ köp\"."
+ }
+ }
+ }
},
"Port" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Port"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Port"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Port"
+ }
+ }
+ }
},
"Port: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Port: %@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Port : %@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Port: %@"
+ }
+ }
+ }
},
"Previous" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vorherige"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Précédent"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Föregående"
+ }
+ }
+ }
},
"Providers" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anbieter"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fournisseurs"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Leverantörer"
+ }
+ }
+ }
},
"Providers: %d" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Anbieter: %d"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Fournisseurs : %d"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Leverantörer: %d"
+ }
+ }
+ }
},
"Quantum resistance" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Quantenwiderstand"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Résistance quantique"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kvantmotstånd"
+ }
+ }
+ }
},
"Quantum secure connection" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Quantensichere Verbindung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connexion sécurisée Quantum"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kvantsäker anslutning"
+ }
+ }
+ }
},
"Quantum secure connection. Connected to %@, %@" : {
"localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sichere Quantenverbindung. Verbunden mit %1$@, %2$@"
+ }
+ },
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Quantum secure connection. Connected to %1$@, %2$@"
}
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connexion sécurisée quantique. Connectée à %1$@, %2$@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kvantsäker anslutning. Ansluten till %1$@, %2$@"
+ }
}
}
},
"Quantum-resistant tunnel" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Quantenresistenter Tunnel"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tunnel résistant aux Quantumes"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kvantbeständig tunnel"
+ }
+ }
+ }
},
"QUIC" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "QUISCH"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "QUIQUE"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "FRÅGOR"
+ }
+ }
+ }
},
"Reconnecting" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erneut verbinden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Reconnexion"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Återansluter"
+ }
+ }
+ }
},
"Reconnecting to %@, %@" : {
"localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verbinde dich mit %1$@, %2$@"
+ }
+ },
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Reconnecting to %1$@, %2$@"
}
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Reconnexion à %1$@, %2$@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Återansluter till %1$@, %2$@"
+ }
}
}
},
"Redeem" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redeem"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redeem"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redeem"
+ }
+ }
+ }
},
"Redeem voucher" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redeem voucher"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redeem voucher"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Redeem voucher"
+ }
+ }
+ }
},
"Refund last purchase with StoreKit2" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Letzten Kauf mit StoreKit2 erstatten"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rembourser le dernier achat avec StoreKit2"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Återbetala senaste köp med StoreKit2"
+ }
+ }
+ }
},
"Refund successful" : {
-
- },
- "Remove" : {
-
- },
- "Remove %@?\nThe device will be removed from the list and logged out." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rückerstattung erfolgreich"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Remboursement réussi"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Återbetalning slutförd"
+ }
+ }
+ }
},
"Remove last used account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Letztes Konto entfernen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Supprimer le dernier compte utilisé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ta bort senast använda konto"
+ }
+ }
+ }
},
"Rented" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vermietung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Loué"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Hyrd"
+ }
+ }
+ }
},
"Report a problem" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ein Problem melden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Signaler un problème"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rapportera ett problem"
+ }
+ }
+ }
},
"Required" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Benötigt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Requis"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Krävs"
+ }
+ }
+ }
},
"Restore purchases" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Käufe wiederherstellen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Restaurer les achats"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Återställ köp"
+ }
+ }
+ }
},
"Save" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Speichern"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Enregistrer"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Spara"
+ }
+ }
+ }
},
"Save anyway" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Trotzdem speichern"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Enregistrer quand même"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Spara ändå"
+ }
+ }
+ }
},
"Saving changes..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Änderungen werden gespeichert..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Enregistrement des modifications..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sparar ändringar..."
+ }
+ }
+ }
},
"Search for..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Suche nach..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Rechercher..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sök efter..."
+ }
+ }
+ }
},
"Secure connection. Connected to %@, %@" : {
"localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sichere Verbindung. %1$@, %2$@"
+ }
+ },
"en" : {
"stringUnit" : {
"state" : "new",
"value" : "Secure connection. Connected to %1$@, %2$@"
}
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connexion sécurisée. Connectée à %1$@, %2$@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Säker anslutning. Ansluten till %1$@, %2$@"
+ }
}
}
},
"Select location" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Standort auswählen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sélectionnez un emplacement"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Välj plats"
+ }
+ }
+ }
},
"Selected" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ausgewählt"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sélectionnés"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vald"
+ }
+ }
+ }
},
"Send" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Senden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Envoyer"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skicka"
+ }
+ }
+ }
},
"Send anyway" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Trotzdem senden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Envoyer quand même"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skicka ändå"
+ }
+ }
+ }
},
"Sending..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Senden..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Envoi..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skickar..."
+ }
+ }
+ }
},
"Sent" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gesendet"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Envoyé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skickat"
+ }
+ }
+ }
},
"Server" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Server"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Serveur"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Server"
+ }
+ }
+ }
},
"Server details" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Serverdetails"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Détails du serveur"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Serverdetaljer"
+ }
+ }
+ }
},
"Server IP override" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Server-IP-Überschreibung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Surcharge IP du serveur"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Server IP åsidosätter"
+ }
+ }
+ }
},
"Server IP Override" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Server-IP-Überschreibung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Surcharge IP du serveur"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Server IP åsidosättning"
+ }
+ }
+ }
},
"Setting: DAITA" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Einstellung: DAITA"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Paramètre: DAITA"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inställning: DAITA"
+ }
+ }
+ }
},
"Setting: Obfuscation" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Einstellung: Verschleierung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Paramètre: Obfuscation"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inställning: Obfusk"
+ }
+ }
+ }
},
"Settings" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Einstellungen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Réglages"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inställningar"
+ }
+ }
+ }
},
"Settings migration error" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Einstellungs-Migrationsfehler"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erreur de migration des paramètres"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Migreringsfel för inställningar"
+ }
+ }
+ }
},
"Shadowsocks" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Schattensocken"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Chaussettes fantômes"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Skuggstrumpor"
+ }
+ }
+ }
},
"Show account number" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kontonummer anzeigen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Afficher le numéro de compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Visa kontonummer"
+ }
+ }
+ }
},
"Social media" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Soziale Medien"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Réseaux sociaux"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sociala medier"
+ }
+ }
+ }
+ },
+ "Socks5" : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Socks5"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Socks5"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Socks5"
+ }
+ }
+ }
},
"Start using the app" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mit der App beginnen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Commencer à utiliser l'application"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Börja använda appen"
+ }
+ }
+ }
},
"Super!" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Super!"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Super!"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Super!"
+ }
+ }
+ }
},
"Switch location" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Standort wechseln"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Changer d'emplacement"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Byt plats"
+ }
+ }
+ }
},
"Tap **Edit** to add at least one DNS server." : {
- "comment" : "Foot note displayed if there are no DNS entries, but table view is not in editing mode."
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tippe **Bearbeiten** um mindestens einen DNS-Server hinzuzufügen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Appuyez sur **Modifier** pour ajouter au moins un serveur DNS."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tryck på **Redigera** för att lägga till minst en DNS-server."
+ }
+ }
+ }
},
"Test method" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Testmethode"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Méthode de test"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Testa metod"
+ }
+ }
+ }
},
"Testing..." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Testen..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Test en cours..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Testar..."
+ }
+ }
+ }
},
"Thanks for your purchase" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vielen Dank für Ihren Kauf"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Merci pour votre achat"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tack för ditt köp"
+ }
+ }
+ }
},
"Thanks!" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Danke!"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Merci!"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tack!"
+ }
+ }
+ }
},
"The app communicates with a Mullvad API server directly." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die App kommuniziert direkt mit einem Mullvad API-Server."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'application communique directement avec un serveur API Mullvad."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Appen kommunicerar direkt med en Mullvads API-server."
+ }
+ }
+ }
},
"The app communicates with a Mullvad API server via a Mullvad bridge server." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die App kommuniziert mit einem Mullvad API-Server über einen Mullvad Bridge-Server."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'application communique avec un serveur API Mullvad via un pont de connexion Mullvad."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Appen kommunicerar med en Mullvads API-server via en Mullvads brygga."
+ }
+ }
+ }
},
"The app communicates with a Mullvad API server via a proxy address." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die App kommuniziert mit einem Mullvad API-Server über eine Proxy-Adresse."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'application communique avec un serveur API Mullvad via une adresse proxy."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Appen kommunicerar med en Mullvads API-server via en proxyadress."
+ }
+ }
+ }
},
"The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die App muss mit einem Mullvad-API-Server kommunizieren, um sich anzumelden, Serverlisten abzurufen und andere kritische Operationen durchzuführen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'application a besoin de communiquer avec un serveur API Mullvad pour vous connecter, récupérer les listes de serveurs et d'autres opérations critiques."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Appen behöver kommunicera med en Mullvads API-server för att logga in dig, hämta serverlistor och andra kritiska operationer."
+ }
+ }
+ }
},
"The app will test the method before saving." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die App wird die Methode vor dem Speichern testen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "L'application va tester la méthode avant d'enregistrer."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Appen testar metoden innan du sparar."
+ }
+ }
+ }
},
"The automatic setting will randomly choose from the valid port ranges shown below.\nThe custom port can be any value inside the valid ranges:\n%@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die automatische Einstellung wird zufällig aus den unten angezeigten Portbereichen auswählen.\nDer benutzerdefinierte Port kann ein beliebiger Wert innerhalb der gültigen Bereiche sein:\n%@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le réglage automatique choisira aléatoirement parmi les plages de ports valides indiquées ci-dessous.\nLe port personnalisé peut ętre n'importe quelle valeur dans les plages valides :\n%@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Den automatiska inställningen kommer slumpmässigt att välja från de giltiga portintervall som visas nedan.\nDen anpassade porten kan vara valfritt värde inom de giltiga intervallen:\n%@"
+ }
+ }
+ }
+ },
+ "The entry and exit servers cannot be the same. Try changing one to a new server or location." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die Ein- und Ausstiegsserver können nicht identisch sein. Versuchen Sie, einen zu einem neuen Server oder Standort zu wechseln."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Les serveurs d'entrée et de sortie ne peuvent pas être identiques. Essayez d'en changer un sur un nouveau serveur ou un nouvel emplacement."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inmatnings- och utgångsservrarna kan inte vara desamma. Försök att ändra en till en ny server eller plats."
+ }
+ }
+ }
},
"The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Der Einstiegsserver für Multihop wird derzeit von DAITA überschrieben. Um einen Eintragsserver auszuwählen, aktivieren Sie bitte zuerst „Nur Direkt“ oder deaktivieren Sie „DAITA“ in den Einstellungen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le serveur d'entrée pour le multisaut est actuellement remplacé par DAITA. Pour sélectionner un serveur d'entrée, veuillez d'abord activer \"Direct only\" ou désactiver \"DAITA\" dans les paramètres."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Inmatningsservern för multihop är för närvarande åsidosatt av DAITA. För att välja en postserver, vänligen först aktivera “Direct only” eller inaktivera “DAITA” i inställningarna."
+ }
+ }
+ }
},
"The payment request was cancelled." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die Zahlungsaufforderung wurde abgebrochen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "La demande de paiement a été annulée."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Betalningsbegäran avbröts."
+ }
+ }
+ }
+ },
+ "The selected WireGuard port is not supported, please change it under **VPN settings**." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Der ausgewählte WireGuard-Port wird nicht unterstützt, bitte ändern Sie ihn unter **VPN-Einstellungen**."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le port WireGuard sélectionné n'est pas pris en charge, veuillez le modifier dans les **paramètres VPN**."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Den valda WireGuard-porten stöds inte, vänligen ändra den under **VPN-inställningar**."
+ }
+ }
+ }
},
"The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Die Version der auf dem Gerät gespeicherten Einstellungen ist nicht erkannt. Die Einstellungen werden auf die Standardwerte zurückgesetzt und das Gerät wird abgemeldet."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "La version des paramètres stockés sur l'appareil n'est pas reconnue. Les paramètres seront réinitialisés par défaut et l'appareil sera déconnecté."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Versionen av inställningar som lagras på enheten känns inte igen.Inställningar kommer att återställas till standardvärden och enheten kommer att loggas ut."
+ }
+ }
+ }
},
"This can be useful if the API is censored but Mullvad’s bridge servers are not." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dies kann nützlich sein, wenn die API zensiert wird, aber Mullvads Bridge-Server nicht."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cela peut être utile si l’API est censurée mais que les serveurs de pont de Mullvad ne le sont pas."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Detta kan vara användbart om API:et är censurerat men Mullvads bryggservrar är det inte."
+ }
+ }
+ }
},
"This can be useful when you are not affected by censorship." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dies kann nützlich sein, wenn Sie nicht von Zensur betroffen sind."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cela peut être utile lorsque vous n'êtes pas affecté par la censure."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Detta kan vara användbart när du inte påverkas av censur."
+ }
+ }
+ }
},
"This device is not allowed to make the payment." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dieses Gerät ist nicht berechtigt, die Zahlung durchzuführen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cet appareil n'est pas autorisé à effectuer le paiement."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Denna enhet är inte tillåten att göra betalningen."
+ }
+ }
+ }
},
"This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.\nAttention: toggling “Local network sharing” requires restarting the VPN connection." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Diese Funktion ermöglicht den Zugriff auf andere Geräte im lokalen Netzwerk, wie zum Beispiel zum Teilen, Drucken, Streamen usw.\nAchtung: Das Umschalten von \"Lokales Netzwerkteilen\" erfordert einen Neustart der VPN-Verbindung."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cette fonctionnalité permet d'accéder à d'autres périphériques du réseau local, tels que le partage, l'impression, le streaming, etc.\nAttention : activer le « Partage de réseau local » nécessite un redémarrage de la connexion VPN."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Den här funktionen ger åtkomst till andra enheter på det lokala nätverket, till exempel för att dela, skriva ut, strömma etc.\nObservera: växla mellan “Lokalt nätverk delning” kräver omstart av VPN-anslutningen."
+ }
+ }
+ }
},
"This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mit dieser Funktion können Sie diese Zensur umgehen, indem Sie benutzerdefinierte Wege zum Zugriff auf die API über Proxies und ähnliche Methoden hinzufügen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Cette fonctionnalité vous permet de contourner cette censure en ajoutant des moyens personnalisés d'accéder à l'API via des mandataires et des méthodes similaires."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Denna funktion gör att du kan kringgå censur genom att lägga till anpassade sätt att komma åt API:et via proxies och liknande metoder."
+ }
+ }
+ }
},
"This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.\nIt does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.\nThis extra step uses approximately 500 kiB of traffic every time a new tunnel is established." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dieses Feature macht den WireGuard-Tunnel gegen potentielle Angriffe von Quantencomputern resistent.\nDies geschieht, indem ein zusätzlicher Schlüsselaustausch mit einem quantensicheren Algorithmus durchgeführt wird und das Ergebnis in WireGuards regulärer Verschlüsselung gemischt wird.\nDieser zusätzliche Schritt verwendet bei jedem Bau eines neuen Tunnels etwa 500 kiB Verkehr."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Denna funktion gör WireGuard-tunneln resistent mot potentiella attacker från kvantdatorer.\nDet gör detta genom att utföra ett extra nyckelutbyte med hjälp av en kvantsäker algoritm och blanda resultatet i WireGuards vanliga kryptering.\nDetta extra steg använder cirka 500 kiB trafik varje gång en ny tunnel etableras."
+ }
+ }
+ }
},
"This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.\nYou can have up to 5 devices logged in on one Mullvad account.\nIf you log out, the device and the device name is removed. When you log back in again, the device will get a new name." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dies ist der Name, der dem Gerät zugewiesen ist. Jedes Gerät, das sich auf einem Mullvad-Konto eingeloggt hat, erhält einen einzigartigen Namen, der Ihnen hilft, ihn zu identifizieren, wenn Sie Ihre Geräte in der App oder auf der Website verwalten.\nDu kannst bis zu 5 Geräte auf einem Mullvad Konto eingeloggt haben.\nWenn Sie sich abmelden, wird das Gerät und der Gerätename entfernt. Wenn Sie sich erneut anmelden, erhält das Gerät einen neuen Namen."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Detta är namnet som tilldelats enheten. Varje enhet som är inloggad på ett Mullva-konto får ett unikt namn som hjälper dig att identifiera det när du hanterar dina enheter i appen eller på webbplatsen.\nDu kan ha upp till 5 enheter inloggade på ett Mullva-konto.\nOm du loggar ut tas enheten och enhetsnamnet bort. När du loggar in igen får enheten ett nytt namn."
+ }
+ }
+ }
},
"This logs out all devices using this account and all VPN access will be denied even if there is time left on the account. Enter the last 4 digits of the account number and hit \"Delete account\" if you really want to delete the account:" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dies protokolliert alle Geräte, die dieses Konto nutzen, und alle VPN-Zugriffe werden verweigert, selbst wenn noch Zeit auf dem Konto bleibt. Geben Sie die letzten 4 Ziffern der Kontonummer ein und klicken Sie auf \"Konto löschen\", wenn Sie das Konto wirklich löschen möchten:"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ceci déconnecte tous les appareils utilisant ce compte et tous les accès VPN seront refusés, même s'il reste du temps sur le compte. Entrez les 4 derniers chiffres du numéro de compte et cliquez sur \"Supprimer le compte\" si vous voulez vraiment supprimer le compte :"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Detta loggar ut alla enheter som använder detta konto och all VPN-åtkomst nekas även om det finns tid kvar på kontot. Ange de 4 sista siffrorna i kontonumret och tryck på \"Ta bort konto\" om du verkligen vill ta bort kontot:"
+ }
+ }
+ }
},
"This voucher code has already been used." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dieser Gutscheincode wurde bereits verwendet."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ce bon de réduction a déjà été utilisé."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Denna rabattkod har redan använts."
+ }
+ }
+ }
},
"Time left: %@" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verbleibende Zeit: %@"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Temps restant : %@"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Återstående tid: %@"
+ }
+ }
+ }
},
"To assist you better, please write in English or Swedish and include which country you are connecting from." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Um Ihnen besser zu helfen, schreiben Sie bitte auf Englisch oder Schwedisch und legen Sie fest, aus welchem Land Sie sich verbinden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Pour mieux vous aider, écrivez en anglais ou en suédois et indiquez le pays depuis lequel vous vous connectez."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För att hjälpa dig bättre, skriv gärna på engelska eller svenska och inkludera vilket land du ska ansluta från."
+ }
+ }
+ }
},
"To circumvent this you can import a file or a text, provided by our support team, with new IP addresses that override the default addresses of the servers in the Select location view." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Um dies zu umgehen, können Sie eine Datei oder einen Text importieren, der von unserem Support-Team bereitgestellt wird mit neuen IP-Adressen, die die Standardadressen der Server in der Standortansicht auswählen überschreiben."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Pour éviter cela, vous pouvez importer un fichier ou un texte fourni par notre équipe de support. avec de nouvelles adresses IP qui remplacent les adresses par défaut des serveurs dans la vue Choisir un emplacement."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För att kringgå detta kan du importera en fil eller en text, som tillhandahålls av vårt supportteam, med nya IP-adresser som åsidosätter standardadresserna för servrarna i Välj platsvy."
+ }
+ }
+ }
},
"To create a custom list, tap on \"...\" " : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Um eine benutzerdefinierte Liste zu erstellen, tippen Sie auf \"...\" "
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Pour créer une liste personnalisée, appuyez sur \"...\" "
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För att skapa en anpassad lista, tryck på \"...\" "
+ }
+ }
+ }
},
"To enable this setting, add at least one server." : {
- "comment" : "Foot note displayed if there are no DNS entries and table view is in editing mode."
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Um diese Einstellung zu aktivieren, fügen Sie mindestens einen Server hinzu."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Pour activer ce paramètre, ajoutez au moins un serveur."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För att aktivera denna inställning, lägg till minst en server."
+ }
+ }
+ }
},
"To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Um Ihnen effektiver zu helfen, wird die Protokolldatei Ihrer App an diese Nachricht angehängt. Ihre Daten bleiben sicher und privat, da sie anonymisiert sind, bevor sie über einen verschlüsselten Kanal gesendet werden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Pour vous aider plus efficacement, le fichier journal de votre application sera joint à ce message. Vos données resteront sécurisées et privées, car elles sont anonymes avant d'être envoyées par un canal chiffré."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För att hjälpa dig mer effektivt, kommer appens loggfil att bifogas till detta meddelande. Dina uppgifter förblir säkra och privata, eftersom de är anonymiserade innan de skickas över en krypterad kanal."
+ }
+ }
+ }
},
"To start using the app, you first need to add time to your account. Either buy credit on our website or redeem a voucher." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Um die App zu verwenden, müssen Sie zuerst Zeit zu Ihrem Konto hinzufügen. Kaufen Sie ein Guthaben auf unserer Website oder einlösen Sie einen Gutschein."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Pour commencer à utiliser l'application, vous devez d'abord ajouter du temps à votre compte. Achetez du crédit sur notre site Web ou utilisez un bon d'achat."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För att börja använda appen måste du först lägga till tid på ditt konto. Antingen köpa kredit på vår webbplats eller lösa in en kupong."
+ }
+ }
+ }
},
"Too many devices" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Zu viele Geräte"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Trop d'appareils"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För många enheter"
+ }
+ }
+ }
},
"Too many devices registered with account" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Zu viele Geräte mit Konto registriert"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Trop d'appareils enregistrés avec le compte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "För många enheter registrerade med kontot"
+ }
+ }
+ }
},
"Trackers" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tracker"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Trackers"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Spårare"
+ }
+ }
+ }
},
"Try again" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erneut versuchen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Réessayez"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Försök igen"
+ }
+ }
+ }
},
"TUNNEL ERROR" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "TUNNEL FEHLER"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "ERREUR DE TUNNEL"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "TUNNEL FEL"
+ }
+ }
+ }
},
"Tunnel is unset." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tunnel ist nicht gesetzt."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le tunnel est désactivé."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tunneln är upplöst."
+ }
+ }
+ }
},
"Type" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Typ"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Type de texte"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Typ"
+ }
+ }
+ }
},
"UDP-over-TCP" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "UDP-Over-TCP"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "UDP-sur-TCP"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "UDP-over-TCP"
+ }
+ }
+ }
+ },
+ "Unable to authenticate account. Please log out and log back in." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Konto konnte nicht authentifiziert werden. Bitte loggen Sie sich aus und melden Sie sich wieder an."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible d'authentifier le compte. Veuillez vous déconnecter et vous reconnecter."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det går inte att autentisera kontot. Logga ut och logga in igen."
+ }
+ }
+ }
+ },
+ "Unable to start tunnel connection after update. Please disconnect and reconnect." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tunnelverbindung kann nach dem Update nicht gestartet werden. Bitte trennen und erneut verbinden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de démarrer la connexion du tunnel après la mise à jour. Veuillez vous déconnecter et vous reconnecter."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att starta tunnelanslutningen efter uppdatering. Vänligen koppla bort och återansluta."
+ }
+ }
+ }
+ },
+ "Unable to start tunnel connection. Please send a problem report." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Tunnelverbindung konnte nicht gestartet werden. Bitte senden Sie einen Fehlerbericht."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Impossible de démarrer la connexion au tunnel. Veuillez envoyer un rapport de problème."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Det gick inte att starta tunnelanslutningen. Skicka en felrapport."
+ }
+ }
+ }
},
"Unexpected server response: %1$@ (HTTP status: %2$d)" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Unerwartete Server-Antwort: %1$@ (HTTP-Status: %2$d)"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Réponse inattendue du serveur : %1$@ (statut HTTP : %2$d)"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Oväntat serversvar: %1$@ (HTTP-status: %2$d)"
+ }
+ }
+ }
},
"Unexpected server response: %d" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Unerwartete Server-Antwort: %d"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Réponse inattendue du serveur : %d"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Oväntat serversvar: %d"
+ }
+ }
+ }
},
"Unknown error." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Unbekannter Fehler."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Erreur inconnue."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Okänt fel."
+ }
+ }
+ }
},
"Unsecured connection" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ungesicherte Verbindung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Connexion non sécurisée"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Osäkrad anslutning"
+ }
+ }
+ }
},
"Use custom DNS server" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Eigenen DNS-Server verwenden"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Utiliser un serveur DNS personnalisé"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Använd anpassad DNS-server"
+ }
+ }
+ }
},
"Username" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Benutzername"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nom d'utilisateur"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Användarnamn"
+ }
+ }
+ }
},
"Valid range: 1 - 65535" : {
-
- },
- "value" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Valid range: 1 - 65535"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Valid range: 1 - 65535"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Valid range: 1 - 65535"
+ }
+ }
+ }
},
"Verifying voucher..." : {
-
- },
- "View and manage all your logged in devices. You can have up to 5 devices on one account at a time. Each device gets a name when logged in to help you tell them apart easily." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gutschein wird überprüft..."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vérification du bon de réduction..."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Verifierar kupong..."
+ }
+ }
+ }
},
"View app logs" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "App-Logs anzeigen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Voir les journaux des applications"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Visa app-loggar"
+ }
+ }
+ }
},
"Voucher code is invalid." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gutscheincode ist ungültig."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le code du bon de réduction est invalide."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kupongkoden är ogiltig."
+ }
+ }
+ }
},
"Voucher was successfully redeemed." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Gutschein wurde erfolgreich eingelöst."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Le bon a été utilisé avec succès."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Kupongen har lösts in."
+ }
+ }
+ }
},
"VPN settings" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "VPN-Einstellungen"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Paramètres VPN"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "VPN-inställningar"
+ }
+ }
+ }
},
"Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Warnung: Der Malware-Blocker ist kein Anti-Virus und sollte nicht als solche behandelt werden. Dies ist nur eine zusätzliche Schutzschicht."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Attention : Le bloqueur de logiciels malveillants n'est pas un anti-virus et ne doit pas être traité en tant que tel, il ne s'agit que d'une couche supplémentaire de protection."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Varning: malware blockeraren är inte en anti-virus och bör inte behandlas som sådan, detta är bara ett extra lager av skydd."
+ }
+ }
+ }
},
"We are having some issues, please try again later" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wir haben einige Probleme, bitte versuchen Sie es später erneut"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nous avons quelques problèmes, veuillez réessayer plus tard"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vi har några problem, försök igen senare"
+ }
+ }
+ }
},
"We will look into this." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wir werden uns damit befassen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Nous allons nous pencher sur cette question."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vi kommer att undersöka detta."
+ }
+ }
+ }
},
"Welcome, this device is now called **%@**. For more details see the info button in Account." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Willkommen, dieses Gerät heißt jetzt **%@**. Für weitere Details siehe den Info-Button im Konto."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Bienvenue, cet appareil s'appelle maintenant **%@**. Pour plus de détails, consultez le bouton info dans le compte client."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Välkommen, denna enhet kallas nu **%@**. För mer information se knappen Info i Konto."
+ }
+ }
+ }
},
"What's new" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Was ist neu"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Quoi de neuf"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vad är nytt"
+ }
+ }
+ }
},
"When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more. \nThis might cause issues on certain websites, services, and apps.\nAttention: this setting cannot be used in combination with **Use custom DNS server**." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Wenn diese Funktion aktiviert ist, hält es das Gerät davon ab, bestimmte Domains oder Websites zu kontaktieren, die für die Verbreitung von Werbung, Malware, Tracker und mehr bekannt sind. \nDies kann Probleme auf bestimmten Webseiten, Diensten und Apps verursachen.\nAchtung: diese Einstellung kann nicht in Kombination mit **Eigenen DNS-Server verwenden** verwendet werden."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "När den här funktionen är aktiverad stoppar den enheten från att kontakta vissa domäner eller webbplatser som är kända för att distribuera annonser, skadlig kod, trackers och mer. \nDetta kan orsaka problem på vissa webbplatser, tjänster och appar.\nObservera: den här inställningen kan inte användas i kombination med **Använd anpassad DNS-server**."
+ }
+ }
+ }
},
"When using DAITA, one provider with DAITA-enabled servers is required." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Bei der Verwendung von DAITA ist ein Provider mit DAITA-fähigen Servern erforderlich."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Lors de l'utilisation de DAITA, un fournisseur de serveurs activés par DAITA est requis."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vid användning av DAITA krävs en leverantör med DAITA-aktiverade servrar."
+ }
+ }
+ }
},
"Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Welcher TCP-Port das UDP-over-TCP-Obfuscation-Protokoll sich auf dem VPN-Server verbinden soll."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "À quel port TCP le protocole d'obfuscation UDP-over-TCP doit se connecter sur le serveur VPN."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vilken TCP-port UDP-over-TCP obfuscation protokollet bör ansluta till på VPN-servern."
+ }
+ }
+ }
},
"WireGuard Obfuscation" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "WireGuard Verschleierung"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Obfuscation WireGuard"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Trådvärnsförfalskning"
+ }
+ }
+ }
},
"WireGuard ports" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "WireGuard Ports"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ports WireGuard"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "WireGuard portar"
+ }
+ }
+ }
},
"With the \"Direct\" method, the app communicates with a Mullvad API server directly without any intermediate proxies." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mit der \"Direct\" Methode kommuniziert die App direkt mit einem Mullvad API Server ohne Zwischenproxies."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Avec la méthode \"Direct\", l'application communique directement avec un serveur API Mullvad sans proxys intermédiaires."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Med \"Direkt\" metoden kommunicerar appen med en Mullvads API-server direkt utan några mellanliggande proxier."
+ }
+ }
+ }
},
"With the \"Encrypted DNS proxy\" method, the app will communicate with our Mullvad API through a proxy address.\nIt does this by retrieving an address from a DNS over HTTPS (DoH) server and then using that to reach our API servers." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mit der \"Verschlüsselten DNS-Proxy-Methode\" wird die App über eine Proxy-Adresse mit unserer Mullvad-API kommunizieren.\nDies geschieht durch das Abrufen einer Adresse von einem DNS über den HTTPS (DoH) Server und die Verwendung dieser Adresse, um unsere API-Server zu erreichen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Avec la méthode \"proxy DNS chiffré\", l'application communiquera avec notre API Mullvad via une adresse proxy.\nIl fait cela en récupérant une adresse depuis un DNS via un serveur HTTPS (DoH) puis en utilisant cela pour atteindre nos serveurs API."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Med metoden \"Krypterad DNS-proxy\" kommer appen att kommunicera med vårt Mullvad API genom en proxyadress.\nDet gör detta genom att hämta en adress från en DNS över HTTPS (DoH) server och sedan använda det för att nå våra API-servrar."
+ }
+ }
+ }
},
"With the \"Mullvad bridges\" method, the app communicates with a Mullvad API server via a Mullvad bridge server. It does this by sending the traffic obfuscated by Shadowsocks." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Mit der \"Mullvad Bridges\"-Methode kommuniziert die App mit einem Mullvad API-Server über einen Mullvad Bridge-Server. Sie tut dies, indem sie den Verkehr verschleiert von Shadowsocks."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Avec la méthode \"pont Mullvad\", l'application communique avec un serveur API Mullvad via un serveur pont Mullvad. Il fait cela en envoyant le trafic obscurci par Shadowsocks."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Med \"Mullvad bridges\"-metoden kommunicerar appen med en Mullvads API-server via en Mullvads bryggserver. Det gör detta genom att skicka trafiken fördunklad av Shadowsocks."
+ }
+ }
+ }
},
"Yes, continue" : {
-
- },
- "Yes, log out device" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ja, fortfahren"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Oui, continuer"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ja, fortsätt"
+ }
+ }
+ }
},
"You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sie sind im Begriff, den Problembericht ohne eine Möglichkeit an Sie zu senden. Wenn Sie eine Antwort auf Ihren Bericht wünschen, müssen Sie eine E-Mail-Adresse eingeben."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous êtes sur le point d'envoyer le rapport de problème sans que nous puissions vous répondre. Si vous voulez une réponse à votre signalement vous devrez entrer une adresse e-mail."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ni är på väg att skicka problemrapporten utan ett sätt för oss att återkomma till er. Om du vill ha ett svar på din rapport måste du ange en e-postadress."
+ }
+ }
+ }
},
- "You can add more time via the account view or website to continue using the VPN." : {
-
+ "You are logged in with an invalid account number. Please log out and try another one." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sie sind mit einer ungültigen Kontonummer angemeldet. Bitte melden Sie sich ab und versuchen Sie eine andere."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous êtes connecté avec un numéro de compte invalide. Veuillez vous déconnecter et essayer un autre."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du är inloggad med ett ogiltigt kontonummer. Logga ut och prova ett annat."
+ }
+ }
+ }
},
- "You can now continue logging in on this device." : {
-
+ "You can add more time via the account view or website to continue using the VPN." : {
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du kannst mehr Zeit über die Account-Ansicht oder Webseite hinzufügen, um das VPN weiter zu nutzen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous pouvez ajouter plus de temps via la vue du compte ou le site Web pour continuer à utiliser le VPN."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du kan lägga till mer tid via kontovyn eller webbplatsen för att fortsätta använda VPN."
+ }
+ }
+ }
},
"You can use the \"restore purchases\" function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sie können die Funktion \"Wiederherstellungskäufe\" verwenden, um alle In-App-Zahlungen über Apple-Dienste zu überprüfen. Wenn eine Zahlung nicht gutgeschrieben wurde, wird die Zeit dem derzeit eingeloggten Mullvad-Konto hinzugefügt."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous pouvez utiliser la fonction \"restaurer les achats\" pour vérifier les paiements effectués via les services Apple. S'il y a un paiement qui n'a pas été crédité, il ajoutera le temps au compte actuellement connecté à Mullvad."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du kan använda funktionen \"återställ köp\" för att kontrollera eventuella in-app betalningar som görs via Apple-tjänster. Om det finns en betalning som inte har krediterats kommer den att lägga till tid till det inloggade Mullva-kontot."
+ }
+ }
+ }
},
"You have %@ left on this account." : {
-
- },
- "You have a right to privacy. That’s why we never store activity logs, don’t ask for personal information, and encourage anonymous payments.\n\nIn some situations, as outlined in our privacy policy, we might process personal data that you choose to send, for example if you email us.\n\nWe strongly believe in retaining as little data as possible because we want you to remain anonymous." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sie haben %@ auf diesem Konto übrig."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Il vous reste %@ sur ce compte."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du har %@ kvar på detta konto."
+ }
+ }
+ }
},
"You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du hast keine VPN-Zeit mehr auf diesem Konto. Kaufen Sie entweder Guthaben auf unserer Website oder tätigen Sie einen In-App-Kauf über die Schaltfläche **Zeit hinzufügen** unten."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Il ne vous reste plus de temps VPN sur ce compte. Achetez du crédit sur notre site Web ou effectuez un achat dans l'application via le bouton **Ajouter du temps** ci-dessous."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du har ingen mer VPN-tid kvar på detta konto. Antingen köpa kredit på vår webbplats eller göra ett in-app köp via **Lägg till tid** knappen nedan."
+ }
+ }
+ }
},
"You have no more VPN time left on this account. To add more, you will need to disconnect and access the Internet with an unsecure connection." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du hast keine VPN-Zeit mehr auf diesem Konto. Um mehr hinzuzufügen, müssen Sie die Verbindung trennen und mit einer unsicheren Verbindung auf das Internet zugreifen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Il ne vous reste plus de temps VPN sur ce compte. Pour en ajouter plus, vous devrez vous déconnecter et accéder à Internet avec une connexion non sécurisée."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du har ingen mer VPN-tid kvar på detta konto. För att lägga till mer, måste du koppla bort och komma åt Internet med en osäker anslutning."
+ }
+ }
+ }
},
"You have one day left on this account. Please add more time to continue using the VPN." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du hast noch einen Tag auf diesem Konto. Bitte füge mehr Zeit hinzu, um das VPN weiter zu nutzen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Il vous reste un jour sur ce compte. Veuillez ajouter plus de temps pour continuer à utiliser le VPN."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du har en dag kvar på detta konto. Lägg till mer tid för att fortsätta använda VPN."
+ }
+ }
+ }
},
"You have removed this device. To connect again, you will need to log back in." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sie haben dieses Gerät entfernt. Um sich erneut zu verbinden, müssen Sie sich wieder anmelden."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous avez supprimé cet appareil. Pour vous reconnecter, vous devrez vous reconnecter."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du har tagit bort den här enheten. För att ansluta igen måste du logga in igen."
+ }
+ }
+ }
},
"You have unsaved changes." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Sie haben ungespeicherte Änderungen."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous avez des modifications non enregistrées."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du har osparade ändringar."
+ }
+ }
+ }
},
"You’re all set!!" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Du bist alles!!"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vous êtes prêt !!"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ni är alla klara!"
+ }
+ }
+ }
},
"Your device is offline. The tunnel will automatically connect once your device is back online." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ihr Gerät ist offline. Der Tunnel verbindet sich automatisch, sobald Ihr Gerät wieder online ist."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Votre appareil est hors ligne. Le tunnel se connectera automatiquement une fois que votre appareil sera de nouveau connecté."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Din enhet är offline. Tunneln ansluts automatiskt när enheten är online."
+ }
+ }
+ }
},
"Your device is offline. Try connecting again when the device has access to Internet." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ihr Gerät ist offline. Versuchen Sie sich erneut zu verbinden, wenn das Gerät Zugang zum Internet hat."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Votre appareil est hors ligne. Essayez de vous connecter à nouveau lorsque l'appareil a accès à Internet."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Din enhet är offline. Försök ansluta igen när enheten har tillgång till Internet."
+ }
+ }
+ }
},
"Your email (optional)" : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ihre E-Mail (optional)"
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Votre adresse e-mail (facultatif)"
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Din e-postadress (valfritt)"
+ }
+ }
+ }
},
"Your previous purchases have already been added to this account." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ihre bisherigen Käufe wurden diesem Konto bereits hinzugefügt."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Vos achats précédents ont déjà été ajoutés à ce compte."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Dina tidigare köp har redan lagts till i detta konto."
+ }
+ }
+ }
},
"Your purchase was successfully refunded." : {
-
+ "localizations" : {
+ "de" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ihr Kauf wurde erfolgreich zurückerstattet."
+ }
+ },
+ "fr" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Votre achat a été remboursé avec succès."
+ }
+ },
+ "sv" : {
+ "stringUnit" : {
+ "state" : "translated",
+ "value" : "Ditt köp har återbetalats."
+ }
+ }
+ }
}
},
"version" : "1.0"
diff --git a/ios/MullvadVPN.xcodeproj/project.pbxproj b/ios/MullvadVPN.xcodeproj/project.pbxproj
index 6ea4872376..a6b7f3553d 100644
--- a/ios/MullvadVPN.xcodeproj/project.pbxproj
+++ b/ios/MullvadVPN.xcodeproj/project.pbxproj
@@ -963,6 +963,17 @@
F04413622BA45CE30018A6EE /* CustomListLocationNodeBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04413602BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift */; };
F04789ED2E3A4FEB0011E3A5 /* ApplicationLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04789EB2E3A4FEB0011E3A5 /* ApplicationLanguage.swift */; };
F048BFA22D31843000251CB9 /* ChangeLogModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F048BFA12D31842B00251CB9 /* ChangeLogModel.swift */; };
+ F04A66F92E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A66FA2E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A66FB2E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A66FC2E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A66FD2E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A66FE2E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A66FF2E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A67002E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A67012E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A67022E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
+ F04A67032E4B44EC0081C89C /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */; };
F04AF92D2C466013004A8314 /* EphemeralPeerNegotiationState.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04AF92C2C466013004A8314 /* EphemeralPeerNegotiationState.swift */; };
F04FBE612A8379EE009278D7 /* AppPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = F04FBE602A8379EE009278D7 /* AppPreferences.swift */; };
F050AE4E2B70D7F8003F4EDB /* LocationCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = F050AE4D2B70D7F8003F4EDB /* LocationCellViewModel.swift */; };
@@ -1060,7 +1071,6 @@
F0B894F32BF7526700817A42 /* RelaySelector+Wireguard.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B894F22BF7526700817A42 /* RelaySelector+Wireguard.swift */; };
F0B894F52BF7528700817A42 /* RelaySelector+Shadowsocks.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B894F42BF7528700817A42 /* RelaySelector+Shadowsocks.swift */; };
F0BE65372B9F136A005CC385 /* LocationSectionHeaderFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0BE65362B9F136A005CC385 /* LocationSectionHeaderFooterView.swift */; };
- F0C1374F2E45EF1F006307BF /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F0C1374E2E45EF1F006307BF /* Localizable.xcstrings */; };
F0C13FE42C64F7CB00BD087D /* DAITASettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C13FE32C64F7CB00BD087D /* DAITASettings.swift */; };
F0C13FE62C64FB3400BD087D /* TunnelSettingsV6.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C13FE52C64FB3400BD087D /* TunnelSettingsV6.swift */; };
F0C2AEFD2A0BB5CC00986207 /* NotificationProviderIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C2AEFC2A0BB5CC00986207 /* NotificationProviderIdentifier.swift */; };
@@ -1081,6 +1091,7 @@
F0DDE42A2B220A15006B57A7 /* Haversine.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0DDE4272B220A15006B57A7 /* Haversine.swift */; };
F0DDE42B2B220A15006B57A7 /* RelaySelector.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0DDE4282B220A15006B57A7 /* RelaySelector.swift */; };
F0DDE42C2B220A15006B57A7 /* Midpoint.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0DDE4292B220A15006B57A7 /* Midpoint.swift */; };
+ F0DEBB5C2E4E1927001B5624 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F0DEBB5A2E4E1927001B5624 /* InfoPlist.strings */; };
F0E3618B2A4ADD2F00AEEF2B /* WelcomeContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0E3618A2A4ADD2F00AEEF2B /* WelcomeContentView.swift */; };
F0E5B2F82C9C68CF0007F78C /* EncryptedDNSTransport.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0E5B2F72C9C68CD0007F78C /* EncryptedDNSTransport.swift */; };
F0E61CAA2BF2911D000C4A95 /* TunnelSettingsV5.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0E61CA82BF2911D000C4A95 /* TunnelSettingsV5.swift */; };
@@ -2406,27 +2417,34 @@
E158B35F285381C60002F069 /* String+AccountFormatting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "String+AccountFormatting.swift"; sourceTree = "<group>"; };
E1FD0DF428AA7CE400299DB4 /* StatusActivityView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusActivityView.swift; sourceTree = "<group>"; };
F006CCFB2B99CC8400C6C2AC /* EditLocationsCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditLocationsCoordinator.swift; sourceTree = "<group>"; };
+ F011221C2E4A3275005DD108 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = nl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F01528BA2BFF3FEE00B01D00 /* ShadowsocksRelaySelector.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksRelaySelector.swift; sourceTree = "<group>"; };
F0164EB92B4456D30020268D /* AccessMethodRepository+Stub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AccessMethodRepository+Stub.swift"; sourceTree = "<group>"; };
F0164EBB2B482E430020268D /* AppStorage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStorage.swift; sourceTree = "<group>"; };
F0164EBD2B4BFF940020268D /* ShadowsocksLoader.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksLoader.swift; sourceTree = "<group>"; };
F0164EC22B4C49D30020268D /* ShadowsocksLoaderStub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksLoaderStub.swift; sourceTree = "<group>"; };
F0164ED02B4F2DCB0020268D /* AccessMethodIterator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccessMethodIterator.swift; sourceTree = "<group>"; };
+ F01765962E4A324F00262F54 /* fi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fi; path = fi.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F017F8DF2D78ABE90076EC01 /* RelayFilterDataSourceItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayFilterDataSourceItem.swift; sourceTree = "<group>"; };
F01DAE322C2B032A00521E46 /* RelaySelection.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RelaySelection.swift; sourceTree = "<group>"; };
+ F025C63B2E4E1934007B93FF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ F027E0982E4A325C00090D26 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F028A5692A34D4E700C0CAA3 /* RedeemVoucherViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RedeemVoucherViewController.swift; sourceTree = "<group>"; };
F028A56B2A34D8E600C0CAA3 /* AddCreditSucceededViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddCreditSucceededViewController.swift; sourceTree = "<group>"; };
+ F029DF502E4A328B00143913 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F02F419A2B9723AE00625A4F /* AddLocationsViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddLocationsViewController.swift; sourceTree = "<group>"; };
F02F419B2B9723AE00625A4F /* AddLocationsDataSource.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddLocationsDataSource.swift; sourceTree = "<group>"; };
F02F419C2B9723AF00625A4F /* AddLocationsCoordinator.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AddLocationsCoordinator.swift; sourceTree = "<group>"; };
F03580242A13842C00E5DAFD /* IncreasedHitButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IncreasedHitButton.swift; sourceTree = "<group>"; };
F03A69F62C2AD2D5000E2E7E /* TimeInterval+Timeout.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TimeInterval+Timeout.swift"; sourceTree = "<group>"; };
F03A69F82C2AD413000E2E7E /* FormsheetPresentationController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormsheetPresentationController.swift; sourceTree = "<group>"; };
+ F03B95342E4A3280005A80C9 /* pt */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt; path = pt.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F041BE4E2C983C2B0083EC28 /* DAITASettingsPromptItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DAITASettingsPromptItem.swift; sourceTree = "<group>"; };
F041BE522C9878B60083EC28 /* ConnectionConfigurationBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConnectionConfigurationBuilder.swift; sourceTree = "<group>"; };
F04413602BA45CD70018A6EE /* CustomListLocationNodeBuilder.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CustomListLocationNodeBuilder.swift; sourceTree = "<group>"; };
F04789EB2E3A4FEB0011E3A5 /* ApplicationLanguage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApplicationLanguage.swift; sourceTree = "<group>"; };
F048BFA12D31842B00251CB9 /* ChangeLogModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLogModel.swift; sourceTree = "<group>"; };
+ F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
F04AF92C2C466013004A8314 /* EphemeralPeerNegotiationState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EphemeralPeerNegotiationState.swift; sourceTree = "<group>"; };
F04DD3D72C130DF600E03E28 /* TunnelSettingsManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TunnelSettingsManager.swift; sourceTree = "<group>"; };
F04FBE602A8379EE009278D7 /* AppPreferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppPreferences.swift; sourceTree = "<group>"; };
@@ -2439,6 +2457,7 @@
F050AE5D2B739A73003F4EDB /* LocationDataSourceProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationDataSourceProtocol.swift; sourceTree = "<group>"; };
F050AE5F2B73A41E003F4EDB /* AllLocationDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AllLocationDataSource.swift; sourceTree = "<group>"; };
F050AE612B74DBAC003F4EDB /* CustomListsDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomListsDataSource.swift; sourceTree = "<group>"; };
+ F050CF8D2E4A360F00AE9924 /* tr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = tr; path = tr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F053F4B92C4A94D300FBD937 /* EphemeralPeerExchangingPipelineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EphemeralPeerExchangingPipelineTests.swift; sourceTree = "<group>"; };
F05769B82C6656E400D9778B /* TunnelSettingsPropagator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelSettingsPropagator.swift; sourceTree = "<group>"; };
F05769BA2C6661EE00D9778B /* TunnelSettingsStrategy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelSettingsStrategy.swift; sourceTree = "<group>"; };
@@ -2447,12 +2466,14 @@
F05919782C45402E00C301F3 /* SingleHopEphemeralPeerExchanger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SingleHopEphemeralPeerExchanger.swift; sourceTree = "<group>"; };
F059197C2C454C9200C301F3 /* MultiHopEphemeralPeerExchanger.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiHopEphemeralPeerExchanger.swift; sourceTree = "<group>"; };
F059197E2C454CE000C301F3 /* EphemeralPeerExchangingProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EphemeralPeerExchangingProtocol.swift; sourceTree = "<group>"; };
+ F05AEE6D2E4A35DE004F266A /* my */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = my; path = my.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F06045E52B231EB700B2D37A /* URLSessionTransport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLSessionTransport.swift; sourceTree = "<group>"; };
F06045E92B23217E00B2D37A /* ShadowsocksTransport.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ShadowsocksTransport.swift; sourceTree = "<group>"; };
F06045EB2B2322A500B2D37A /* Jittered.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Jittered.swift; sourceTree = "<group>"; };
F06200092CB7EB42002E6DB9 /* CGSize+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGSize+Helpers.swift"; sourceTree = "<group>"; };
F062000B2CB7EB5D002E6DB9 /* UIImage+Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIImage+Helpers.swift"; sourceTree = "<group>"; };
F062B94C2C16E09700B6D47A /* TunnelSettingsManagerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelSettingsManagerTests.swift; sourceTree = "<group>"; };
+ F06DB5F22E4A329B0003A363 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
F072D3CE2C07122400906F64 /* SettingsUpdaterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsUpdaterTests.swift; sourceTree = "<group>"; };
F072D3D12C071AD100906F64 /* ShadowsocksLoaderTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShadowsocksLoaderTests.swift; sourceTree = "<group>"; };
F073FCB22C6617D70062EA1D /* TunnelStore+Stubs.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "TunnelStore+Stubs.swift"; sourceTree = "<group>"; };
@@ -2461,6 +2482,8 @@
F07BF2572A26112D00042943 /* InputTextFormatterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InputTextFormatterTests.swift; sourceTree = "<group>"; };
F07BF2612A26279100042943 /* RedeemVoucherOperation.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RedeemVoucherOperation.swift; sourceTree = "<group>"; };
F07CFF1F29F2720E008C0343 /* NewDeviceNotificationProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewDeviceNotificationProvider.swift; sourceTree = "<group>"; };
+ F07F1BD42E4A361E003FB336 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
+ F08096FA2E4A325600D8B0CF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F09084672C6E88ED001CD36E /* DaitaPromptAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DaitaPromptAlert.swift; sourceTree = "<group>"; };
F09A29782A9F8A9B00EA3B6F /* LogoutDialogueView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogoutDialogueView.swift; sourceTree = "<group>"; };
F09A29792A9F8A9B00EA3B6F /* VoucherTextField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = VoucherTextField.swift; sourceTree = "<group>"; };
@@ -2475,8 +2498,10 @@
F09D04BA2AE95396003D4F89 /* URLSessionStub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = URLSessionStub.swift; sourceTree = "<group>"; };
F09D04BC2AEBB7C5003D4F89 /* OutgoingConnectionService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingConnectionService.swift; sourceTree = "<group>"; };
F09D04BF2AF39D63003D4F89 /* OutgoingConnectionServiceTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingConnectionServiceTests.swift; sourceTree = "<group>"; };
+ F09F45242E4A35D600FF5C82 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0A0868F2C22D6A700BF83E7 /* TunnelSettingsStrategyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelSettingsStrategyTests.swift; sourceTree = "<group>"; };
F0A163882C47B46300592300 /* SingleHopEphemeralPeerExchangerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SingleHopEphemeralPeerExchangerTests.swift; sourceTree = "<group>"; };
+ F0A66C992E4A3607006F190A /* th */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = th; path = th.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0A7AAA12E1D31E200D433E8 /* ScaledSegmentedControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScaledSegmentedControl.swift; sourceTree = "<group>"; };
F0A7EBB12CEF6C79005BB671 /* ConsolidatedApplicationLogTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConsolidatedApplicationLogTests.swift; sourceTree = "<group>"; };
F0A89CB22D9D6C1400580C27 /* MullvadDeviceProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MullvadDeviceProxy.swift; sourceTree = "<group>"; };
@@ -2490,6 +2515,7 @@
F0ADF1D02D01B55C00299F09 /* ChipModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChipModel.swift; sourceTree = "<group>"; };
F0ADF1D22D01B6B400299F09 /* FeatureIndicatorsViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FeatureIndicatorsViewModel.swift; sourceTree = "<group>"; };
F0ADF1D42D01DCFD00299F09 /* ChipView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChipView.swift; sourceTree = "<group>"; };
+ F0AE6DB72E4A3285001A7B23 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ru.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0B0E6962AFE6E7E001DC66B /* XCTest+Async.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "XCTest+Async.swift"; sourceTree = "<group>"; };
F0B495752D02025200CFEC2A /* ChipContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChipContainerView.swift; sourceTree = "<group>"; };
F0B495772D02038B00CFEC2A /* ChipViewModelProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChipViewModelProtocol.swift; sourceTree = "<group>"; };
@@ -2500,15 +2526,18 @@
F0B894F22BF7526700817A42 /* RelaySelector+Wireguard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RelaySelector+Wireguard.swift"; sourceTree = "<group>"; };
F0B894F42BF7528700817A42 /* RelaySelector+Shadowsocks.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "RelaySelector+Shadowsocks.swift"; sourceTree = "<group>"; };
F0BE65362B9F136A005CC385 /* LocationSectionHeaderFooterView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocationSectionHeaderFooterView.swift; sourceTree = "<group>"; };
- F0C1374E2E45EF1F006307BF /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
+ F0BEFD1F2E4A327A00C19030 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = pl.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0C13FE32C64F7CB00BD087D /* DAITASettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DAITASettings.swift; sourceTree = "<group>"; };
F0C13FE52C64FB3400BD087D /* TunnelSettingsV6.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TunnelSettingsV6.swift; sourceTree = "<group>"; };
F0C2AEFC2A0BB5CC00986207 /* NotificationProviderIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationProviderIdentifier.swift; sourceTree = "<group>"; };
F0C4C9BD2C49477B00A79006 /* MultiHopEphemeralPeerExchangerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiHopEphemeralPeerExchangerTests.swift; sourceTree = "<group>"; };
F0C4C9BF2C495E7500A79006 /* EphemeralPeerExchangeActorStub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EphemeralPeerExchangeActorStub.swift; sourceTree = "<group>"; };
+ F0C5C38F2E4A3261005C6A6B /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0C6A8422AB08E54000777A8 /* RedeemVoucherViewConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RedeemVoucherViewConfiguration.swift; sourceTree = "<group>"; };
F0C6FA842A6A733700F521F0 /* InAppPurchaseInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InAppPurchaseInteractor.swift; sourceTree = "<group>"; };
+ F0CB96302E4A324000206149 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0D5591D2D3805050072B63F /* LatestChangesNotificationProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LatestChangesNotificationProvider.swift; sourceTree = "<group>"; };
+ F0D8061B2E4E193A009E3392 /* sv */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = sv; path = sv.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0D8825A2B04F53600D3EF9A /* OutgoingConnectionData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutgoingConnectionData.swift; sourceTree = "<group>"; };
F0DA87462A9CB9A2006044F1 /* AccountExpiryRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountExpiryRow.swift; sourceTree = "<group>"; };
F0DA87482A9CBA9F006044F1 /* AccountDeviceRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountDeviceRow.swift; sourceTree = "<group>"; };
@@ -2520,7 +2549,10 @@
F0DDE4272B220A15006B57A7 /* Haversine.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Haversine.swift; sourceTree = "<group>"; };
F0DDE4282B220A15006B57A7 /* RelaySelector.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RelaySelector.swift; sourceTree = "<group>"; };
F0DDE4292B220A15006B57A7 /* Midpoint.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Midpoint.swift; sourceTree = "<group>"; };
+ F0DEA1FB2E4A326F002275F7 /* nb */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nb; path = nb.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ F0DEBB5B2E4E1927001B5624 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0E3618A2A4ADD2F00AEEF2B /* WelcomeContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WelcomeContentView.swift; sourceTree = "<group>"; };
+ F0E576BB2E4A324A0079FA27 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0E5B2F72C9C68CD0007F78C /* EncryptedDNSTransport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EncryptedDNSTransport.swift; sourceTree = "<group>"; };
F0E61CA82BF2911D000C4A95 /* TunnelSettingsV5.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TunnelSettingsV5.swift; sourceTree = "<group>"; };
F0E61CA92BF2911D000C4A95 /* MultihopSettings.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MultihopSettings.swift; sourceTree = "<group>"; };
@@ -2532,6 +2564,7 @@
F0E8E4C22A602E0D00ED26A3 /* AccountDeletionViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountDeletionViewModel.swift; sourceTree = "<group>"; };
F0E8E4C42A60499100ED26A3 /* AccountDeletionViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountDeletionViewController.swift; sourceTree = "<group>"; };
F0E8E4C82A604E7400ED26A3 /* AccountDeletionInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountDeletionInteractor.swift; sourceTree = "<group>"; };
+ F0EE6E772E4A321B0089DFF3 /* da */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = da; path = da.lproj/InfoPlist.strings; sourceTree = "<group>"; };
F0EEFB9E2D8D60E1007FE4B3 /* RustProblemReportRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RustProblemReportRequest.swift; sourceTree = "<group>"; };
F0EF50D42A949F8E0031E8DF /* ChangeLogViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChangeLogViewModel.swift; sourceTree = "<group>"; };
F0F146912D94491200BF78E7 /* RustProblemReportRequestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RustProblemReportRequestTests.swift; sourceTree = "<group>"; };
@@ -3513,6 +3546,7 @@
children = (
58CE5E6A224146210008646E /* Assets.xcassets */,
58CE5E6F224146210008646E /* Info.plist */,
+ F0EE6E762E4A321B0089DFF3 /* InfoPlist.strings */,
58727282265D173C00F315B2 /* LaunchScreen.storyboard */,
5866F39B2243B82D00168AE5 /* MullvadVPN.entitlements */,
A92962582B1F4FDB00DFB93B /* PrivacyInfo.xcprivacy */,
@@ -4016,6 +4050,7 @@
children = (
58915D662A25F9F20066445B /* DeviceCheck */,
58CE5E7D224146470008646E /* Info.plist */,
+ F0DEBB5A2E4E1927001B5624 /* InfoPlist.strings */,
58CE5E7E224146470008646E /* PacketTunnel.entitlements */,
58F3F3682AA08E2200D3B0A4 /* PacketTunnelProvider */,
F059197A2C45404500C301F3 /* PostQuantum */,
@@ -4207,7 +4242,7 @@
children = (
5859A55429CD9DD800F66591 /* changes.txt */,
587DCCEE287D84A500CE821E /* countries.geo.json */,
- F0C1374E2E45EF1F006307BF /* Localizable.xcstrings */,
+ F04A66F82E4B44EC0081C89C /* Localizable.xcstrings */,
);
path = Assets;
sourceTree = "<group>";
@@ -5133,6 +5168,7 @@
58B2FDCF2AA71D2A003EB5C6 /* Sources */,
58B2FDD02AA71D2A003EB5C6 /* Frameworks */,
44A262602D63745000085380 /* Embed Frameworks */,
+ F03D75AC2E49FBE9003B600C /* Resources */,
);
buildRules = (
);
@@ -5576,7 +5612,6 @@
de,
es,
it,
- "pt-PT",
nl,
sv,
da,
@@ -5590,6 +5625,7 @@
fi,
my,
tr,
+ pt,
);
mainGroup = 58CE5E57224146200008646E;
packageReferences = (
@@ -5630,6 +5666,7 @@
files = (
062B45A328FD4CA700746E77 /* le_root_cert.cer in Resources */,
7A95B67B2D5F758300687524 /* relays.json in Resources */,
+ F04A66FC2E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5651,6 +5688,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ F04A66FF2E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5666,11 +5704,11 @@
buildActionMask = 2147483647;
files = (
A9BA08312BA32FA9005A7A2D /* PrivacyInfo.xcprivacy in Resources */,
+ F04A66F92E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
7A83C3FF2A55B72E00DFB83A /* MullvadVPNApp.xctestplan in Resources */,
58727283265D173C00F315B2 /* LaunchScreen.storyboard in Resources */,
5859A55529CD9DD900F66591 /* changes.txt in Resources */,
587DCCEF287D84A500CE821E /* countries.geo.json in Resources */,
- F0C1374F2E45EF1F006307BF /* Localizable.xcstrings in Resources */,
58CE5E6B224146210008646E /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -5680,6 +5718,8 @@
buildActionMask = 2147483647;
files = (
A9BA08322BA32FB6005A7A2D /* PrivacyInfo.xcprivacy in Resources */,
+ F0DEBB5C2E4E1927001B5624 /* InfoPlist.strings in Resources */,
+ F04A66FA2E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5687,6 +5727,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ F04A66FB2E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5694,6 +5735,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ F04A66FD2E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5701,6 +5743,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ F04A66FE2E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5715,6 +5758,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ F04A67012E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5736,6 +5780,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ F04A67032E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5746,10 +5791,19 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
+ F03D75AC2E49FBE9003B600C /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F04A67002E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
F0ACE3062BE4E478006D5333 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
+ F04A67022E4B44EC0081C89C /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5884,7 +5938,7 @@
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
- shellScript = "# Run the following steps if the build configuration is NOT Debug\n# OR if the configuration is Staging (used for UITests).\nif [ \"$CONFIGURATION\" != \"Debug\" ] || [ \"$CONFIGURATION\" = \"Staging\" ]; then\n echo \"Removing non-English localizations for Release or Staging build\"\n find \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" -type d -name \"*.lproj\" ! -name \"en.lproj\" -exec rm -r {} +\nfi\n\n# Ensure the output directory exists\nmkdir -p \"${DERIVED_FILE_DIR}\"\n\n# Final output\necho \">> Creating output flag file at: ${DERIVED_FILE_DIR}/localization-cleanup-done.flag\"\ntouch \"${DERIVED_FILE_DIR}/localization-cleanup-done.flag\"\n";
+ shellScript = "# Run the following steps if the build configuration is NOT Debug\n# OR if the configuration is Staging (used for UITests).\nif [ \"$CONFIGURATION\" != \"Debug\" ] || [ \"$CONFIGURATION\" = \"Staging\" ]; then\n # Remove all non-English .lproj folders\n find \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" \\\n -type d -name \"*.lproj\" ! -name \"en.lproj\" -exec rm -r {} +\n\n # Remove all .xcstrings files\n find \"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}\" \\\n -type f -name \"*.xcstrings\" -exec rm -f {} +\nfi\n\n# Ensure the output directory exists\nmkdir -p \"${DERIVED_FILE_DIR}\"\n\n# Final output\necho \">> Creating output flag file at: ${DERIVED_FILE_DIR}/localization-cleanup-done.flag\"\ntouch \"${DERIVED_FILE_DIR}/localization-cleanup-done.flag\"\n";
};
/* End PBXShellScriptBuildPhase section */
@@ -7295,6 +7349,45 @@
};
/* End PBXTargetDependency section */
+/* Begin PBXVariantGroup section */
+ F0DEBB5A2E4E1927001B5624 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ F0DEBB5B2E4E1927001B5624 /* de */,
+ F025C63B2E4E1934007B93FF /* fr */,
+ F0D8061B2E4E193A009E3392 /* sv */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ F0EE6E762E4A321B0089DFF3 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ F0EE6E772E4A321B0089DFF3 /* da */,
+ F0CB96302E4A324000206149 /* de */,
+ F0E576BB2E4A324A0079FA27 /* es */,
+ F01765962E4A324F00262F54 /* fi */,
+ F08096FA2E4A325600D8B0CF /* fr */,
+ F027E0982E4A325C00090D26 /* it */,
+ F0C5C38F2E4A3261005C6A6B /* ja */,
+ F0DEA1FB2E4A326F002275F7 /* nb */,
+ F011221C2E4A3275005DD108 /* nl */,
+ F0BEFD1F2E4A327A00C19030 /* pl */,
+ F03B95342E4A3280005A80C9 /* pt */,
+ F0AE6DB72E4A3285001A7B23 /* ru */,
+ F029DF502E4A328B00143913 /* sv */,
+ F06DB5F22E4A329B0003A363 /* zh-Hans */,
+ F09F45242E4A35D600FF5C82 /* ko */,
+ F05AEE6D2E4A35DE004F266A /* my */,
+ F0A66C992E4A3607006F190A /* th */,
+ F050CF8D2E4A360F00AE9924 /* tr */,
+ F07F1BD42E4A361E003FB336 /* zh-Hant */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
/* Begin XCBuildConfiguration section */
06799AD428F98E1D00ACD94E /* Debug */ = {
isa = XCBuildConfiguration;
@@ -7706,7 +7799,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
- SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_PRECOMPILE_BRIDGING_HEADER = NO;
SWIFT_VERSION = 6.0;
@@ -7768,7 +7861,7 @@
ONLY_ACTIVE_ARCH = NO;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_PRECOMPILE_BRIDGING_HEADER = NO;
SWIFT_VERSION = 6.0;
@@ -8420,7 +8513,7 @@
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
- SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
SWIFT_PRECOMPILE_BRIDGING_HEADER = NO;
SWIFT_VERSION = 6.0;
@@ -9276,7 +9369,7 @@
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
- SWIFT_EMIT_LOC_STRINGS = YES;
+ SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_OPTIMIZATION_LEVEL = "-O";
SWIFT_PRECOMPILE_BRIDGING_HEADER = NO;
SWIFT_VERSION = 6.0;
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodInteractor.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodInteractor.swift
index cfd5ef9eed..117f73e0f8 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodInteractor.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodInteractor.swift
@@ -46,13 +46,7 @@ struct ListAccessMethodInteractor: ListAccessMethodInteractorProtocol {
extension PersistentAccessMethod {
func toListItem() -> ListAccessMethodItem {
let sanitizedName = name.trimmingCharacters(in: .whitespaces)
- // the keys look like "ACCESS_METHOD_NAME:Mullvad bridges"
- let localizedName = Bundle.main.localizedString(
- forKey: "ACCESS_METHOD_NAME:\(sanitizedName)",
- value: sanitizedName,
- table: "APIAccess"
- )
- let itemName = localizedName.isEmpty ? kind.localizedDescription : localizedName
+ let itemName = sanitizedName.isEmpty ? kind.localizedDescription : sanitizedName
return ListAccessMethodItem(
id: id,
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodValidationError.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodValidationError.swift
index fa4c9f8513..503a6b5de8 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodValidationError.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodValidationError.swift
@@ -70,7 +70,7 @@ struct AccessMethodFieldValidationError: LocalizedError, Equatable {
var errorDescription: String? {
switch kind {
case .emptyValue:
- NSLocalizedString("\(field) cannot be empty.", comment: "")
+ String(format: NSLocalizedString("%@ cannot be empty.", comment: ""), field.rawValue)
case .invalidIPAddress:
NSLocalizedString("Please enter a valid IPv4 or IPv6 address.", comment: "")
case .invalidPort:
diff --git a/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift b/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
index 792a013ade..953d9153ae 100644
--- a/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
+++ b/ios/MullvadVPN/Notifications/Notification Providers/TunnelStatusNotificationProvider.swift
@@ -232,33 +232,40 @@ final class TunnelStatusNotificationProvider: NotificationProvider, InAppNotific
}
private func localizedReasonForBlockedStateError(_ error: BlockedStateReason) -> String {
- let errorStringKey: String
switch error {
case .outdatedSchema:
- errorStringKey = "ERROR_OUTDATED_SCHEMA"
+ NSLocalizedString(
+ "Unable to start tunnel connection after update. Please disconnect and reconnect.",
+ comment: ""
+ )
case .noRelaysSatisfyingFilterConstraints:
- errorStringKey = "ERROR_NO_RELAYS_SATISFYING_FILTER_CONSTRAINTS"
+ NSLocalizedString("No servers match your location filter. Try changing filter settings.", comment: "")
case .multihopEntryEqualsExit:
- errorStringKey = "ERROR_MULTIHOP_ENTRY_EQUALS_EXIT"
+ NSLocalizedString(
+ "The entry and exit servers cannot be the same. Try changing one to a new server or location.",
+ comment: ""
+ )
case .noRelaysSatisfyingDaitaConstraints:
- errorStringKey = "ERROR_NO_RELAYS_SATISFYING_DAITA_CONSTRAINTS"
+ NSLocalizedString(
+ "No DAITA compatible servers match your location settings. Try changing location.",
+ comment: ""
+ )
case .noRelaysSatisfyingConstraints:
- errorStringKey = "ERROR_NO_RELAYS_SATISFYING_CONSTRAINTS"
+ NSLocalizedString("No servers match your settings, try changing server or other settings.", comment: "")
case .noRelaysSatisfyingPortConstraints:
- errorStringKey = "ERROR_NO_RELAYS_SATISFYING_PORT_CONSTRAINTS"
+ NSLocalizedString(
+ "The selected WireGuard port is not supported, please change it under **VPN settings**.",
+ comment: ""
+ )
case .invalidAccount:
- errorStringKey = "ERROR_INVALID_ACCOUNT"
+ NSLocalizedString(
+ "You are logged in with an invalid account number. Please log out and try another one.",
+ comment: ""
+ )
case .deviceLoggedOut:
- errorStringKey = "ERROR_DEVICE_LOGGED_OUT"
+ NSLocalizedString("Unable to authenticate account. Please log out and log back in.", comment: "")
default:
- errorStringKey = "ERROR_DEFAULT"
+ NSLocalizedString("Unable to start tunnel connection. Please send a problem report.", comment: "")
}
-
- let errorString = NSLocalizedString(
- errorStringKey,
- comment: ""
- )
-
- return errorString
}
}
diff --git a/ios/MullvadVPN/Supporting Files/da.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/da.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..a7da519ff0
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/da.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "App'en skal bruge dette for at oprette forbindelse og teste en ny metode.";
+
diff --git a/ios/MullvadVPN/Supporting Files/de.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/de.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..0c7aab5aed
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/de.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "Die App benötigt dies, um sich zu verbinden und eine neue Methode zu testen.";
+
diff --git a/ios/MullvadVPN/Supporting Files/es.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/es.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..710e050863
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/es.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "La aplicación necesita esto para conectar y probar un nuevo método.";
+
diff --git a/ios/MullvadVPN/Supporting Files/fi.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/fi.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..516bc39d0a
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/fi.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "Sovellus tarvitsee tämän yhdistääkseen ja testatakseen uuden menetelmän.";
+
diff --git a/ios/MullvadVPN/Supporting Files/fr.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/fr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..79f81b8f70
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/fr.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "L'application a besoin de cela pour se connecter et tester une nouvelle méthode.";
+
diff --git a/ios/MullvadVPN/Supporting Files/it.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/it.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..96a02d4694
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/it.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "L'applicazione ha bisogno di questo per connettersi e testare un nuovo metodo.";
+
diff --git a/ios/MullvadVPN/Supporting Files/ja.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/ja.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..975fd9f4c1
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/ja.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "アプリは新しいメソッドを接続してテストするためにこれを必要とします。";
+
diff --git a/ios/MullvadVPN/Supporting Files/ko.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/ko.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..e560c395d1
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/ko.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "The app needs this to connect and test a new method.";
+
diff --git a/ios/MullvadVPN/Supporting Files/my.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/my.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..e560c395d1
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/my.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "The app needs this to connect and test a new method.";
+
diff --git a/ios/MullvadVPN/Supporting Files/nb.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/nb.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..ab4e4f38be
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/nb.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "Appen trenger dette for å koble seg til og teste en ny metode.";
+
diff --git a/ios/MullvadVPN/Supporting Files/nl.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/nl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..209706b2b7
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/nl.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "De app heeft dit nodig om een nieuwe methode te verbinden en te testen.";
+
diff --git a/ios/MullvadVPN/Supporting Files/pl.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/pl.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..dc9e216ab7
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/pl.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "Aplikacja potrzebuje tego aby połączyć się i przetestować nową metodę.";
+
diff --git a/ios/MullvadVPN/Supporting Files/pt.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/pt.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..f08163a3de
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/pt.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "O aplicativo precisa disso para conectar e testar um novo método.";
+
diff --git a/ios/MullvadVPN/Supporting Files/ru.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/ru.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..cc51a81815
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/ru.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "Приложению нужно это соединиться и протестировать новый метод.";
+
diff --git a/ios/MullvadVPN/Supporting Files/sv.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/sv.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..3c4e34e37b
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/sv.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "Appen behöver detta för att ansluta och testa en ny metod.";
+
diff --git a/ios/MullvadVPN/Supporting Files/th.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/th.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..e560c395d1
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/th.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "The app needs this to connect and test a new method.";
+
diff --git a/ios/MullvadVPN/Supporting Files/tr.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/tr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..e560c395d1
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/tr.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "The app needs this to connect and test a new method.";
+
diff --git a/ios/MullvadVPN/Supporting Files/zh-Hans.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/zh-Hans.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..a50329137c
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/zh-Hans.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "此应用需要连接并测试新的方法。";
+
diff --git a/ios/MullvadVPN/Supporting Files/zh-Hant.lproj/InfoPlist.strings b/ios/MullvadVPN/Supporting Files/zh-Hant.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..e560c395d1
--- /dev/null
+++ b/ios/MullvadVPN/Supporting Files/zh-Hant.lproj/InfoPlist.strings
@@ -0,0 +1,9 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Mullvad VPN";
+
+/* Bundle name */
+"CFBundleName" = "MullvadVPN";
+
+/* Privacy - Local Network Usage Description */
+"NSLocalNetworkUsageDescription" = "The app needs this to connect and test a new method.";
+
diff --git a/ios/MullvadVPN/View controllers/Account/PaymentAlertPresenter.swift b/ios/MullvadVPN/View controllers/Account/PaymentAlertPresenter.swift
index 1a9d297478..82bd770a61 100644
--- a/ios/MullvadVPN/View controllers/Account/PaymentAlertPresenter.swift
+++ b/ios/MullvadVPN/View controllers/Account/PaymentAlertPresenter.swift
@@ -20,7 +20,7 @@ struct PaymentAlertPresenter {
message: NSLocalizedString("Your purchase was successfully refunded.", comment: ""),
buttons: [
AlertAction(
- title: okButtonTextForKey("PAYMENT_REFUND_ALERT_OK_ACTION"),
+ title: NSLocalizedString("Got it!", comment: ""),
style: .default,
handler: {
completion?()
@@ -44,7 +44,7 @@ struct PaymentAlertPresenter {
message: error.displayErrorDescription,
buttons: [
AlertAction(
- title: okButtonTextForKey("PAYMENT_ERROR_ALERT_OK_ACTION"),
+ title: NSLocalizedString("Got it!", comment: ""),
style: .default,
handler: {
completion?()
@@ -68,7 +68,7 @@ struct PaymentAlertPresenter {
message: "\(error)",
buttons: [
AlertAction(
- title: okButtonTextForKey("PAYMENT_ERROR_ALERT_OK_ACTION"),
+ title: NSLocalizedString("Got it!", comment: ""),
style: .default,
handler: {
completion?()
@@ -97,7 +97,7 @@ struct PaymentAlertPresenter {
message: response.alertMessage(context: context),
buttons: [
AlertAction(
- title: okButtonTextForKey("PAYMENT_RESPONSE_ALERT_OK_ACTION"),
+ title: NSLocalizedString("Got it!", comment: ""),
style: .default,
handler: {
completion?()
@@ -109,8 +109,4 @@ struct PaymentAlertPresenter {
let presenter = AlertPresenter(context: alertContext)
presenter.showAlert(presentation: presentation, animated: true)
}
-
- private func okButtonTextForKey(_ key: String) -> String {
- NSLocalizedString("Got it!", comment: "")
- }
}
diff --git a/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementContentView.swift b/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementContentView.swift
index 7e98cd8f9e..7c28a2a936 100644
--- a/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementContentView.swift
+++ b/ios/MullvadVPN/View controllers/DeviceList/DeviceManagementContentView.swift
@@ -62,12 +62,7 @@ class DeviceManagementContentView: UIView {
let button = AppButton(style: .success)
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitle(
- NSLocalizedString(
- "CONTINUE_BUTTON",
- tableName: "DeviceManagement",
- value: "Continue with login",
- comment: ""
- ),
+ NSLocalizedString("Continue with login", comment: ""),
for: .normal
)
button.isEnabled = false
@@ -79,12 +74,7 @@ class DeviceManagementContentView: UIView {
let button = AppButton(style: .default)
button.translatesAutoresizingMaskIntoConstraints = false
button.setTitle(
- NSLocalizedString(
- "CANCEL_BUTTON",
- tableName: "DeviceManagement",
- value: "Cancel",
- comment: ""
- ),
+ NSLocalizedString("Cancel", comment: ""),
for: .normal
)
return button
@@ -282,40 +272,20 @@ class DeviceManagementContentView: UIView {
private var titleText: String {
if canContinue {
- return NSLocalizedString(
- "CONTINUE_LOGIN_TITLE",
- tableName: "DeviceManagement",
- value: "Super!",
- comment: ""
- )
+ return NSLocalizedString("Super!", comment: "")
} else {
- return NSLocalizedString(
- "LOGOUT_DEVICES_TITLE",
- tableName: "DeviceManagement",
- value: "Too many devices",
- comment: ""
- )
+ return NSLocalizedString("Too many devices", comment: "")
}
}
private var messageText: String {
if canContinue {
- return NSLocalizedString(
- "CONTINUE_LOGIN_MESSAGE",
- tableName: "DeviceManagement",
- value: "You can now continue logging in on this device.",
- comment: ""
- )
+ return NSLocalizedString("You can now continue logging in on this device.", comment: "")
} else {
- return NSLocalizedString(
- "LOGOUT_DEVICES_MESSAGE",
- tableName: "DeviceManagement",
- value: """
- Please log out of at least one by removing it from the list below. You can find \
- the corresponding device name under the device’s Account settings.
- """,
- comment: ""
- )
+ return NSLocalizedString("""
+ Please log out of at least one by removing it from the list below. You can find \
+ the corresponding device name under the device’s Account settings.
+ """, comment: "")
}
}
}
diff --git a/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift b/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift
index 0e3fcea273..eee51fe8fd 100644
--- a/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift
+++ b/ios/MullvadVPN/View controllers/DeviceList/DeviceRowView.swift
@@ -46,12 +46,7 @@ class DeviceRowView: UIView {
let button = IncreasedHitButton(type: .custom)
button.translatesAutoresizingMaskIntoConstraints = false
button.setImage(image, for: .normal)
- button.accessibilityLabel = NSLocalizedString(
- "REMOVE_DEVICE_ACCESSIBILITY_LABEL",
- tableName: "DeviceManagement",
- value: "Remove device",
- comment: ""
- )
+ button.accessibilityLabel = NSLocalizedString("Remove device", comment: "")
return button
}()
@@ -83,12 +78,7 @@ class DeviceRowView: UIView {
textLabel.text = viewModel.name
creationDateLabel.text = .init(
format:
- NSLocalizedString(
- "CREATED_DEVICE_LABEL",
- tableName: "DeviceManagement",
- value: "Created: %@",
- comment: ""
- ),
+ NSLocalizedString("Created: %@", comment: ""),
viewModel.creationDate
)
diff --git a/ios/PacketTunnel/de.lproj/InfoPlist.strings b/ios/PacketTunnel/de.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..ca1ab97074
--- /dev/null
+++ b/ios/PacketTunnel/de.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Packettunnel";
+
+/* Bundle name */
+"CFBundleName" = "Packettunnel";
+
diff --git a/ios/PacketTunnel/fr.lproj/InfoPlist.strings b/ios/PacketTunnel/fr.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..77f6c9f1b4
--- /dev/null
+++ b/ios/PacketTunnel/fr.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Tunnel de paquets";
+
+/* Bundle name */
+"CFBundleName" = "Tunnel de paquets";
+
diff --git a/ios/PacketTunnel/sv.lproj/InfoPlist.strings b/ios/PacketTunnel/sv.lproj/InfoPlist.strings
new file mode 100644
index 0000000000..ce812eab88
--- /dev/null
+++ b/ios/PacketTunnel/sv.lproj/InfoPlist.strings
@@ -0,0 +1,6 @@
+/* Bundle display name */
+"CFBundleDisplayName" = "Pakettunnel";
+
+/* Bundle name */
+"CFBundleName" = "Pakettunnel";
+
diff --git a/ios/translation/crowdin.yml b/ios/translation/crowdin.yml
index fdf39f6d77..6260945ef9 100644
--- a/ios/translation/crowdin.yml
+++ b/ios/translation/crowdin.yml
@@ -1,20 +1,21 @@
+---
# Usage:
# crowdin upload sources
# crowdin download
+# ===============================================
+# 🚨 TODO: Change project_id from sandbox to "production" 🚨
+# Only after all translations are complete!
+# ===============================================
+"project_id": "816306"
+"base_path": "./locales"
+"base_url": "https://api.crowdin.com"
+"preserve_hierarchy": true
-'project_id': '350815'
-'api_token_env': 'CROWDIN_API_KEY'
-'base_path': './locales'
-'base_url': 'https://api.crowdin.com'
-'preserve_hierarchy': true
-
-files: [
- {
- 'source': '/*.xliff',
- 'translation': '/%osx_locale%.xliff',
- 'translation_replace': {
- 'zh-Hans': 'zh-CN',
- 'zh-Hant': 'zh-TW',
+files:
+ [
+ {
+ "source": "/en.xliff",
+ "translation": "/%osx_locale%.xliff",
+ "export_options": {"format": "xliff"},
},
- },
-]
+ ]
diff --git a/ios/translation/locales/de.xliff b/ios/translation/locales/de.xliff
new file mode 100644
index 0000000000..545509e3af
--- /dev/null
+++ b/ios/translation/locales/de.xliff
@@ -0,0 +1,1870 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+ <file original="Assets/Localizable.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="%@" xml:space="preserve">
+ <source>%@</source>
+ <target state-qualifier="leveraged-mt">%@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ cannot be empty." xml:space="preserve">
+ <source>%@ cannot be empty.</source>
+ <target state-qualifier="leveraged-mt">%@ darf nicht leer sein.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ have been added to your account" xml:space="preserve">
+ <source>%@ have been added to your account</source>
+ <target state-qualifier="leveraged-mt">%@ wurde Ihrem Konto hinzugefügt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ left on this account" xml:space="preserve">
+ <source>%@ left on this account</source>
+ <target state-qualifier="leveraged-mt">%@ auf diesem Konto übrig</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ were added to your account." xml:space="preserve">
+ <source>%@ were added to your account.</source>
+ <target state-qualifier="leveraged-mt">%@ wurden deinem Konto hinzugefügt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%d more..." xml:space="preserve">
+ <source>%d more...</source>
+ <target state-qualifier="leveraged-mt">%d mehr...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**&#10;&#10;DAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.&#10;&#10;By using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted)." xml:space="preserve">
+ <source>**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**
+
+DAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.
+
+By using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted).</source>
+ <target state-qualifier="leveraged-mt">**Achtung: Dies erhöht den Netzwerkverkehr und wirkt sich auch negativ auf Geschwindigkeit, Latenz und Akkuverbrauch aus. Verwende mit Vorsicht auf begrenzte Tarife. *
+
+DAITA (Verteidigung gegen AI-geführte Verkehrsanalyse) versteckt Muster in deinem verschlüsselten VPN-Verkehr.
+
+Durch die Verwendung einer ausgefeilten KI ist es möglich, den Datenverkehr von Datenpaketen zu analysieren, die auf Ihrem Gerät ein- und auslaufen (selbst wenn der Datenverkehr verschlüsselt ist).</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="**Tap here** to see what’s new." xml:space="preserve">
+ <source>**Tap here** to see what’s new.</source>
+ <target state-qualifier="leveraged-mt">**Tippe hier** um zu sehen, was neu ist.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="A custom list with this name exists, please choose a unique name." xml:space="preserve">
+ <source>A custom list with this name exists, please choose a unique name.</source>
+ <target state-qualifier="leveraged-mt">Eine benutzerdefinierte Liste mit diesem Namen existiert bereits, bitte wählen Sie einen eindeutigen Namen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API access" xml:space="preserve">
+ <source>API access</source>
+ <target state-qualifier="leveraged-mt">API-Zugriff</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API could not be reached, save anyway?" xml:space="preserve">
+ <source>API could not be reached, save anyway?</source>
+ <target state-qualifier="leveraged-mt">API konnte nicht erreicht werden, trotzdem speichern?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API reachable" xml:space="preserve">
+ <source>API reachable</source>
+ <target state-qualifier="leveraged-mt">API erreichbar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API unreachable" xml:space="preserve">
+ <source>API unreachable</source>
+ <target state-qualifier="leveraged-mt">API nicht erreichbar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About API access…" xml:space="preserve">
+ <source>About API access…</source>
+ <target state-qualifier="leveraged-mt">Über API-Zugriff…</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Direct method..." xml:space="preserve">
+ <source>About Direct method...</source>
+ <target state-qualifier="leveraged-mt">Über Direkte Methode...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Encrypted DNS proxy method..." xml:space="preserve">
+ <source>About Encrypted DNS proxy method...</source>
+ <target state-qualifier="leveraged-mt">Über Verschlüsselte DNS-Proxy-Methode...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Mullvad bridges method..." xml:space="preserve">
+ <source>About Mullvad bridges method...</source>
+ <target state-qualifier="leveraged-mt">Über Mullvad Bridges Methode...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Server IP override..." xml:space="preserve">
+ <source>About Server IP override...</source>
+ <target state-qualifier="leveraged-mt">Über Server IP überschreiben...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account" xml:space="preserve">
+ <source>Account</source>
+ <target state-qualifier="leveraged-mt">Konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account created" xml:space="preserve">
+ <source>Account created</source>
+ <target state-qualifier="leveraged-mt">Konto erstellt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account credit expires soon" xml:space="preserve">
+ <source>Account credit expires soon</source>
+ <target state-qualifier="leveraged-mt">Kontoguthaben läuft bald ab</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account credit has expired" xml:space="preserve">
+ <source>Account credit has expired</source>
+ <target state-qualifier="leveraged-mt">Kontoguthaben ist abgelaufen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account deletion" xml:space="preserve">
+ <source>Account deletion</source>
+ <target state-qualifier="leveraged-mt">Konto löschen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account number" xml:space="preserve">
+ <source>Account number</source>
+ <target state-qualifier="leveraged-mt">Kundennummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add" xml:space="preserve">
+ <source>Add</source>
+ <target state-qualifier="leveraged-mt">Neu</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add 30 days" xml:space="preserve">
+ <source>Add 30 days</source>
+ <target state-qualifier="leveraged-mt">30 Tage hinzufügen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add 90 days" xml:space="preserve">
+ <source>Add 90 days</source>
+ <target state-qualifier="leveraged-mt">90 Tage hinzufügen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add Time" xml:space="preserve">
+ <source>Add Time</source>
+ <target state-qualifier="leveraged-mt">Neue Zeit</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add a server" xml:space="preserve">
+ <source>Add a server</source>
+ <target state-qualifier="leveraged-mt">Server hinzufügen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add access method" xml:space="preserve">
+ <source>Add access method</source>
+ <target state-qualifier="leveraged-mt">Zugriffsmethode hinzufügen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add locations" xml:space="preserve">
+ <source>Add locations</source>
+ <target state-qualifier="leveraged-mt">Orte hinzufügen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add new list" xml:space="preserve">
+ <source>Add new list</source>
+ <target state-qualifier="leveraged-mt">Neue Liste hinzufügen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add time" xml:space="preserve">
+ <source>Add time</source>
+ <target state-qualifier="leveraged-mt">Neue Zeit</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Ads" xml:space="preserve">
+ <source>Ads</source>
+ <target state-qualifier="leveraged-mt">Anzeigen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Adult content" xml:space="preserve">
+ <source>Adult content</source>
+ <target state-qualifier="leveraged-mt">Erwachseneninhalt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All" xml:space="preserve">
+ <source>All</source>
+ <target state-qualifier="leveraged-mt">Alle</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All Providers" xml:space="preserve">
+ <source>All Providers</source>
+ <target state-qualifier="leveraged-mt">Alle Anbieter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All locations" xml:space="preserve">
+ <source>All locations</source>
+ <target state-qualifier="leveraged-mt">Alle Standorte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Any" xml:space="preserve">
+ <source>Any</source>
+ <target state-qualifier="leveraged-mt">Alle</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="App logs" xml:space="preserve">
+ <source>App logs</source>
+ <target state-qualifier="leveraged-mt">App-Logs</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="AppStore receipt is not found on disk." xml:space="preserve">
+ <source>AppStore receipt is not found on disk.</source>
+ <target state-qualifier="leveraged-mt">AppStore Quittung wurde nicht gefunden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="At least one method needs to be enabled." xml:space="preserve">
+ <source>At least one method needs to be enabled.</source>
+ <target state-qualifier="leveraged-mt">Mindestens eine Methode muss aktiviert sein.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Authentication" xml:space="preserve">
+ <source>Authentication</source>
+ <target state-qualifier="leveraged-mt">Authentifizierung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Automatic" xml:space="preserve">
+ <source>Automatic</source>
+ <target state-qualifier="leveraged-mt">Automatisch</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="BLOCKING INTERNET" xml:space="preserve">
+ <source>BLOCKING INTERNET</source>
+ <target state-qualifier="leveraged-mt">BLOCKING INTERNET</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Back to editing" xml:space="preserve">
+ <source>Back to editing</source>
+ <target state-qualifier="leveraged-mt">Zurück zur Bearbeitung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Blocked connection" xml:space="preserve">
+ <source>Blocked connection</source>
+ <target state-qualifier="leveraged-mt">Verbindung blockiert</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Blocking internet: Your time on this account has expired. To continue using the internet, please add more time or disconnect the VPN." xml:space="preserve">
+ <source>Blocking internet: Your time on this account has expired. To continue using the internet, please add more time or disconnect the VPN.</source>
+ <target state-qualifier="leveraged-mt">Internetblockierung: Deine Zeit auf diesem Konto ist abgelaufen. Um das Internet weiter zu nutzen, füge bitte mehr Zeit hinzu oder trenne das VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="By enabling &quot;Direct only&quot; you will have to manually select a server that is DAITA-enabled. Multihop won't automatically be used to enable DAITA with any server." xml:space="preserve">
+ <source>By enabling "Direct only" you will have to manually select a server that is DAITA-enabled. Multihop won't automatically be used to enable DAITA with any server.</source>
+ <target state-qualifier="leveraged-mt">Wenn Sie "Nur Direkt" aktivieren, müssen Sie manuell einen Server auswählen, der DAITA-aktiviert ist. Multihop wird nicht automatisch verwendet, um DAITA mit irgendeinem Server zu aktivieren.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="By enabling &quot;Direct only&quot; you will have to manually select a server that is DAITA-enabled. This can cause you to end up in a blocked state until you have selected a compatible server in the &quot;Select location&quot; view." xml:space="preserve">
+ <source>By enabling "Direct only" you will have to manually select a server that is DAITA-enabled. This can cause you to end up in a blocked state until you have selected a compatible server in the "Select location" view.</source>
+ <target state-qualifier="leveraged-mt">Wenn Sie "Nur Direkt" aktivieren, müssen Sie manuell einen Server auswählen, der DAITA-aktiviert ist. Dies kann dazu führen, dass Sie in einem blockierten Zustand enden, bis Sie einen kompatiblen Server in der Ansicht "Standort auswählen" ausgewählt haben.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cancel" xml:space="preserve">
+ <source>Cancel</source>
+ <target state-qualifier="leveraged-mt">Abbrechen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot complete the purchase" xml:space="preserve">
+ <source>Cannot complete the purchase</source>
+ <target state-qualifier="leveraged-mt">Kauf kann nicht abgeschlossen werden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot read the AppStore receipt from disk" xml:space="preserve">
+ <source>Cannot read the AppStore receipt from disk</source>
+ <target state-qualifier="leveraged-mt">Kann die AppStore-Quittung nicht lesen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot refresh the AppStore receipt: %@" xml:space="preserve">
+ <source>Cannot refresh the AppStore receipt: %@</source>
+ <target state-qualifier="leveraged-mt">Kann den AppStore Beleg nicht aktualisieren: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot restore purchases" xml:space="preserve">
+ <source>Cannot restore purchases</source>
+ <target state-qualifier="leveraged-mt">Käufe können nicht wiederhergestellt werden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Checking account number" xml:space="preserve">
+ <source>Checking account number</source>
+ <target state-qualifier="leveraged-mt">Überprüfe Kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cipher" xml:space="preserve">
+ <source>Cipher</source>
+ <target state-qualifier="leveraged-mt">Cipher</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear" xml:space="preserve">
+ <source>Clear</source>
+ <target state-qualifier="leveraged-mt">Leeren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear all overrides" xml:space="preserve">
+ <source>Clear all overrides</source>
+ <target state-qualifier="leveraged-mt">Alle Überschreibungen löschen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear all overrides?" xml:space="preserve">
+ <source>Clear all overrides?</source>
+ <target state-qualifier="leveraged-mt">Alle Überschreibungen löschen?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clearing the imported overrides changes the server IPs, in the Select location view, back to default." xml:space="preserve">
+ <source>Clearing the imported overrides changes the server IPs, in the Select location view, back to default.</source>
+ <target state-qualifier="leveraged-mt">Das Löschen der importierten Überschreibungen ändert die Server-IPs in der Standortansicht auswählen wieder auf die Standardeinstellung.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Client is not allowed to issue the request." xml:space="preserve">
+ <source>Client is not allowed to issue the request.</source>
+ <target state-qualifier="leveraged-mt">Der Kunde darf die Anfrage nicht ausstellen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Collapses this location." xml:space="preserve">
+ <source>Collapses this location.</source>
+ <target state-qualifier="leveraged-mt">Schließt diesen Ort aus.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Congrats!" xml:space="preserve">
+ <source>Congrats!</source>
+ <target state-qualifier="leveraged-mt">Glückwunsch!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Connected" xml:space="preserve">
+ <source>Connected</source>
+ <target state-qualifier="leveraged-mt">Verbunden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Copy to pasteboard" xml:space="preserve">
+ <source>Copy to pasteboard</source>
+ <target state-qualifier="leveraged-mt">Kopiere in die Einlage</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Correct account number" xml:space="preserve">
+ <source>Correct account number</source>
+ <target state-qualifier="leveraged-mt">Richtige Kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Create" xml:space="preserve">
+ <source>Create</source>
+ <target state-qualifier="leveraged-mt">Anlegen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Create account" xml:space="preserve">
+ <source>Create account</source>
+ <target state-qualifier="leveraged-mt">Konto erstellen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating new account" xml:space="preserve">
+ <source>Creating new account</source>
+ <target state-qualifier="leveraged-mt">Neues Konto erstellen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating quantum secure connection" xml:space="preserve">
+ <source>Creating quantum secure connection</source>
+ <target state-qualifier="leveraged-mt">Quantensichere Verbindung erstellen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating secure connection" xml:space="preserve">
+ <source>Creating secure connection</source>
+ <target state-qualifier="leveraged-mt">Sichere Verbindung erstellen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom" xml:space="preserve">
+ <source>Custom</source>
+ <target state-qualifier="leveraged-mt">Eigene</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom DNS" xml:space="preserve">
+ <source>Custom DNS</source>
+ <target state-qualifier="leveraged-mt">Eigener DNS</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom lists" xml:space="preserve">
+ <source>Custom lists</source>
+ <target state-qualifier="leveraged-mt">Eigene Listen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA" xml:space="preserve">
+ <source>DAITA</source>
+ <target state-qualifier="leveraged-mt">DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.&#10;It does this by carefully adding network noise and making all network packets the same size.&#10;Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.&#10;Attention: Be cautious if you have a limited data plan as this feature will increase your network traffic." xml:space="preserve">
+ <source>DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.
+It does this by carefully adding network noise and making all network packets the same size.
+Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.
+Attention: Be cautious if you have a limited data plan as this feature will increase your network traffic.</source>
+ <target state-qualifier="leveraged-mt">DAITA (Verteidigung gegen AI-geführte Verkehrsanalyse) versteckt Muster in Ihrem verschlüsselten VPN-Verkehr. Wenn jemand Ihre Verbindung überwacht, erschwert dies es ihnen, deutlich zu erkennen, welche Websites Sie besuchen.
+Dies geschieht durch das sorgfältige Hinzufügen von Netzwerkrauschen und die gleiche Größe aller Netzwerkpakete.
+Nicht alle unsere Server sind DAITA-fähig. Daher verwenden wir Multihop automatisch, um DAITA mit jedem Server zu aktivieren.
+Achtung: Seien Sie vorsichtig, wenn Sie einen begrenzten Datenplan haben, da diese Funktion Ihren Netzwerkverkehr erhöhen wird.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA isn't available at the currently selected location. After enabling, please go to the &quot;Select location&quot; view and select a location that supports DAITA." xml:space="preserve">
+ <source>DAITA isn't available at the currently selected location. After enabling, please go to the "Select location" view and select a location that supports DAITA.</source>
+ <target state-qualifier="leveraged-mt">DAITA ist an der aktuell ausgewählten Stelle nicht verfügbar. Nach der Aktivierung gehen Sie bitte zur Ansicht "Standort auswählen" und wählen einen Ort, der DAITA unterstützt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA isn't available on the current entry server. After enabling, please go to the &quot;Select location&quot; view and select an entry location that supports DAITA." xml:space="preserve">
+ <source>DAITA isn't available on the current entry server. After enabling, please go to the "Select location" view and select an entry location that supports DAITA.</source>
+ <target state-qualifier="leveraged-mt">DAITA ist auf dem aktuellen Eintragsserver nicht verfügbar. Nach der Aktivierung gehen Sie bitte in die Ansicht "Standort auswählen" und wählen einen Eintragsort aus, der DAITA unterstützt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA-enabled" xml:space="preserve">
+ <source>DAITA-enabled</source>
+ <target state-qualifier="leveraged-mt">DAITA-aktiviert</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA: Multihop" xml:space="preserve">
+ <source>DAITA: Multihop</source>
+ <target state-qualifier="leveraged-mt">DAITA: Multihop</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DNS content blockers" xml:space="preserve">
+ <source>DNS content blockers</source>
+ <target state-qualifier="leveraged-mt">DNS-Inhaltsblocker</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DNS settings" xml:space="preserve">
+ <source>DNS settings</source>
+ <target state-qualifier="leveraged-mt">DNS-Einstellungen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete" xml:space="preserve">
+ <source>Delete</source>
+ <target state-qualifier="leveraged-mt">Löschen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete Account" xml:space="preserve">
+ <source>Delete Account</source>
+ <target state-qualifier="leveraged-mt">Konto löschen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete account" xml:space="preserve">
+ <source>Delete account</source>
+ <target state-qualifier="leveraged-mt">Konto löschen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete list" xml:space="preserve">
+ <source>Delete list</source>
+ <target state-qualifier="leveraged-mt">Liste löschen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete method" xml:space="preserve">
+ <source>Delete method</source>
+ <target state-qualifier="leveraged-mt">Methode löschen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Deleting account..." xml:space="preserve">
+ <source>Deleting account...</source>
+ <target state-qualifier="leveraged-mt">Konto wird gelöscht...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device is inactive" xml:space="preserve">
+ <source>Device is inactive</source>
+ <target state-qualifier="leveraged-mt">Gerät ist inaktiv</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device name" xml:space="preserve">
+ <source>Device name</source>
+ <target state-qualifier="leveraged-mt">Gerätename</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device name: %@" xml:space="preserve">
+ <source>Device name: %@</source>
+ <target state-qualifier="leveraged-mt">Gerätename: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Direct" xml:space="preserve">
+ <source>Direct</source>
+ <target state-qualifier="leveraged-mt">Direkt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Direct only" xml:space="preserve">
+ <source>Direct only</source>
+ <target state-qualifier="leveraged-mt">Nur direkt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disable all content blockers to activate this setting." xml:space="preserve">
+ <source>Disable all content blockers to activate this setting.</source>
+ <target state-qualifier="leveraged-mt">Deaktivieren Sie alle Inhaltsblocker, um diese Einstellung zu aktivieren.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disabled" xml:space="preserve">
+ <source>Disabled</source>
+ <target state-qualifier="leveraged-mt">Deaktiviert</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disabling" xml:space="preserve">
+ <source>Disabling</source>
+ <target state-qualifier="leveraged-mt">Deaktivieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Discard changes" xml:space="preserve">
+ <source>Discard changes</source>
+ <target state-qualifier="leveraged-mt">Änderungen verwerfen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disconnect" xml:space="preserve">
+ <source>Disconnect</source>
+ <target state-qualifier="leveraged-mt">Verbindung trennen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disconnecting" xml:space="preserve">
+ <source>Disconnecting</source>
+ <target state-qualifier="leveraged-mt">Trennen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Done" xml:space="preserve">
+ <source>Done</source>
+ <target state-qualifier="leveraged-mt">Fertig</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Don’t have an account number?" xml:space="preserve">
+ <source>Don’t have an account number?</source>
+ <target state-qualifier="leveraged-mt">Haben Sie noch keine Kontonummer?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit custom list" xml:space="preserve">
+ <source>Edit custom list</source>
+ <target state-qualifier="leveraged-mt">Eigene Liste bearbeiten</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit lists" xml:space="preserve">
+ <source>Edit lists</source>
+ <target state-qualifier="leveraged-mt">Listen bearbeiten</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit locations" xml:space="preserve">
+ <source>Edit locations</source>
+ <target state-qualifier="leveraged-mt">Orte bearbeiten</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit message" xml:space="preserve">
+ <source>Edit message</source>
+ <target state-qualifier="leveraged-mt">Nachricht bearbeiten</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable" xml:space="preserve">
+ <source>Enable</source>
+ <target state-qualifier="leveraged-mt">Aktivieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable &quot;%@&quot;" xml:space="preserve">
+ <source>Enable "%@"</source>
+ <target state-qualifier="leveraged-mt">"%@ " aktivieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable method" xml:space="preserve">
+ <source>Enable method</source>
+ <target state-qualifier="leveraged-mt">Methode aktivieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enabling" xml:space="preserve">
+ <source>Enabling</source>
+ <target state-qualifier="leveraged-mt">Aktivieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Encrypted DNS proxy" xml:space="preserve">
+ <source>Encrypted DNS proxy</source>
+ <target state-qualifier="leveraged-mt">Verschlüsselter DNS-Proxy</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter IP" xml:space="preserve">
+ <source>Enter IP</source>
+ <target state-qualifier="leveraged-mt">IP eingeben</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter voucher code" xml:space="preserve">
+ <source>Enter voucher code</source>
+ <target state-qualifier="leveraged-mt">Gutscheincode eingeben</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter your account number" xml:space="preserve">
+ <source>Enter your account number</source>
+ <target state-qualifier="leveraged-mt">Geben Sie Ihre Kontonummer ein</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Entry" xml:space="preserve">
+ <source>Entry</source>
+ <target state-qualifier="leveraged-mt">Eintrag</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Exit" xml:space="preserve">
+ <source>Exit</source>
+ <target state-qualifier="leveraged-mt">Beenden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Expands this location." xml:space="preserve">
+ <source>Expands this location.</source>
+ <target state-qualifier="leveraged-mt">Erweitert diesen Standort.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="FAQs &amp; Guides" xml:space="preserve">
+ <source>FAQs &amp; Guides</source>
+ <target state-qualifier="leveraged-mt">FAQ &amp; Anleitungen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to connect to App store, please try again later." xml:space="preserve">
+ <source>Failed to connect to App store, please try again later.</source>
+ <target state-qualifier="leveraged-mt">Verbindung zum App Store fehlgeschlagen, bitte versuchen Sie es später erneut.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to send" xml:space="preserve">
+ <source>Failed to send</source>
+ <target state-qualifier="leveraged-mt">Senden fehlgeschlagen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to send the receipt to server: %@" xml:space="preserve">
+ <source>Failed to send the receipt to server: %@</source>
+ <target state-qualifier="leveraged-mt">Fehler beim Senden der Quittung an Server: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to start the tunnel." xml:space="preserve">
+ <source>Failed to start the tunnel.</source>
+ <target state-qualifier="leveraged-mt">Tunnel konnte nicht gestartet werden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to start the tunnel: %@." xml:space="preserve">
+ <source>Failed to start the tunnel: %@.</source>
+ <target state-qualifier="leveraged-mt">Fehler beim Starten des Tunnels: %@.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to stop the tunnel." xml:space="preserve">
+ <source>Failed to stop the tunnel.</source>
+ <target state-qualifier="leveraged-mt">Fehler beim Stoppen des Tunnels.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to stop the tunnel: %@." xml:space="preserve">
+ <source>Failed to stop the tunnel: %@.</source>
+ <target state-qualifier="leveraged-mt">Fehler beim Beenden des Tunnels: %@.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to validate account number: %@" xml:space="preserve">
+ <source>Failed to validate account number: %@</source>
+ <target state-qualifier="leveraged-mt">Fehler beim Überprüfen der Kontonummer: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Fetching devices..." xml:space="preserve">
+ <source>Fetching devices...</source>
+ <target state-qualifier="leveraged-mt">Geräte werden abgerufen...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Filter" xml:space="preserve">
+ <source>Filter</source>
+ <target state-qualifier="leveraged-mt">Filtern</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Filtered:" xml:space="preserve">
+ <source>Filtered:</source>
+ <target state-qualifier="leveraged-mt">Gefiltert:</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Gambling" xml:space="preserve">
+ <source>Gambling</source>
+ <target state-qualifier="leveraged-mt">Spielen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Go ahead and start using the app to begin reclaiming your online privacy.&#10;To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools." xml:space="preserve">
+ <source>Go ahead and start using the app to begin reclaiming your online privacy.
+To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools.</source>
+ <target state-qualifier="leveraged-mt">Gehen Sie voran und verwenden Sie die App, um Ihre Privatsphäre wiederherzustellen.
+Um Ihre Reise als privates Ninja fortzusetzen, besuchen Sie unsere Website, um andere datenschutzfreundliche Gewohnheiten und Werkzeuge zu übernehmen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Go to login" xml:space="preserve">
+ <source>Go to login</source>
+ <target state-qualifier="leveraged-mt">Zum Login</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Going to login will unblock the Internet on this device." xml:space="preserve">
+ <source>Going to login will unblock the Internet on this device.</source>
+ <target state-qualifier="leveraged-mt">Wenn Sie sich anmelden, wird das Internet auf diesem Gerät entsperrt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Got it!" xml:space="preserve">
+ <source>Got it!</source>
+ <target state-qualifier="leveraged-mt">Verstanden!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Here’s your account number. Save it!" xml:space="preserve">
+ <source>Here’s your account number. Save it!</source>
+ <target state-qualifier="leveraged-mt">Hier ist deine Kontonummer. Speichere es!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Hide account number" xml:space="preserve">
+ <source>Hide account number</source>
+ <target state-qualifier="leveraged-mt">Kontonummer ausblenden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If an observer monitors these data packets, DAITA makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.&#10;&#10;DAITA does this by carefully adding network noise and making all network packets the same size.&#10;&#10;Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.&#10;" xml:space="preserve">
+ <source>If an observer monitors these data packets, DAITA makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.
+
+DAITA does this by carefully adding network noise and making all network packets the same size.
+
+Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.
+</source>
+ <target state-qualifier="leveraged-mt">Wenn ein Beobachter diese Datenpakete überwacht, DAITA macht es für sie wesentlich schwieriger, herauszufinden, welche Websites Sie besuchen oder mit wem Sie kommunizieren.
+
+DAITA tut dies, indem es Netzwerkrauschen einfügt und alle Netzwerkpakete auf die gleiche Größe bringt.
+
+Nicht alle unsere Server sind DAITA-fähig. Daher verwenden wir Multihop automatisch, um DAITA mit jedem Server zu aktivieren.
+</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If needed we will contact you at %@" xml:space="preserve">
+ <source>If needed we will contact you at %@</source>
+ <target state-qualifier="leveraged-mt">Bei Bedarf werden wir dich unter %@ kontaktieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you are having issues connecting to VPN servers, please contact support." xml:space="preserve">
+ <source>If you are having issues connecting to VPN servers, please contact support.</source>
+ <target state-qualifier="leveraged-mt">Wenn du Probleme beim Verbinden mit VPN-Servern hast, kontaktiere bitte den Support.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.&#10;The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare." xml:space="preserve">
+ <source>If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.
+The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare.</source>
+ <target state-qualifier="leveraged-mt">Wenn du nicht mit unserem VPN verbunden bist, wird der verschlüsselte DNS-Proxy deine eigene nicht-VPN-IP beim Verbinden verwenden.
+Die DoH-Server werden von einem der folgenden Anbieter gehostet: Quad9 oder Cloudflare.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you disconnect now, you won’t be able to secure your connection until the device is online." xml:space="preserve">
+ <source>If you disconnect now, you won’t be able to secure your connection until the device is online.</source>
+ <target state-qualifier="leveraged-mt">Wenn Sie die Verbindung jetzt trennen, werden Sie Ihre Verbindung nicht sichern können, bis das Gerät online ist.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you exit the form and try again later, the information you already entered will still be here." xml:space="preserve">
+ <source>If you exit the form and try again later, the information you already entered will still be here.</source>
+ <target state-qualifier="leveraged-mt">Wenn Sie das Formular verlassen und versuchen Sie es später noch einmal, werden die von Ihnen eingegebenen Informationen immer noch hier sein.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you haven’t received additional VPN time after purchasing" xml:space="preserve">
+ <source>If you haven’t received additional VPN time after purchasing</source>
+ <target state-qualifier="leveraged-mt">Wenn du nach dem Kauf keine zusätzliche VPN-Zeit erhalten hast</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email." xml:space="preserve">
+ <source>If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email.</source>
+ <target state-qualifier="leveraged-mt">Wenn Sie immer noch Probleme haben, können Sie unseren Support direkt unter **%@** per E-Mail senden. Bitte fügen Sie Ihr App-Log an Ihre E-Mail hinzu.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import" xml:space="preserve">
+ <source>Import</source>
+ <target state-qualifier="leveraged-mt">Importieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import %@ was successful, overrides are now active." xml:space="preserve">
+ <source>Import %@ was successful, overrides are now active.</source>
+ <target state-qualifier="leveraged-mt">Import %@ war erfolgreich, Überschreibungen sind jetzt aktiv.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import %@ was unsuccessful, please try again." xml:space="preserve">
+ <source>Import %@ was unsuccessful, please try again.</source>
+ <target state-qualifier="leveraged-mt">Import %@ war nicht erfolgreich, bitte versuchen Sie es erneut.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import file" xml:space="preserve">
+ <source>Import file</source>
+ <target state-qualifier="leveraged-mt">Datei importieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import files or text with the new IP addresses for the servers in the Select location view." xml:space="preserve">
+ <source>Import files or text with the new IP addresses for the servers in the Select location view.</source>
+ <target state-qualifier="leveraged-mt">Importieren Sie Dateien oder Text mit den neuen IP-Adressen für die Server in der Standortansicht auswählen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import successful" xml:space="preserve">
+ <source>Import successful</source>
+ <target state-qualifier="leveraged-mt">Import erfolgreich</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import via text" xml:space="preserve">
+ <source>Import via text</source>
+ <target state-qualifier="leveraged-mt">Über Text importieren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="In use" xml:space="preserve">
+ <source>In use</source>
+ <target state-qualifier="leveraged-mt">In Verwendung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Include all networks" xml:space="preserve">
+ <source>Include all networks</source>
+ <target state-qualifier="leveraged-mt">Alle Netzwerke einbeziehen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Internal error occurred. Settings will be reset to defaults and device logged out." xml:space="preserve">
+ <source>Internal error occurred. Settings will be reset to defaults and device logged out.</source>
+ <target state-qualifier="leveraged-mt">Interner Fehler aufgetreten. Einstellungen werden auf Standardwerte zurückgesetzt und das Gerät ist abgemeldet.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Internal error." xml:space="preserve">
+ <source>Internal error.</source>
+ <target state-qualifier="leveraged-mt">Interner Fehler.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid account" xml:space="preserve">
+ <source>Invalid account</source>
+ <target state-qualifier="leveraged-mt">Ungültiges Konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid device state." xml:space="preserve">
+ <source>Invalid device state.</source>
+ <target state-qualifier="leveraged-mt">Ungültiger Gerätestatus.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid purchase identifier." xml:space="preserve">
+ <source>Invalid purchase identifier.</source>
+ <target state-qualifier="leveraged-mt">Ungültige Einkaufsbezeichnung.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="It looks like you have entered a Mullvad account number instead of a voucher code. Do you want to log in to an existing account?&#10;If so, click log out below to log in with the other account number." xml:space="preserve">
+ <source>It looks like you have entered a Mullvad account number instead of a voucher code. Do you want to log in to an existing account?
+If so, click log out below to log in with the other account number.</source>
+ <target state-qualifier="leveraged-mt">Es sieht so aus, als hätten Sie statt eines Gutscheincodes eine Mullvad-Kontonummer eingegeben. Möchten Sie sich bei einem bestehenden Konto anmelden?
+Wenn ja, klicken Sie unten auf Abmelden, um sich mit der anderen Kontonummer anzumelden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Language" xml:space="preserve">
+ <source>Language</source>
+ <target state-qualifier="leveraged-mt">Sprache</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Last four digits of the account number are incorrect" xml:space="preserve">
+ <source>Last four digits of the account number are incorrect</source>
+ <target state-qualifier="leveraged-mt">Die letzten vier Ziffern der Kontonummer sind falsch</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Last used account" xml:space="preserve">
+ <source>Last used account</source>
+ <target state-qualifier="leveraged-mt">Zuletzt genutztes Konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Learn about privacy" xml:space="preserve">
+ <source>Learn about privacy</source>
+ <target state-qualifier="leveraged-mt">Erfahren Sie mehr über Privatsphäre</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Less than a day" xml:space="preserve">
+ <source>Less than a day</source>
+ <target state-qualifier="leveraged-mt">Weniger als ein Tag</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Local network sharing" xml:space="preserve">
+ <source>Local network sharing</source>
+ <target state-qualifier="leveraged-mt">Gemeinsames Netzwerk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Log in" xml:space="preserve">
+ <source>Log in</source>
+ <target state-qualifier="leveraged-mt">Anmelden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Log out" xml:space="preserve">
+ <source>Log out</source>
+ <target state-qualifier="leveraged-mt">Abmelden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logged in" xml:space="preserve">
+ <source>Logged in</source>
+ <target state-qualifier="leveraged-mt">Angemeldet</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logging in..." xml:space="preserve">
+ <source>Logging in...</source>
+ <target state-qualifier="leveraged-mt">Anmelden...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logging out..." xml:space="preserve">
+ <source>Logging out...</source>
+ <target state-qualifier="leveraged-mt">Abmelden...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Login" xml:space="preserve">
+ <source>Login</source>
+ <target state-qualifier="leveraged-mt">Anmelden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Login failed" xml:space="preserve">
+ <source>Login failed</source>
+ <target state-qualifier="leveraged-mt">Login fehlgeschlagen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Make a purchase with StoreKit2" xml:space="preserve">
+ <source>Make a purchase with StoreKit2</source>
+ <target state-qualifier="leveraged-mt">Kaufen Sie mit StoreKit2</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Malware" xml:space="preserve">
+ <source>Malware</source>
+ <target state-qualifier="leveraged-mt">Malware</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage default and setup custom methods to access the Mullvad API." xml:space="preserve">
+ <source>Manage default and setup custom methods to access the Mullvad API.</source>
+ <target state-qualifier="leveraged-mt">Verwalten Sie die Standardeinstellungen und konfigurieren Sie benutzerdefinierte Methoden, um auf die Mullvad API zuzugreifen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage default and setup custom methods to access the Mullvad API. " xml:space="preserve">
+ <source>Manage default and setup custom methods to access the Mullvad API. </source>
+ <target state-qualifier="leveraged-mt">Verwalten Sie die Standardeinstellungen und konfigurieren Sie benutzerdefinierte Methoden, um auf die Mullvad API zuzugreifen. </target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage devices" xml:space="preserve">
+ <source>Manage devices</source>
+ <target state-qualifier="leveraged-mt">Geräte verwalten</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Method settings" xml:space="preserve">
+ <source>Method settings</source>
+ <target state-qualifier="leveraged-mt">Methodeneinstellungen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Mullvad bridges" xml:space="preserve">
+ <source>Mullvad bridges</source>
+ <target state-qualifier="leveraged-mt">Mullvad Brücken</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop" xml:space="preserve">
+ <source>Multihop</source>
+ <target state-qualifier="leveraged-mt">Mehrfachbogen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop is being used to enable DAITA for your selected location." xml:space="preserve">
+ <source>Multihop is being used to enable DAITA for your selected location.</source>
+ <target state-qualifier="leveraged-mt">Multihop wird verwendet, um DAITA für Ihren ausgewählten Standort zu aktivieren.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.&#10;This results in increased latency but increases anonymity online." xml:space="preserve">
+ <source>Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.
+This results in increased latency but increases anonymity online.</source>
+ <target state-qualifier="leveraged-mt">Multihop leitet Ihren Datenverkehr auf einen WireGuard-Server und einen anderen aus, was es schwieriger macht, ihn zu verfolgen.
+Dies führt zu erhöhter Latenz, erhöht aber die Anonymität online.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop routes your traffic into one WireGuard server and out another, making it harder to trace. This results in increased latency but increases anonymity online." xml:space="preserve">
+ <source>Multihop routes your traffic into one WireGuard server and out another, making it harder to trace. This results in increased latency but increases anonymity online.</source>
+ <target state-qualifier="leveraged-mt">Multihop führt Ihren Traffic auf einen WireGuard-Server und einen anderen aus, wodurch es schwieriger wird, das Aufspüren zu erschweren. Dies führt zu erhöhter Latenz, erhöht aber die Anonymität online.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multiple validation errors occurred." xml:space="preserve">
+ <source>Multiple validation errors occurred.</source>
+ <target state-qualifier="leveraged-mt">Mehrere Validierungsfehler sind aufgetreten.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NETWORK ISSUES" xml:space="preserve">
+ <source>NETWORK ISSUES</source>
+ <target state-qualifier="leveraged-mt">NETZWERK ISSUES</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NEW DEVICE CREATED" xml:space="preserve">
+ <source>NEW DEVICE CREATED</source>
+ <target state-qualifier="leveraged-mt">NEUE GERÄT ERSTELLT</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NEW VERSION INSTALLED" xml:space="preserve">
+ <source>NEW VERSION INSTALLED</source>
+ <target state-qualifier="leveraged-mt">NEUE VERSION INSTALLED</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name" xml:space="preserve">
+ <source>Name</source>
+ <target state-qualifier="leveraged-mt">Name</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name should be no longer than %i characters." xml:space="preserve">
+ <source>Name should be no longer than %i characters.</source>
+ <target state-qualifier="leveraged-mt">Name darf nicht länger als %i Zeichen sein.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Network error: %@" xml:space="preserve">
+ <source>Network error: %@</source>
+ <target state-qualifier="leveraged-mt">Netzwerkfehler: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="New custom list" xml:space="preserve">
+ <source>New custom list</source>
+ <target state-qualifier="leveraged-mt">Neue benutzerdefinierte Liste</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Next" xml:space="preserve">
+ <source>Next</source>
+ <target state-qualifier="leveraged-mt">Nächste</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No DAITA compatible servers match your location settings. Try changing location." xml:space="preserve">
+ <source>No DAITA compatible servers match your location settings. Try changing location.</source>
+ <target state-qualifier="leveraged-mt">Keine DAITA-kompatiblen Server stimmen mit Ihren Standorteinstellungen überein. Versuchen Sie, den Standort zu ändern.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No matching relays found, check your filter settings." xml:space="preserve">
+ <source>No matching relays found, check your filter settings.</source>
+ <target state-qualifier="leveraged-mt">Keine passenden Relais gefunden, überprüfen Sie Ihre Filtereinstellungen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No matching servers" xml:space="preserve">
+ <source>No matching servers</source>
+ <target state-qualifier="leveraged-mt">Keine passenden Server</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No network" xml:space="preserve">
+ <source>No network</source>
+ <target state-qualifier="leveraged-mt">Kein Netzwerk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No overrides imported" xml:space="preserve">
+ <source>No overrides imported</source>
+ <target state-qualifier="leveraged-mt">Keine importierten Überschreibungen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No servers match your location filter. Try changing filter settings." xml:space="preserve">
+ <source>No servers match your location filter. Try changing filter settings.</source>
+ <target state-qualifier="leveraged-mt">Keine Server stimmen mit Ihrem Standortfilter überein. Versuchen Sie, die Filtereinstellungen zu ändern.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No servers match your settings, try changing server or other settings." xml:space="preserve">
+ <source>No servers match your settings, try changing server or other settings.</source>
+ <target state-qualifier="leveraged-mt">Keine Server entsprechen deinen Einstellungen, versuche Server oder andere Einstellungen zu ändern.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="OUT OF TIME" xml:space="preserve">
+ <source>OUT OF TIME</source>
+ <target state-qualifier="leveraged-mt">ZEIT VON ZEIT</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obfuscation" xml:space="preserve">
+ <source>Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Verschleierung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connection would be blocked." xml:space="preserve">
+ <source>Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connection would be blocked.</source>
+ <target state-qualifier="leveraged-mt">Verschleierung versteckt den WireGuard-Verkehr innerhalb eines anderen Protokolls. Es kann verwendet werden, um Zensur und andere Filterarten zu umgehen, wo eine einfache WireGuard-Verbindung blockiert würde.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obscured" xml:space="preserve">
+ <source>Obscured</source>
+ <target state-qualifier="leveraged-mt">Verdeckt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Off" xml:space="preserve">
+ <source>Off</source>
+ <target state-qualifier="leveraged-mt">Aus</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On" xml:space="preserve">
+ <source>On</source>
+ <target state-qualifier="leveraged-mt">An</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On some networks, where various types of censorship are being used, our server IP addresses are sometimes blocked." xml:space="preserve">
+ <source>On some networks, where various types of censorship are being used, our server IP addresses are sometimes blocked.</source>
+ <target state-qualifier="leveraged-mt">In einigen Netzen, in denen verschiedene Arten von Zensur genutzt werden, werden unsere Server-IP-Adressen manchmal blockiert.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On some networks, where various types of censorship are being used, the API servers might not be directly reachable." xml:space="preserve">
+ <source>On some networks, where various types of censorship are being used, the API servers might not be directly reachable.</source>
+ <target state-qualifier="leveraged-mt">In einigen Netzwerken, in denen verschiedene Arten von Zensur verwendet werden, sind die API-Server möglicherweise nicht direkt erreichbar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Open DAITA settings" xml:space="preserve">
+ <source>Open DAITA settings</source>
+ <target state-qualifier="leveraged-mt">DAITA-Einstellungen öffnen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Optional" xml:space="preserve">
+ <source>Optional</source>
+ <target state-qualifier="leveraged-mt">Optional</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Out of time" xml:space="preserve">
+ <source>Out of time</source>
+ <target state-qualifier="leveraged-mt">Nicht mehr Zeit</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Overrides active" xml:space="preserve">
+ <source>Overrides active</source>
+ <target state-qualifier="leveraged-mt">Überschreibt aktiv</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Owned" xml:space="preserve">
+ <source>Owned</source>
+ <target state-qualifier="leveraged-mt">Besitzt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Ownership" xml:space="preserve">
+ <source>Ownership</source>
+ <target state-qualifier="leveraged-mt">Eigentum</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Paid until" xml:space="preserve">
+ <source>Paid until</source>
+ <target state-qualifier="leveraged-mt">Bezahlt bis</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Password" xml:space="preserve">
+ <source>Password</source>
+ <target state-qualifier="leveraged-mt">Passwort</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Performs a connection test to a Mullvad API server via this access method." xml:space="preserve">
+ <source>Performs a connection test to a Mullvad API server via this access method.</source>
+ <target state-qualifier="leveraged-mt">Führt einen Verbindungstest an einen Mullvad-API-Server über diese Zugriffsmethode durch.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please enter a valid IPv4 or IPv6 address." xml:space="preserve">
+ <source>Please enter a valid IPv4 or IPv6 address.</source>
+ <target state-qualifier="leveraged-mt">Bitte geben Sie eine gültige IPv4 oder IPv6 Adresse ein.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please enter a valid port." xml:space="preserve">
+ <source>Please enter a valid port.</source>
+ <target state-qualifier="leveraged-mt">Bitte geben Sie einen gültigen Port ein.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please retry by using the &quot;Restore purchases&quot; button." xml:space="preserve">
+ <source>Please retry by using the "Restore purchases" button.</source>
+ <target state-qualifier="leveraged-mt">Bitte versuchen Sie es noch einmal, indem Sie den Button "Einkäufe wiederherstellen" verwenden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Port" xml:space="preserve">
+ <source>Port</source>
+ <target state-qualifier="leveraged-mt">Port</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Port: %@" xml:space="preserve">
+ <source>Port: %@</source>
+ <target state-qualifier="leveraged-mt">Port: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Previous" xml:space="preserve">
+ <source>Previous</source>
+ <target state-qualifier="leveraged-mt">Vorherige</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Providers" xml:space="preserve">
+ <source>Providers</source>
+ <target state-qualifier="leveraged-mt">Anbieter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Providers: %d" xml:space="preserve">
+ <source>Providers: %d</source>
+ <target state-qualifier="leveraged-mt">Anbieter: %d</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="QUIC" xml:space="preserve">
+ <source>QUIC</source>
+ <target state-qualifier="leveraged-mt">QUISCH</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum resistance" xml:space="preserve">
+ <source>Quantum resistance</source>
+ <target state-qualifier="leveraged-mt">Quantenwiderstand</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum secure connection" xml:space="preserve">
+ <source>Quantum secure connection</source>
+ <target state-qualifier="leveraged-mt">Quantensichere Verbindung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum secure connection. Connected to %@, %@" xml:space="preserve">
+ <source>Quantum secure connection. Connected to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Sichere Quantenverbindung. Verbunden mit %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum-resistant tunnel" xml:space="preserve">
+ <source>Quantum-resistant tunnel</source>
+ <target state-qualifier="leveraged-mt">Quantenresistenter Tunnel</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Reconnecting" xml:space="preserve">
+ <source>Reconnecting</source>
+ <target state-qualifier="leveraged-mt">Erneut verbinden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Reconnecting to %@, %@" xml:space="preserve">
+ <source>Reconnecting to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Verbinde dich mit %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Redeem" xml:space="preserve">
+ <source>Redeem</source>
+ <target state-qualifier="leveraged-mt">Redeem</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Redeem voucher" xml:space="preserve">
+ <source>Redeem voucher</source>
+ <target state-qualifier="leveraged-mt">Redeem voucher</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Refund last purchase with StoreKit2" xml:space="preserve">
+ <source>Refund last purchase with StoreKit2</source>
+ <target state-qualifier="leveraged-mt">Letzten Kauf mit StoreKit2 erstatten</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Refund successful" xml:space="preserve">
+ <source>Refund successful</source>
+ <target state-qualifier="leveraged-mt">Rückerstattung erfolgreich</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Remove last used account" xml:space="preserve">
+ <source>Remove last used account</source>
+ <target state-qualifier="leveraged-mt">Letztes Konto entfernen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Rented" xml:space="preserve">
+ <source>Rented</source>
+ <target state-qualifier="leveraged-mt">Vermietung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Report a problem" xml:space="preserve">
+ <source>Report a problem</source>
+ <target state-qualifier="leveraged-mt">Ein Problem melden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Required" xml:space="preserve">
+ <source>Required</source>
+ <target state-qualifier="leveraged-mt">Benötigt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Restore purchases" xml:space="preserve">
+ <source>Restore purchases</source>
+ <target state-qualifier="leveraged-mt">Käufe wiederherstellen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Save" xml:space="preserve">
+ <source>Save</source>
+ <target state-qualifier="leveraged-mt">Speichern</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Save anyway" xml:space="preserve">
+ <source>Save anyway</source>
+ <target state-qualifier="leveraged-mt">Trotzdem speichern</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Saving changes..." xml:space="preserve">
+ <source>Saving changes...</source>
+ <target state-qualifier="leveraged-mt">Änderungen werden gespeichert...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Search for..." xml:space="preserve">
+ <source>Search for...</source>
+ <target state-qualifier="leveraged-mt">Suche nach...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Secure connection. Connected to %@, %@" xml:space="preserve">
+ <source>Secure connection. Connected to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Sichere Verbindung. %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Select location" xml:space="preserve">
+ <source>Select location</source>
+ <target state-qualifier="leveraged-mt">Standort auswählen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Selected" xml:space="preserve">
+ <source>Selected</source>
+ <target state-qualifier="leveraged-mt">Ausgewählt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Send" xml:space="preserve">
+ <source>Send</source>
+ <target state-qualifier="leveraged-mt">Senden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Send anyway" xml:space="preserve">
+ <source>Send anyway</source>
+ <target state-qualifier="leveraged-mt">Trotzdem senden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Sending..." xml:space="preserve">
+ <source>Sending...</source>
+ <target state-qualifier="leveraged-mt">Senden...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Sent" xml:space="preserve">
+ <source>Sent</source>
+ <target state-qualifier="leveraged-mt">Gesendet</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server" xml:space="preserve">
+ <source>Server</source>
+ <target state-qualifier="leveraged-mt">Server</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server IP Override" xml:space="preserve">
+ <source>Server IP Override</source>
+ <target state-qualifier="leveraged-mt">Server-IP-Überschreibung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server IP override" xml:space="preserve">
+ <source>Server IP override</source>
+ <target state-qualifier="leveraged-mt">Server-IP-Überschreibung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server details" xml:space="preserve">
+ <source>Server details</source>
+ <target state-qualifier="leveraged-mt">Serverdetails</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Setting: DAITA" xml:space="preserve">
+ <source>Setting: DAITA</source>
+ <target state-qualifier="leveraged-mt">Einstellung: DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Setting: Obfuscation" xml:space="preserve">
+ <source>Setting: Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Einstellung: Verschleierung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Settings" xml:space="preserve">
+ <source>Settings</source>
+ <target state-qualifier="leveraged-mt">Einstellungen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Settings migration error" xml:space="preserve">
+ <source>Settings migration error</source>
+ <target state-qualifier="leveraged-mt">Einstellungs-Migrationsfehler</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Shadowsocks" xml:space="preserve">
+ <source>Shadowsocks</source>
+ <target state-qualifier="leveraged-mt">Schattensocken</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Show account number" xml:space="preserve">
+ <source>Show account number</source>
+ <target state-qualifier="leveraged-mt">Kontonummer anzeigen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Social media" xml:space="preserve">
+ <source>Social media</source>
+ <target state-qualifier="leveraged-mt">Soziale Medien</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Socks5" xml:space="preserve">
+ <source>Socks5</source>
+ <target state-qualifier="leveraged-mt">Socks5</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Start using the app" xml:space="preserve">
+ <source>Start using the app</source>
+ <target state-qualifier="leveraged-mt">Mit der App beginnen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Super!" xml:space="preserve">
+ <source>Super!</source>
+ <target state-qualifier="leveraged-mt">Super!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Switch location" xml:space="preserve">
+ <source>Switch location</source>
+ <target state-qualifier="leveraged-mt">Standort wechseln</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="TUNNEL ERROR" xml:space="preserve">
+ <source>TUNNEL ERROR</source>
+ <target state-qualifier="leveraged-mt">TUNNEL FEHLER</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Tap **Edit** to add at least one DNS server." xml:space="preserve">
+ <source>Tap **Edit** to add at least one DNS server.</source>
+ <target state-qualifier="leveraged-mt">Tippe **Bearbeiten** um mindestens einen DNS-Server hinzuzufügen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Test method" xml:space="preserve">
+ <source>Test method</source>
+ <target state-qualifier="leveraged-mt">Testmethode</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Testing..." xml:space="preserve">
+ <source>Testing...</source>
+ <target state-qualifier="leveraged-mt">Testen...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks for your purchase" xml:space="preserve">
+ <source>Thanks for your purchase</source>
+ <target state-qualifier="leveraged-mt">Vielen Dank für Ihren Kauf</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks!" xml:space="preserve">
+ <source>Thanks!</source>
+ <target state-qualifier="leveraged-mt">Danke!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server directly." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server directly.</source>
+ <target state-qualifier="leveraged-mt">Die App kommuniziert direkt mit einem Mullvad API-Server.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server via a Mullvad bridge server." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server via a Mullvad bridge server.</source>
+ <target state-qualifier="leveraged-mt">Die App kommuniziert mit einem Mullvad API-Server über einen Mullvad Bridge-Server.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server via a proxy address." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server via a proxy address.</source>
+ <target state-qualifier="leveraged-mt">Die App kommuniziert mit einem Mullvad API-Server über eine Proxy-Adresse.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations." xml:space="preserve">
+ <source>The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations.</source>
+ <target state-qualifier="leveraged-mt">Die App muss mit einem Mullvad-API-Server kommunizieren, um sich anzumelden, Serverlisten abzurufen und andere kritische Operationen durchzuführen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app will test the method before saving." xml:space="preserve">
+ <source>The app will test the method before saving.</source>
+ <target state-qualifier="leveraged-mt">Die App wird die Methode vor dem Speichern testen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The automatic setting will randomly choose from the valid port ranges shown below.&#10;The custom port can be any value inside the valid ranges:&#10;%@" xml:space="preserve">
+ <source>The automatic setting will randomly choose from the valid port ranges shown below.
+The custom port can be any value inside the valid ranges:
+%@</source>
+ <target state-qualifier="leveraged-mt">Die automatische Einstellung wird zufällig aus den unten angezeigten Portbereichen auswählen.
+Der benutzerdefinierte Port kann ein beliebiger Wert innerhalb der gültigen Bereiche sein:
+%@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The entry and exit servers cannot be the same. Try changing one to a new server or location." xml:space="preserve">
+ <source>The entry and exit servers cannot be the same. Try changing one to a new server or location.</source>
+ <target state-qualifier="leveraged-mt">Die Ein- und Ausstiegsserver können nicht identisch sein. Versuchen Sie, einen zu einem neuen Server oder Standort zu wechseln.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings." xml:space="preserve">
+ <source>The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings.</source>
+ <target state-qualifier="leveraged-mt">Der Einstiegsserver für Multihop wird derzeit von DAITA überschrieben. Um einen Eintragsserver auszuwählen, aktivieren Sie bitte zuerst „Nur Direkt“ oder deaktivieren Sie „DAITA“ in den Einstellungen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The payment request was cancelled." xml:space="preserve">
+ <source>The payment request was cancelled.</source>
+ <target state-qualifier="leveraged-mt">Die Zahlungsaufforderung wurde abgebrochen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The selected WireGuard port is not supported, please change it under **VPN settings**." xml:space="preserve">
+ <source>The selected WireGuard port is not supported, please change it under **VPN settings**.</source>
+ <target state-qualifier="leveraged-mt">Der ausgewählte WireGuard-Port wird nicht unterstützt, bitte ändern Sie ihn unter **VPN-Einstellungen**.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out." xml:space="preserve">
+ <source>The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out.</source>
+ <target state-qualifier="leveraged-mt">Die Version der auf dem Gerät gespeicherten Einstellungen ist nicht erkannt. Die Einstellungen werden auf die Standardwerte zurückgesetzt und das Gerät wird abgemeldet.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This can be useful if the API is censored but Mullvad’s bridge servers are not." xml:space="preserve">
+ <source>This can be useful if the API is censored but Mullvad’s bridge servers are not.</source>
+ <target state-qualifier="leveraged-mt">Dies kann nützlich sein, wenn die API zensiert wird, aber Mullvads Bridge-Server nicht.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This can be useful when you are not affected by censorship." xml:space="preserve">
+ <source>This can be useful when you are not affected by censorship.</source>
+ <target state-qualifier="leveraged-mt">Dies kann nützlich sein, wenn Sie nicht von Zensur betroffen sind.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This device is not allowed to make the payment." xml:space="preserve">
+ <source>This device is not allowed to make the payment.</source>
+ <target state-qualifier="leveraged-mt">Dieses Gerät ist nicht berechtigt, die Zahlung durchzuführen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.&#10;Attention: toggling “Local network sharing” requires restarting the VPN connection." xml:space="preserve">
+ <source>This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.
+Attention: toggling “Local network sharing” requires restarting the VPN connection.</source>
+ <target state-qualifier="leveraged-mt">Diese Funktion ermöglicht den Zugriff auf andere Geräte im lokalen Netzwerk, wie zum Beispiel zum Teilen, Drucken, Streamen usw.
+Achtung: Das Umschalten von "Lokales Netzwerkteilen" erfordert einen Neustart der VPN-Verbindung.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods." xml:space="preserve">
+ <source>This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods.</source>
+ <target state-qualifier="leveraged-mt">Mit dieser Funktion können Sie diese Zensur umgehen, indem Sie benutzerdefinierte Wege zum Zugriff auf die API über Proxies und ähnliche Methoden hinzufügen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.&#10;It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.&#10;This extra step uses approximately 500 kiB of traffic every time a new tunnel is established." xml:space="preserve">
+ <source>This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.
+It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.
+This extra step uses approximately 500 kiB of traffic every time a new tunnel is established.</source>
+ <target state-qualifier="leveraged-mt">Dieses Feature macht den WireGuard-Tunnel gegen potentielle Angriffe von Quantencomputern resistent.
+Dies geschieht, indem ein zusätzlicher Schlüsselaustausch mit einem quantensicheren Algorithmus durchgeführt wird und das Ergebnis in WireGuards regulärer Verschlüsselung gemischt wird.
+Dieser zusätzliche Schritt verwendet bei jedem Bau eines neuen Tunnels etwa 500 kiB Verkehr.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.&#10;You can have up to 5 devices logged in on one Mullvad account.&#10;If you log out, the device and the device name is removed. When you log back in again, the device will get a new name." xml:space="preserve">
+ <source>This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.
+You can have up to 5 devices logged in on one Mullvad account.
+If you log out, the device and the device name is removed. When you log back in again, the device will get a new name.</source>
+ <target state-qualifier="leveraged-mt">Dies ist der Name, der dem Gerät zugewiesen ist. Jedes Gerät, das sich auf einem Mullvad-Konto eingeloggt hat, erhält einen einzigartigen Namen, der Ihnen hilft, ihn zu identifizieren, wenn Sie Ihre Geräte in der App oder auf der Website verwalten.
+Du kannst bis zu 5 Geräte auf einem Mullvad Konto eingeloggt haben.
+Wenn Sie sich abmelden, wird das Gerät und der Gerätename entfernt. Wenn Sie sich erneut anmelden, erhält das Gerät einen neuen Namen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This logs out all devices using this account and all VPN access will be denied even if there is time left on the account. Enter the last 4 digits of the account number and hit &quot;Delete account&quot; if you really want to delete the account:" xml:space="preserve">
+ <source>This logs out all devices using this account and all VPN access will be denied even if there is time left on the account. Enter the last 4 digits of the account number and hit "Delete account" if you really want to delete the account:</source>
+ <target state-qualifier="leveraged-mt">Dies protokolliert alle Geräte, die dieses Konto nutzen, und alle VPN-Zugriffe werden verweigert, selbst wenn noch Zeit auf dem Konto bleibt. Geben Sie die letzten 4 Ziffern der Kontonummer ein und klicken Sie auf "Konto löschen", wenn Sie das Konto wirklich löschen möchten:</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This voucher code has already been used." xml:space="preserve">
+ <source>This voucher code has already been used.</source>
+ <target state-qualifier="leveraged-mt">Dieser Gutscheincode wurde bereits verwendet.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Time left: %@" xml:space="preserve">
+ <source>Time left: %@</source>
+ <target state-qualifier="leveraged-mt">Verbleibende Zeit: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To assist you better, please write in English or Swedish and include which country you are connecting from." xml:space="preserve">
+ <source>To assist you better, please write in English or Swedish and include which country you are connecting from.</source>
+ <target state-qualifier="leveraged-mt">Um Ihnen besser zu helfen, schreiben Sie bitte auf Englisch oder Schwedisch und legen Sie fest, aus welchem Land Sie sich verbinden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To circumvent this you can import a file or a text, provided by our support team, with new IP addresses that override the default addresses of the servers in the Select location view." xml:space="preserve">
+ <source>To circumvent this you can import a file or a text, provided by our support team, with new IP addresses that override the default addresses of the servers in the Select location view.</source>
+ <target state-qualifier="leveraged-mt">Um dies zu umgehen, können Sie eine Datei oder einen Text importieren, der von unserem Support-Team bereitgestellt wird mit neuen IP-Adressen, die die Standardadressen der Server in der Standortansicht auswählen überschreiben.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To create a custom list, tap on &quot;...&quot; " xml:space="preserve">
+ <source>To create a custom list, tap on "..." </source>
+ <target state-qualifier="leveraged-mt">Um eine benutzerdefinierte Liste zu erstellen, tippen Sie auf "..." </target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To enable this setting, add at least one server." xml:space="preserve">
+ <source>To enable this setting, add at least one server.</source>
+ <target state-qualifier="leveraged-mt">Um diese Einstellung zu aktivieren, fügen Sie mindestens einen Server hinzu.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel." xml:space="preserve">
+ <source>To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel.</source>
+ <target state-qualifier="leveraged-mt">Um Ihnen effektiver zu helfen, wird die Protokolldatei Ihrer App an diese Nachricht angehängt. Ihre Daten bleiben sicher und privat, da sie anonymisiert sind, bevor sie über einen verschlüsselten Kanal gesendet werden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To start using the app, you first need to add time to your account. Either buy credit on our website or redeem a voucher." xml:space="preserve">
+ <source>To start using the app, you first need to add time to your account. Either buy credit on our website or redeem a voucher.</source>
+ <target state-qualifier="leveraged-mt">Um die App zu verwenden, müssen Sie zuerst Zeit zu Ihrem Konto hinzufügen. Kaufen Sie ein Guthaben auf unserer Website oder einlösen Sie einen Gutschein.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Too many devices" xml:space="preserve">
+ <source>Too many devices</source>
+ <target state-qualifier="leveraged-mt">Zu viele Geräte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Too many devices registered with account" xml:space="preserve">
+ <source>Too many devices registered with account</source>
+ <target state-qualifier="leveraged-mt">Zu viele Geräte mit Konto registriert</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Trackers" xml:space="preserve">
+ <source>Trackers</source>
+ <target state-qualifier="leveraged-mt">Tracker</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Try again" xml:space="preserve">
+ <source>Try again</source>
+ <target state-qualifier="leveraged-mt">Erneut versuchen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Tunnel is unset." xml:space="preserve">
+ <source>Tunnel is unset.</source>
+ <target state-qualifier="leveraged-mt">Tunnel ist nicht gesetzt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Type" xml:space="preserve">
+ <source>Type</source>
+ <target state-qualifier="leveraged-mt">Typ</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="UDP-over-TCP" xml:space="preserve">
+ <source>UDP-over-TCP</source>
+ <target state-qualifier="leveraged-mt">UDP-Over-TCP</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to authenticate account. Please log out and log back in." xml:space="preserve">
+ <source>Unable to authenticate account. Please log out and log back in.</source>
+ <target state-qualifier="leveraged-mt">Konto konnte nicht authentifiziert werden. Bitte loggen Sie sich aus und melden Sie sich wieder an.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection after update. Please disconnect and reconnect." xml:space="preserve">
+ <source>Unable to start tunnel connection after update. Please disconnect and reconnect.</source>
+ <target state-qualifier="leveraged-mt">Tunnelverbindung kann nach dem Update nicht gestartet werden. Bitte trennen und erneut verbinden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection. Please send a problem report." xml:space="preserve">
+ <source>Unable to start tunnel connection. Please send a problem report.</source>
+ <target state-qualifier="leveraged-mt">Tunnelverbindung konnte nicht gestartet werden. Bitte senden Sie einen Fehlerbericht.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unexpected server response: %1$@ (HTTP status: %2$d)" xml:space="preserve">
+ <source>Unexpected server response: %1$@ (HTTP status: %2$d)</source>
+ <target state-qualifier="leveraged-mt">Unerwartete Server-Antwort: %1$@ (HTTP-Status: %2$d)</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unexpected server response: %d" xml:space="preserve">
+ <source>Unexpected server response: %d</source>
+ <target state-qualifier="leveraged-mt">Unerwartete Server-Antwort: %d</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unknown error." xml:space="preserve">
+ <source>Unknown error.</source>
+ <target state-qualifier="leveraged-mt">Unbekannter Fehler.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unsecured connection" xml:space="preserve">
+ <source>Unsecured connection</source>
+ <target state-qualifier="leveraged-mt">Ungesicherte Verbindung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Use custom DNS server" xml:space="preserve">
+ <source>Use custom DNS server</source>
+ <target state-qualifier="leveraged-mt">Eigenen DNS-Server verwenden</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Username" xml:space="preserve">
+ <source>Username</source>
+ <target state-qualifier="leveraged-mt">Benutzername</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="VPN settings" xml:space="preserve">
+ <source>VPN settings</source>
+ <target state-qualifier="leveraged-mt">VPN-Einstellungen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Valid range: 1 - 65535" xml:space="preserve">
+ <source>Valid range: 1 - 65535</source>
+ <target state-qualifier="leveraged-mt">Valid range: 1 - 65535</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Verifying voucher..." xml:space="preserve">
+ <source>Verifying voucher...</source>
+ <target state-qualifier="leveraged-mt">Gutschein wird überprüft...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="View app logs" xml:space="preserve">
+ <source>View app logs</source>
+ <target state-qualifier="leveraged-mt">App-Logs anzeigen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Voucher code is invalid." xml:space="preserve">
+ <source>Voucher code is invalid.</source>
+ <target state-qualifier="leveraged-mt">Gutscheincode ist ungültig.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Voucher was successfully redeemed." xml:space="preserve">
+ <source>Voucher was successfully redeemed.</source>
+ <target state-qualifier="leveraged-mt">Gutschein wurde erfolgreich eingelöst.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection." xml:space="preserve">
+ <source>Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection.</source>
+ <target state-qualifier="leveraged-mt">Warnung: Der Malware-Blocker ist kein Anti-Virus und sollte nicht als solche behandelt werden. Dies ist nur eine zusätzliche Schutzschicht.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="We are having some issues, please try again later" xml:space="preserve">
+ <source>We are having some issues, please try again later</source>
+ <target state-qualifier="leveraged-mt">Wir haben einige Probleme, bitte versuchen Sie es später erneut</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="We will look into this." xml:space="preserve">
+ <source>We will look into this.</source>
+ <target state-qualifier="leveraged-mt">Wir werden uns damit befassen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Welcome, this device is now called **%@**. For more details see the info button in Account." xml:space="preserve">
+ <source>Welcome, this device is now called **%@**. For more details see the info button in Account.</source>
+ <target state-qualifier="leveraged-mt">Willkommen, dieses Gerät heißt jetzt **%@**. Für weitere Details siehe den Info-Button im Konto.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="What's new" xml:space="preserve">
+ <source>What's new</source>
+ <target state-qualifier="leveraged-mt">Was ist neu</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more. &#10;This might cause issues on certain websites, services, and apps.&#10;Attention: this setting cannot be used in combination with **Use custom DNS server**." xml:space="preserve">
+ <source>When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more.
+This might cause issues on certain websites, services, and apps.
+Attention: this setting cannot be used in combination with **Use custom DNS server**.</source>
+ <target state-qualifier="leveraged-mt">Wenn diese Funktion aktiviert ist, hält es das Gerät davon ab, bestimmte Domains oder Websites zu kontaktieren, die für die Verbreitung von Werbung, Malware, Tracker und mehr bekannt sind.
+Dies kann Probleme auf bestimmten Webseiten, Diensten und Apps verursachen.
+Achtung: diese Einstellung kann nicht in Kombination mit **Eigenen DNS-Server verwenden** verwendet werden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="When using DAITA, one provider with DAITA-enabled servers is required." xml:space="preserve">
+ <source>When using DAITA, one provider with DAITA-enabled servers is required.</source>
+ <target state-qualifier="leveraged-mt">Bei der Verwendung von DAITA ist ein Provider mit DAITA-fähigen Servern erforderlich.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server." xml:space="preserve">
+ <source>Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server.</source>
+ <target state-qualifier="leveraged-mt">Welcher TCP-Port das UDP-over-TCP-Obfuscation-Protokoll sich auf dem VPN-Server verbinden soll.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="WireGuard Obfuscation" xml:space="preserve">
+ <source>WireGuard Obfuscation</source>
+ <target state-qualifier="leveraged-mt">WireGuard Verschleierung</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="WireGuard ports" xml:space="preserve">
+ <source>WireGuard ports</source>
+ <target state-qualifier="leveraged-mt">WireGuard Ports</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Direct&quot; method, the app communicates with a Mullvad API server directly without any intermediate proxies." xml:space="preserve">
+ <source>With the "Direct" method, the app communicates with a Mullvad API server directly without any intermediate proxies.</source>
+ <target state-qualifier="leveraged-mt">Mit der "Direct" Methode kommuniziert die App direkt mit einem Mullvad API Server ohne Zwischenproxies.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Encrypted DNS proxy&quot; method, the app will communicate with our Mullvad API through a proxy address.&#10;It does this by retrieving an address from a DNS over HTTPS (DoH) server and then using that to reach our API servers." xml:space="preserve">
+ <source>With the "Encrypted DNS proxy" method, the app will communicate with our Mullvad API through a proxy address.
+It does this by retrieving an address from a DNS over HTTPS (DoH) server and then using that to reach our API servers.</source>
+ <target state-qualifier="leveraged-mt">Mit der "Verschlüsselten DNS-Proxy-Methode" wird die App über eine Proxy-Adresse mit unserer Mullvad-API kommunizieren.
+Dies geschieht durch das Abrufen einer Adresse von einem DNS über den HTTPS (DoH) Server und die Verwendung dieser Adresse, um unsere API-Server zu erreichen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Mullvad bridges&quot; method, the app communicates with a Mullvad API server via a Mullvad bridge server. It does this by sending the traffic obfuscated by Shadowsocks." xml:space="preserve">
+ <source>With the "Mullvad bridges" method, the app communicates with a Mullvad API server via a Mullvad bridge server. It does this by sending the traffic obfuscated by Shadowsocks.</source>
+ <target state-qualifier="leveraged-mt">Mit der "Mullvad Bridges"-Methode kommuniziert die App mit einem Mullvad API-Server über einen Mullvad Bridge-Server. Sie tut dies, indem sie den Verkehr verschleiert von Shadowsocks.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Yes, continue" xml:space="preserve">
+ <source>Yes, continue</source>
+ <target state-qualifier="leveraged-mt">Ja, fortfahren</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address." xml:space="preserve">
+ <source>You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address.</source>
+ <target state-qualifier="leveraged-mt">Sie sind im Begriff, den Problembericht ohne eine Möglichkeit an Sie zu senden. Wenn Sie eine Antwort auf Ihren Bericht wünschen, müssen Sie eine E-Mail-Adresse eingeben.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You are logged in with an invalid account number. Please log out and try another one." xml:space="preserve">
+ <source>You are logged in with an invalid account number. Please log out and try another one.</source>
+ <target state-qualifier="leveraged-mt">Sie sind mit einer ungültigen Kontonummer angemeldet. Bitte melden Sie sich ab und versuchen Sie eine andere.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You can add more time via the account view or website to continue using the VPN." xml:space="preserve">
+ <source>You can add more time via the account view or website to continue using the VPN.</source>
+ <target state-qualifier="leveraged-mt">Du kannst mehr Zeit über die Account-Ansicht oder Webseite hinzufügen, um das VPN weiter zu nutzen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You can use the &quot;restore purchases&quot; function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account." xml:space="preserve">
+ <source>You can use the "restore purchases" function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account.</source>
+ <target state-qualifier="leveraged-mt">Sie können die Funktion "Wiederherstellungskäufe" verwenden, um alle In-App-Zahlungen über Apple-Dienste zu überprüfen. Wenn eine Zahlung nicht gutgeschrieben wurde, wird die Zeit dem derzeit eingeloggten Mullvad-Konto hinzugefügt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have %@ left on this account." xml:space="preserve">
+ <source>You have %@ left on this account.</source>
+ <target state-qualifier="leveraged-mt">Sie haben %@ auf diesem Konto übrig.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below." xml:space="preserve">
+ <source>You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below.</source>
+ <target state-qualifier="leveraged-mt">Du hast keine VPN-Zeit mehr auf diesem Konto. Kaufen Sie entweder Guthaben auf unserer Website oder tätigen Sie einen In-App-Kauf über die Schaltfläche **Zeit hinzufügen** unten.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have no more VPN time left on this account. To add more, you will need to disconnect and access the Internet with an unsecure connection." xml:space="preserve">
+ <source>You have no more VPN time left on this account. To add more, you will need to disconnect and access the Internet with an unsecure connection.</source>
+ <target state-qualifier="leveraged-mt">Du hast keine VPN-Zeit mehr auf diesem Konto. Um mehr hinzuzufügen, müssen Sie die Verbindung trennen und mit einer unsicheren Verbindung auf das Internet zugreifen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have one day left on this account. Please add more time to continue using the VPN." xml:space="preserve">
+ <source>You have one day left on this account. Please add more time to continue using the VPN.</source>
+ <target state-qualifier="leveraged-mt">Du hast noch einen Tag auf diesem Konto. Bitte füge mehr Zeit hinzu, um das VPN weiter zu nutzen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have removed this device. To connect again, you will need to log back in." xml:space="preserve">
+ <source>You have removed this device. To connect again, you will need to log back in.</source>
+ <target state-qualifier="leveraged-mt">Sie haben dieses Gerät entfernt. Um sich erneut zu verbinden, müssen Sie sich wieder anmelden.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have unsaved changes." xml:space="preserve">
+ <source>You have unsaved changes.</source>
+ <target state-qualifier="leveraged-mt">Sie haben ungespeicherte Änderungen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your device is offline. The tunnel will automatically connect once your device is back online." xml:space="preserve">
+ <source>Your device is offline. The tunnel will automatically connect once your device is back online.</source>
+ <target state-qualifier="leveraged-mt">Ihr Gerät ist offline. Der Tunnel verbindet sich automatisch, sobald Ihr Gerät wieder online ist.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your device is offline. Try connecting again when the device has access to Internet." xml:space="preserve">
+ <source>Your device is offline. Try connecting again when the device has access to Internet.</source>
+ <target state-qualifier="leveraged-mt">Ihr Gerät ist offline. Versuchen Sie sich erneut zu verbinden, wenn das Gerät Zugang zum Internet hat.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your email (optional)" xml:space="preserve">
+ <source>Your email (optional)</source>
+ <target state-qualifier="leveraged-mt">Ihre E-Mail (optional)</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your previous purchases have already been added to this account." xml:space="preserve">
+ <source>Your previous purchases have already been added to this account.</source>
+ <target state-qualifier="leveraged-mt">Ihre bisherigen Käufe wurden diesem Konto bereits hinzugefügt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your purchase was successfully refunded." xml:space="preserve">
+ <source>Your purchase was successfully refunded.</source>
+ <target state-qualifier="leveraged-mt">Ihr Kauf wurde erfolgreich zurückerstattet.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You’re all set!!" xml:space="preserve">
+ <source>You’re all set!!</source>
+ <target state-qualifier="leveraged-mt">Du bist alles!!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="method" xml:space="preserve">
+ <source>method</source>
+ <target state-qualifier="leveraged-mt">Methode</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.&#10;To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.&#10;Would you like to continue to enable “Local network sharing”?" xml:space="preserve">
+ <source>“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.
+To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.
+Would you like to continue to enable “Local network sharing”?</source>
+ <target state-qualifier="leveraged-mt">“%@ Local Network Sharing” erfordert einen Neustart der VPN-Verbindung, die dich trennt und deinen Traffic kurz offenbart.
+Um dies zu verhindern, aktivieren Sie den Flugmodus manuell und deaktivieren Sie das WLAN, bevor Sie fortfahren.
+Möchten Sie weiterhin "Lokales Netzwerkteilen" aktivieren?</target>
+ <note/>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="MullvadVPN/Supporting Files/en.lproj/InfoPlist.strings" source-language="en" target-language="de" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="CFBundleDisplayName" xml:space="preserve">
+ <source>Mullvad VPN</source>
+ <target state-qualifier="leveraged-mt">Mullvad VPN</target>
+ <note>Bundle display name</note>
+ </trans-unit>
+ <trans-unit id="CFBundleName" xml:space="preserve">
+ <source>MullvadVPN</source>
+ <target state-qualifier="leveraged-mt">MullvadVPN</target>
+ <note>Bundle name</note>
+ </trans-unit>
+ <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
+ <source>The app needs this to connect and test a new method.</source>
+ <target state-qualifier="leveraged-mt">Die App benötigt dies, um sich zu verbinden und eine neue Methode zu testen.</target>
+ <note>Privacy - Local Network Usage Description</note>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="PacketTunnel/en.lproj/InfoPlist.strings" source-language="en" target-language="de" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="CFBundleDisplayName" xml:space="preserve">
+ <source>PacketTunnel</source>
+ <target state-qualifier="leveraged-mt">Packettunnel</target>
+ <note>Bundle display name</note>
+ </trans-unit>
+ <trans-unit id="CFBundleName" xml:space="preserve">
+ <source>PacketTunnel</source>
+ <target state-qualifier="leveraged-mt">Packettunnel</target>
+ <note>Bundle name</note>
+ </trans-unit>
+ </body>
+ </file>
+</xliff>
diff --git a/ios/translation/locales/en.xliff b/ios/translation/locales/en.xliff
index 0364b59fd6..c7a7517496 100644
--- a/ios/translation/locales/en.xliff
+++ b/ios/translation/locales/en.xliff
@@ -10,6 +10,11 @@
<target state="new">%@</target>
<note/>
</trans-unit>
+ <trans-unit id="%@ cannot be empty." xml:space="preserve">
+ <source>%@ cannot be empty.</source>
+ <target state="new">%@ cannot be empty.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="%@ have been added to your account" xml:space="preserve">
<source>%@ have been added to your account</source>
<target state="new">%@ have been added to your account</target>
@@ -20,31 +25,16 @@
<target state="new">%@ left on this account</target>
<note/>
</trans-unit>
- <trans-unit id="%@ via %@" xml:space="preserve">
- <source>%1$@ via %2$@</source>
- <target state="new">%1$@ via %2$@</target>
- <note/>
- </trans-unit>
<trans-unit id="%@ were added to your account." xml:space="preserve">
<source>%@ were added to your account.</source>
<target state="new">%@ were added to your account.</target>
<note/>
</trans-unit>
- <trans-unit id="%@, %@" xml:space="preserve">
- <source>%1$@, %2$@</source>
- <target state="new">%1$@, %2$@</target>
- <note/>
- </trans-unit>
<trans-unit id="%d more..." xml:space="preserve">
<source>%d more...</source>
<target state="new">%d more...</target>
<note/>
</trans-unit>
- <trans-unit id="%lld more..." xml:space="preserve">
- <source>%lld more...</source>
- <target state="new">%lld more...</target>
- <note/>
- </trans-unit>
<trans-unit id="**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**&#10;&#10;DAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.&#10;&#10;By using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted)." xml:space="preserve">
<source>**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**
@@ -63,6 +53,11 @@ By using sophisticated AI it’s possible to analyze the traffic of data packets
<target state="new">**Tap here** to see what’s new.</target>
<note/>
</trans-unit>
+ <trans-unit id="A custom list with this name exists, please choose a unique name." xml:space="preserve">
+ <source>A custom list with this name exists, please choose a unique name.</source>
+ <target state="new">A custom list with this name exists, please choose a unique name.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="API access" xml:space="preserve">
<source>API access</source>
<target state="new">API access</target>
@@ -138,11 +133,6 @@ By using sophisticated AI it’s possible to analyze the traffic of data packets
<target state="new">Account number</target>
<note/>
</trans-unit>
- <trans-unit id="Active features" xml:space="preserve">
- <source>Active features</source>
- <target state="new">Active features</target>
- <note/>
- </trans-unit>
<trans-unit id="Add" xml:space="preserve">
<source>Add</source>
<target state="new">Add</target>
@@ -198,11 +188,6 @@ By using sophisticated AI it’s possible to analyze the traffic of data packets
<target state="new">Adult content</target>
<note/>
</trans-unit>
- <trans-unit id="Agree and continue" xml:space="preserve">
- <source>Agree and continue</source>
- <target state="new">Agree and continue</target>
- <note/>
- </trans-unit>
<trans-unit id="All" xml:space="preserve">
<source>All</source>
<target state="new">All</target>
@@ -233,11 +218,6 @@ By using sophisticated AI it’s possible to analyze the traffic of data packets
<target state="new">AppStore receipt is not found on disk.</target>
<note/>
</trans-unit>
- <trans-unit id="Are you sure you want to log %@ out?" xml:space="preserve">
- <source>Are you sure you want to log %@ out?</source>
- <target state="new">Are you sure you want to log %@ out?</target>
- <note/>
- </trans-unit>
<trans-unit id="At least one method needs to be enabled." xml:space="preserve">
<source>At least one method needs to be enabled.</source>
<target state="new">At least one method needs to be enabled.</target>
@@ -353,41 +333,11 @@ By using sophisticated AI it’s possible to analyze the traffic of data packets
<target state="new">Congrats!</target>
<note/>
</trans-unit>
- <trans-unit id="Connect" xml:space="preserve">
- <source>Connect</source>
- <target state="new">Connect</target>
- <note/>
- </trans-unit>
<trans-unit id="Connected" xml:space="preserve">
<source>Connected</source>
<target state="new">Connected</target>
<note/>
</trans-unit>
- <trans-unit id="Connected to %@, %@" xml:space="preserve">
- <source>Connected to %1$@, %2$@</source>
- <target state="new">Connected to %1$@, %2$@</target>
- <note/>
- </trans-unit>
- <trans-unit id="Connecting to %@, %@" xml:space="preserve">
- <source>Connecting to %1$@, %2$@</source>
- <target state="new">Connecting to %1$@, %2$@</target>
- <note/>
- </trans-unit>
- <trans-unit id="Connecting..." xml:space="preserve">
- <source>Connecting...</source>
- <target state="new">Connecting...</target>
- <note/>
- </trans-unit>
- <trans-unit id="Connection details" xml:space="preserve">
- <source>Connection details</source>
- <target state="new">Connection details</target>
- <note/>
- </trans-unit>
- <trans-unit id="Continue with login" xml:space="preserve">
- <source>Continue with login</source>
- <target state="new">Continue with login</target>
- <note/>
- </trans-unit>
<trans-unit id="Copy to pasteboard" xml:space="preserve">
<source>Copy to pasteboard</source>
<target state="new">Copy to pasteboard</target>
@@ -408,11 +358,6 @@ By using sophisticated AI it’s possible to analyze the traffic of data packets
<target state="new">Create account</target>
<note/>
</trans-unit>
- <trans-unit id="Created: %@" xml:space="preserve">
- <source>Created: %@</source>
- <target state="new">Created: %@</target>
- <note/>
- </trans-unit>
<trans-unit id="Creating new account" xml:space="preserve">
<source>Creating new account</source>
<target state="new">Creating new account</target>
@@ -428,11 +373,6 @@ By using sophisticated AI it’s possible to analyze the traffic of data packets
<target state="new">Creating secure connection</target>
<note/>
</trans-unit>
- <trans-unit id="Current device" xml:space="preserve">
- <source>Current device</source>
- <target state="new">Current device</target>
- <note/>
- </trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
<target state="new">Custom</target>
@@ -574,26 +514,11 @@ Attention: Be cautious if you have a limited data plan as this feature will incr
<target state="new">Disconnect</target>
<note/>
</trans-unit>
- <trans-unit id="Disconnected" xml:space="preserve">
- <source>Disconnected</source>
- <target state="new">Disconnected</target>
- <note/>
- </trans-unit>
<trans-unit id="Disconnecting" xml:space="preserve">
<source>Disconnecting</source>
<target state="new">Disconnecting</target>
<note/>
</trans-unit>
- <trans-unit id="Disconnecting..." xml:space="preserve">
- <source>Disconnecting...</source>
- <target state="new">Disconnecting...</target>
- <note/>
- </trans-unit>
- <trans-unit id="Do you agree to remaining anonymous?" xml:space="preserve">
- <source>Do you agree to remaining anonymous?</source>
- <target state="new">Do you agree to remaining anonymous?</target>
- <note/>
- </trans-unit>
<trans-unit id="Done" xml:space="preserve">
<source>Done</source>
<target state="new">Done</target>
@@ -863,11 +788,6 @@ The DoH servers are hosted by one of the following providers: Quad9 or Cloudflar
<target state="new">Import via text</target>
<note/>
</trans-unit>
- <trans-unit id="In" xml:space="preserve">
- <source>In</source>
- <target state="new">In</target>
- <note/>
- </trans-unit>
<trans-unit id="In use" xml:space="preserve">
<source>In use</source>
<target state="new">In use</target>
@@ -1077,6 +997,11 @@ This results in increased latency but increases anonymity online.</target>
<target state="new">Next</target>
<note/>
</trans-unit>
+ <trans-unit id="No DAITA compatible servers match your location settings. Try changing location." xml:space="preserve">
+ <source>No DAITA compatible servers match your location settings. Try changing location.</source>
+ <target state="new">No DAITA compatible servers match your location settings. Try changing location.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="No matching relays found, check your filter settings." xml:space="preserve">
<source>No matching relays found, check your filter settings.</source>
<target state="new">No matching relays found, check your filter settings.</target>
@@ -1097,6 +1022,16 @@ This results in increased latency but increases anonymity online.</target>
<target state="new">No overrides imported</target>
<note/>
</trans-unit>
+ <trans-unit id="No servers match your location filter. Try changing filter settings." xml:space="preserve">
+ <source>No servers match your location filter. Try changing filter settings.</source>
+ <target state="new">No servers match your location filter. Try changing filter settings.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No servers match your settings, try changing server or other settings." xml:space="preserve">
+ <source>No servers match your settings, try changing server or other settings.</source>
+ <target state="new">No servers match your settings, try changing server or other settings.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="OUT OF TIME" xml:space="preserve">
<source>OUT OF TIME</source>
<target state="new">OUT OF TIME</target>
@@ -1147,16 +1082,6 @@ This results in increased latency but increases anonymity online.</target>
<target state="new">Optional</target>
<note/>
</trans-unit>
- <trans-unit id="Out IPv4" xml:space="preserve">
- <source>Out IPv4</source>
- <target state="new">Out IPv4</target>
- <note/>
- </trans-unit>
- <trans-unit id="Out IPv6" xml:space="preserve">
- <source>Out IPv6</source>
- <target state="new">Out IPv6</target>
- <note/>
- </trans-unit>
<trans-unit id="Out of time" xml:space="preserve">
<source>Out of time</source>
<target state="new">Out of time</target>
@@ -1202,11 +1127,6 @@ This results in increased latency but increases anonymity online.</target>
<target state="new">Please enter a valid port.</target>
<note/>
</trans-unit>
- <trans-unit id="Please log out of at least one by removing it from the list below. You can find the corresponding device name under the device’s Account settings." xml:space="preserve">
- <source>Please log out of at least one by removing it from the list below. You can find the corresponding device name under the device’s Account settings.</source>
- <target state="new">Please log out of at least one by removing it from the list below. You can find the corresponding device name under the device’s Account settings.</target>
- <note/>
- </trans-unit>
<trans-unit id="Please retry by using the &quot;Restore purchases&quot; button." xml:space="preserve">
<source>Please retry by using the "Restore purchases" button.</source>
<target state="new">Please retry by using the "Restore purchases" button.</target>
@@ -1292,18 +1212,6 @@ This results in increased latency but increases anonymity online.</target>
<target state="new">Refund successful</target>
<note/>
</trans-unit>
- <trans-unit id="Remove" xml:space="preserve">
- <source>Remove</source>
- <target state="new">Remove</target>
- <note/>
- </trans-unit>
- <trans-unit id="Remove %@?&#10;The device will be removed from the list and logged out." xml:space="preserve">
- <source>Remove %@?
-The device will be removed from the list and logged out.</source>
- <target state="new">Remove %@?
-The device will be removed from the list and logged out.</target>
- <note/>
- </trans-unit>
<trans-unit id="Remove last used account" xml:space="preserve">
<source>Remove last used account</source>
<target state="new">Remove last used account</target>
@@ -1439,6 +1347,11 @@ The device will be removed from the list and logged out.</target>
<target state="new">Social media</target>
<note/>
</trans-unit>
+ <trans-unit id="Socks5" xml:space="preserve">
+ <source>Socks5</source>
+ <target state="new">Socks5</target>
+ <note/>
+ </trans-unit>
<trans-unit id="Start using the app" xml:space="preserve">
<source>Start using the app</source>
<target state="new">Start using the app</target>
@@ -1462,7 +1375,7 @@ The device will be removed from the list and logged out.</target>
<trans-unit id="Tap **Edit** to add at least one DNS server." xml:space="preserve">
<source>Tap **Edit** to add at least one DNS server.</source>
<target state="new">Tap **Edit** to add at least one DNS server.</target>
- <note>Foot note displayed if there are no DNS entries, but table view is not in editing mode.</note>
+ <note/>
</trans-unit>
<trans-unit id="Test method" xml:space="preserve">
<source>Test method</source>
@@ -1518,6 +1431,11 @@ The custom port can be any value inside the valid ranges:
%@</target>
<note/>
</trans-unit>
+ <trans-unit id="The entry and exit servers cannot be the same. Try changing one to a new server or location." xml:space="preserve">
+ <source>The entry and exit servers cannot be the same. Try changing one to a new server or location.</source>
+ <target state="new">The entry and exit servers cannot be the same. Try changing one to a new server or location.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings." xml:space="preserve">
<source>The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings.</source>
<target state="new">The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings.</target>
@@ -1528,6 +1446,11 @@ The custom port can be any value inside the valid ranges:
<target state="new">The payment request was cancelled.</target>
<note/>
</trans-unit>
+ <trans-unit id="The selected WireGuard port is not supported, please change it under **VPN settings**." xml:space="preserve">
+ <source>The selected WireGuard port is not supported, please change it under **VPN settings**.</source>
+ <target state="new">The selected WireGuard port is not supported, please change it under **VPN settings**.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out." xml:space="preserve">
<source>The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out.</source>
<target state="new">The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out.</target>
@@ -1611,7 +1534,7 @@ If you log out, the device and the device name is removed. When you log back in
<trans-unit id="To enable this setting, add at least one server." xml:space="preserve">
<source>To enable this setting, add at least one server.</source>
<target state="new">To enable this setting, add at least one server.</target>
- <note>Foot note displayed if there are no DNS entries and table view is in editing mode.</note>
+ <note/>
</trans-unit>
<trans-unit id="To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel." xml:space="preserve">
<source>To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel.</source>
@@ -1658,6 +1581,21 @@ If you log out, the device and the device name is removed. When you log back in
<target state="new">UDP-over-TCP</target>
<note/>
</trans-unit>
+ <trans-unit id="Unable to authenticate account. Please log out and log back in." xml:space="preserve">
+ <source>Unable to authenticate account. Please log out and log back in.</source>
+ <target state="new">Unable to authenticate account. Please log out and log back in.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection after update. Please disconnect and reconnect." xml:space="preserve">
+ <source>Unable to start tunnel connection after update. Please disconnect and reconnect.</source>
+ <target state="new">Unable to start tunnel connection after update. Please disconnect and reconnect.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection. Please send a problem report." xml:space="preserve">
+ <source>Unable to start tunnel connection. Please send a problem report.</source>
+ <target state="new">Unable to start tunnel connection. Please send a problem report.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="Unexpected server response: %1$@ (HTTP status: %2$d)" xml:space="preserve">
<source>Unexpected server response: %1$@ (HTTP status: %2$d)</source>
<target state="new">Unexpected server response: %1$@ (HTTP status: %2$d)</target>
@@ -1703,11 +1641,6 @@ If you log out, the device and the device name is removed. When you log back in
<target state="new">Verifying voucher...</target>
<note/>
</trans-unit>
- <trans-unit id="View and manage all your logged in devices. You can have up to 5 devices on one account at a time. Each device gets a name when logged in to help you tell them apart easily." xml:space="preserve">
- <source>View and manage all your logged in devices. You can have up to 5 devices on one account at a time. Each device gets a name when logged in to help you tell them apart easily.</source>
- <target state="new">View and manage all your logged in devices. You can have up to 5 devices on one account at a time. Each device gets a name when logged in to help you tell them apart easily.</target>
- <note/>
- </trans-unit>
<trans-unit id="View app logs" xml:space="preserve">
<source>View app logs</source>
<target state="new">View app logs</target>
@@ -1799,26 +1732,21 @@ It does this by retrieving an address from a DNS over HTTPS (DoH) server and the
<target state="new">Yes, continue</target>
<note/>
</trans-unit>
- <trans-unit id="Yes, log out device" xml:space="preserve">
- <source>Yes, log out device</source>
- <target state="new">Yes, log out device</target>
- <note/>
- </trans-unit>
<trans-unit id="You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address." xml:space="preserve">
<source>You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address.</source>
<target state="new">You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address.</target>
<note/>
</trans-unit>
+ <trans-unit id="You are logged in with an invalid account number. Please log out and try another one." xml:space="preserve">
+ <source>You are logged in with an invalid account number. Please log out and try another one.</source>
+ <target state="new">You are logged in with an invalid account number. Please log out and try another one.</target>
+ <note/>
+ </trans-unit>
<trans-unit id="You can add more time via the account view or website to continue using the VPN." xml:space="preserve">
<source>You can add more time via the account view or website to continue using the VPN.</source>
<target state="new">You can add more time via the account view or website to continue using the VPN.</target>
<note/>
</trans-unit>
- <trans-unit id="You can now continue logging in on this device." xml:space="preserve">
- <source>You can now continue logging in on this device.</source>
- <target state="new">You can now continue logging in on this device.</target>
- <note/>
- </trans-unit>
<trans-unit id="You can use the &quot;restore purchases&quot; function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account." xml:space="preserve">
<source>You can use the "restore purchases" function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account.</source>
<target state="new">You can use the "restore purchases" function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account.</target>
@@ -1829,19 +1757,6 @@ It does this by retrieving an address from a DNS over HTTPS (DoH) server and the
<target state="new">You have %@ left on this account.</target>
<note/>
</trans-unit>
- <trans-unit id="You have a right to privacy. That’s why we never store activity logs, don’t ask for personal information, and encourage anonymous payments.&#10;&#10;In some situations, as outlined in our privacy policy, we might process personal data that you choose to send, for example if you email us.&#10;&#10;We strongly believe in retaining as little data as possible because we want you to remain anonymous." xml:space="preserve">
- <source>You have a right to privacy. That’s why we never store activity logs, don’t ask for personal information, and encourage anonymous payments.
-
-In some situations, as outlined in our privacy policy, we might process personal data that you choose to send, for example if you email us.
-
-We strongly believe in retaining as little data as possible because we want you to remain anonymous.</source>
- <target state="new">You have a right to privacy. That’s why we never store activity logs, don’t ask for personal information, and encourage anonymous payments.
-
-In some situations, as outlined in our privacy policy, we might process personal data that you choose to send, for example if you email us.
-
-We strongly believe in retaining as little data as possible because we want you to remain anonymous.</target>
- <note/>
- </trans-unit>
<trans-unit id="You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below." xml:space="preserve">
<source>You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below.</source>
<target state="new">You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below.</target>
@@ -1902,11 +1817,6 @@ We strongly believe in retaining as little data as possible because we want you
<target state="new">method</target>
<note/>
</trans-unit>
- <trans-unit id="value" xml:space="preserve">
- <source>value</source>
- <target state="new">value</target>
- <note/>
- </trans-unit>
<trans-unit id="“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.&#10;To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.&#10;Would you like to continue to enable “Local network sharing”?" xml:space="preserve">
<source>“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.
To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.
@@ -1918,38 +1828,6 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="en.lproj/Localizable.strings" source-language="en" target-language="en" datatype="plaintext">
- <header>
- <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
- </header>
- <body>
- <trans-unit id="A custom list with this name exists, please choose a unique name." xml:space="preserve">
- <source>A custom list with this name exists, please choose a unique name.</source>
- <target>A custom list with this name exists, please choose a unique name.</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Automatic" xml:space="preserve">
- <source>Automatic</source>
- <target>Automatic</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Name should be no longer than %i characters." xml:space="preserve">
- <source>Name should be no longer than %i characters.</source>
- <target>Name should be no longer than %i characters.</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Shadowsocks" xml:space="preserve">
- <source>Shadowsocks</source>
- <target>Shadowsocks</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Socks5" xml:space="preserve">
- <source>Socks5</source>
- <target>Socks5</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- </body>
- </file>
<file original="MullvadVPN/Supporting Files/en.lproj/InfoPlist.strings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
@@ -1989,41 +1867,4 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="PacketTunnel/en.lproj/Localizable.strings" source-language="en" target-language="en" datatype="plaintext">
- <header>
- <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
- </header>
- <body>
- <trans-unit id="%@ have been added to your account" xml:space="preserve">
- <source>%@ have been added to your account</source>
- <target>%@ have been added to your account</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Cannot complete the purchase" xml:space="preserve">
- <source>Cannot complete the purchase</source>
- <target>Cannot complete the purchase</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Cannot restore purchases" xml:space="preserve">
- <source>Cannot restore purchases</source>
- <target>Cannot restore purchases</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Restore purchases" xml:space="preserve">
- <source>Restore purchases</source>
- <target>Restore purchases</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Thanks for your purchase" xml:space="preserve">
- <source>Thanks for your purchase</source>
- <target>Thanks for your purchase</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- <trans-unit id="Your previous purchases have already been added to this account." xml:space="preserve">
- <source>Your previous purchases have already been added to this account.</source>
- <target>Your previous purchases have already been added to this account.</target>
- <note>No comment provided by engineer.</note>
- </trans-unit>
- </body>
- </file>
</xliff>
diff --git a/ios/translation/locales/fr.xliff b/ios/translation/locales/fr.xliff
new file mode 100644
index 0000000000..d7b744e51b
--- /dev/null
+++ b/ios/translation/locales/fr.xliff
@@ -0,0 +1,1870 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+ <file original="Assets/Localizable.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="%@" xml:space="preserve">
+ <source>%@</source>
+ <target state-qualifier="leveraged-mt">%@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ cannot be empty." xml:space="preserve">
+ <source>%@ cannot be empty.</source>
+ <target state-qualifier="leveraged-mt">%@ ne peut pas être vide.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ have been added to your account" xml:space="preserve">
+ <source>%@ have been added to your account</source>
+ <target state-qualifier="leveraged-mt">%@ a été ajouté à votre compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ left on this account" xml:space="preserve">
+ <source>%@ left on this account</source>
+ <target state-qualifier="leveraged-mt">%@ restant sur ce compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ were added to your account." xml:space="preserve">
+ <source>%@ were added to your account.</source>
+ <target state-qualifier="leveraged-mt">%@ a été ajouté à votre compte.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%d more..." xml:space="preserve">
+ <source>%d more...</source>
+ <target state-qualifier="leveraged-mt">%d de plus...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**&#10;&#10;DAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.&#10;&#10;By using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted)." xml:space="preserve">
+ <source>**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**
+
+DAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.
+
+By using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted).</source>
+ <target state-qualifier="leveraged-mt">**Attention : Ceci augmente le trafic réseau et affectera également la vitesse, la latence et l'utilisation de la batterie. À utiliser avec prudence sur des plans limités. *
+
+DAITA (Défense contre l'analyse du trafic guidée par AI) masque les patrons dans votre trafic VPN chiffré.
+
+En utilisant une IA sophistiquée, il est possible d'analyser le trafic des paquets de données entrants et sortants de votre appareil (même si le trafic est chiffré).</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="**Tap here** to see what’s new." xml:space="preserve">
+ <source>**Tap here** to see what’s new.</source>
+ <target state-qualifier="leveraged-mt">**Tapotez ici** pour voir les nouveautés.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="A custom list with this name exists, please choose a unique name." xml:space="preserve">
+ <source>A custom list with this name exists, please choose a unique name.</source>
+ <target state-qualifier="leveraged-mt">Une liste personnalisée avec ce nom existe, veuillez choisir un nom unique.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API access" xml:space="preserve">
+ <source>API access</source>
+ <target state-qualifier="leveraged-mt">Accès à l'API</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API could not be reached, save anyway?" xml:space="preserve">
+ <source>API could not be reached, save anyway?</source>
+ <target state-qualifier="leveraged-mt">L'API n'a pas pu être atteinte, enregistrer quand même ?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API reachable" xml:space="preserve">
+ <source>API reachable</source>
+ <target state-qualifier="leveraged-mt">API accessible</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API unreachable" xml:space="preserve">
+ <source>API unreachable</source>
+ <target state-qualifier="leveraged-mt">API injoignable</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About API access…" xml:space="preserve">
+ <source>About API access…</source>
+ <target state-qualifier="leveraged-mt">A propos de l'accès à l'API…</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Direct method..." xml:space="preserve">
+ <source>About Direct method...</source>
+ <target state-qualifier="leveraged-mt">À propos de la méthode Direct...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Encrypted DNS proxy method..." xml:space="preserve">
+ <source>About Encrypted DNS proxy method...</source>
+ <target state-qualifier="leveraged-mt">À propos de la méthode de proxy DNS chiffré...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Mullvad bridges method..." xml:space="preserve">
+ <source>About Mullvad bridges method...</source>
+ <target state-qualifier="leveraged-mt">À propos de la méthode des ponts Mullvad...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Server IP override..." xml:space="preserve">
+ <source>About Server IP override...</source>
+ <target state-qualifier="leveraged-mt">À propos du remplacement de l'IP du serveur...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account" xml:space="preserve">
+ <source>Account</source>
+ <target state-qualifier="leveraged-mt">Compte client</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account created" xml:space="preserve">
+ <source>Account created</source>
+ <target state-qualifier="leveraged-mt">Compte créé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account credit expires soon" xml:space="preserve">
+ <source>Account credit expires soon</source>
+ <target state-qualifier="leveraged-mt">Le crédit du compte expire bientôt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account credit has expired" xml:space="preserve">
+ <source>Account credit has expired</source>
+ <target state-qualifier="leveraged-mt">Le crédit du compte a expiré</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account deletion" xml:space="preserve">
+ <source>Account deletion</source>
+ <target state-qualifier="leveraged-mt">Suppression du compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account number" xml:space="preserve">
+ <source>Account number</source>
+ <target state-qualifier="leveraged-mt">Numéro de compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add" xml:space="preserve">
+ <source>Add</source>
+ <target state-qualifier="leveraged-mt">Ajouter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add 30 days" xml:space="preserve">
+ <source>Add 30 days</source>
+ <target state-qualifier="leveraged-mt">Ajouter 30 jours</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add 90 days" xml:space="preserve">
+ <source>Add 90 days</source>
+ <target state-qualifier="leveraged-mt">Ajouter 90 jours</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add Time" xml:space="preserve">
+ <source>Add Time</source>
+ <target state-qualifier="leveraged-mt">Ajouter une heure</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add a server" xml:space="preserve">
+ <source>Add a server</source>
+ <target state-qualifier="leveraged-mt">Ajouter un serveur</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add access method" xml:space="preserve">
+ <source>Add access method</source>
+ <target state-qualifier="leveraged-mt">Ajouter une méthode d'accès</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add locations" xml:space="preserve">
+ <source>Add locations</source>
+ <target state-qualifier="leveraged-mt">Ajouter des emplacements</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add new list" xml:space="preserve">
+ <source>Add new list</source>
+ <target state-qualifier="leveraged-mt">Ajouter une nouvelle liste</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add time" xml:space="preserve">
+ <source>Add time</source>
+ <target state-qualifier="leveraged-mt">Ajouter une heure</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Ads" xml:space="preserve">
+ <source>Ads</source>
+ <target state-qualifier="leveraged-mt">Annonces</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Adult content" xml:space="preserve">
+ <source>Adult content</source>
+ <target state-qualifier="leveraged-mt">Contenu adulte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All" xml:space="preserve">
+ <source>All</source>
+ <target state-qualifier="leveraged-mt">Tous</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All Providers" xml:space="preserve">
+ <source>All Providers</source>
+ <target state-qualifier="leveraged-mt">Tous les fournisseurs</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All locations" xml:space="preserve">
+ <source>All locations</source>
+ <target state-qualifier="leveraged-mt">Tous les emplacements</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Any" xml:space="preserve">
+ <source>Any</source>
+ <target state-qualifier="leveraged-mt">N'importe quel</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="App logs" xml:space="preserve">
+ <source>App logs</source>
+ <target state-qualifier="leveraged-mt">Journaux des applications</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="AppStore receipt is not found on disk." xml:space="preserve">
+ <source>AppStore receipt is not found on disk.</source>
+ <target state-qualifier="leveraged-mt">Le reçu de l'AppStore est introuvable sur le disque.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="At least one method needs to be enabled." xml:space="preserve">
+ <source>At least one method needs to be enabled.</source>
+ <target state-qualifier="leveraged-mt">Au moins une méthode doit être activée.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Authentication" xml:space="preserve">
+ <source>Authentication</source>
+ <target state-qualifier="leveraged-mt">Authentification</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Automatic" xml:space="preserve">
+ <source>Automatic</source>
+ <target state-qualifier="leveraged-mt">Automatique</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="BLOCKING INTERNET" xml:space="preserve">
+ <source>BLOCKING INTERNET</source>
+ <target state-qualifier="leveraged-mt">INTERNET DE BLOCKING</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Back to editing" xml:space="preserve">
+ <source>Back to editing</source>
+ <target state-qualifier="leveraged-mt">Retour à l'édition</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Blocked connection" xml:space="preserve">
+ <source>Blocked connection</source>
+ <target state-qualifier="leveraged-mt">Connexion bloquée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Blocking internet: Your time on this account has expired. To continue using the internet, please add more time or disconnect the VPN." xml:space="preserve">
+ <source>Blocking internet: Your time on this account has expired. To continue using the internet, please add more time or disconnect the VPN.</source>
+ <target state-qualifier="leveraged-mt">Blocage d'Internet: Votre temps sur ce compte a expiré. Pour continuer à utiliser Internet, veuillez ajouter plus de temps ou déconnecter le VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="By enabling &quot;Direct only&quot; you will have to manually select a server that is DAITA-enabled. Multihop won't automatically be used to enable DAITA with any server." xml:space="preserve">
+ <source>By enabling "Direct only" you will have to manually select a server that is DAITA-enabled. Multihop won't automatically be used to enable DAITA with any server.</source>
+ <target state-qualifier="leveraged-mt">En activant "Direct only", vous devrez sélectionner manuellement un serveur qui est activé par DAITA. Multihop ne sera pas automatiquement utilisé pour activer DAITA avec aucun serveur.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="By enabling &quot;Direct only&quot; you will have to manually select a server that is DAITA-enabled. This can cause you to end up in a blocked state until you have selected a compatible server in the &quot;Select location&quot; view." xml:space="preserve">
+ <source>By enabling "Direct only" you will have to manually select a server that is DAITA-enabled. This can cause you to end up in a blocked state until you have selected a compatible server in the "Select location" view.</source>
+ <target state-qualifier="leveraged-mt">En activant "Direct only", vous devrez sélectionner manuellement un serveur qui est activé par DAITA. Cela peut vous faire tomber dans un état bloqué jusqu'à ce que vous ayez sélectionné un serveur compatible dans la vue « Sélectionner un emplacement ».</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cancel" xml:space="preserve">
+ <source>Cancel</source>
+ <target state-qualifier="leveraged-mt">Abandonner</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot complete the purchase" xml:space="preserve">
+ <source>Cannot complete the purchase</source>
+ <target state-qualifier="leveraged-mt">Impossible de terminer l'achat</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot read the AppStore receipt from disk" xml:space="preserve">
+ <source>Cannot read the AppStore receipt from disk</source>
+ <target state-qualifier="leveraged-mt">Impossible de lire la réception de l'AppStore depuis le disque</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot refresh the AppStore receipt: %@" xml:space="preserve">
+ <source>Cannot refresh the AppStore receipt: %@</source>
+ <target state-qualifier="leveraged-mt">Impossible d'actualiser le reçu de l'AppStore : %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot restore purchases" xml:space="preserve">
+ <source>Cannot restore purchases</source>
+ <target state-qualifier="leveraged-mt">Impossible de restaurer les achats</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Checking account number" xml:space="preserve">
+ <source>Checking account number</source>
+ <target state-qualifier="leveraged-mt">Numéro de compte de la vérification</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cipher" xml:space="preserve">
+ <source>Cipher</source>
+ <target state-qualifier="leveraged-mt">Chiffre</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear" xml:space="preserve">
+ <source>Clear</source>
+ <target state-qualifier="leveraged-mt">Nettoyer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear all overrides" xml:space="preserve">
+ <source>Clear all overrides</source>
+ <target state-qualifier="leveraged-mt">Effacer toutes les surcharges</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear all overrides?" xml:space="preserve">
+ <source>Clear all overrides?</source>
+ <target state-qualifier="leveraged-mt">Effacer toutes les dérogations ?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clearing the imported overrides changes the server IPs, in the Select location view, back to default." xml:space="preserve">
+ <source>Clearing the imported overrides changes the server IPs, in the Select location view, back to default.</source>
+ <target state-qualifier="leveraged-mt">La suppression des surcharges importées modifie les adresses IP du serveur, dans la vue de l'emplacement de sélection, par défaut.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Client is not allowed to issue the request." xml:space="preserve">
+ <source>Client is not allowed to issue the request.</source>
+ <target state-qualifier="leveraged-mt">Le client n'est pas autorisé à émettre la requête.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Collapses this location." xml:space="preserve">
+ <source>Collapses this location.</source>
+ <target state-qualifier="leveraged-mt">Réduire cet emplacement.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Congrats!" xml:space="preserve">
+ <source>Congrats!</source>
+ <target state-qualifier="leveraged-mt">Félicitations !</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Connected" xml:space="preserve">
+ <source>Connected</source>
+ <target state-qualifier="leveraged-mt">Connecté</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Copy to pasteboard" xml:space="preserve">
+ <source>Copy to pasteboard</source>
+ <target state-qualifier="leveraged-mt">Copier dans le presse-papier</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Correct account number" xml:space="preserve">
+ <source>Correct account number</source>
+ <target state-qualifier="leveraged-mt">Numéro de compte correct</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Create" xml:space="preserve">
+ <source>Create</source>
+ <target state-qualifier="leveraged-mt">Créer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Create account" xml:space="preserve">
+ <source>Create account</source>
+ <target state-qualifier="leveraged-mt">Créer un compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating new account" xml:space="preserve">
+ <source>Creating new account</source>
+ <target state-qualifier="leveraged-mt">Création d'un nouveau compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating quantum secure connection" xml:space="preserve">
+ <source>Creating quantum secure connection</source>
+ <target state-qualifier="leveraged-mt">Création de la connexion quantique sécurisée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating secure connection" xml:space="preserve">
+ <source>Creating secure connection</source>
+ <target state-qualifier="leveraged-mt">Création d'une connexion sécurisée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom" xml:space="preserve">
+ <source>Custom</source>
+ <target state-qualifier="leveraged-mt">Personnalisé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom DNS" xml:space="preserve">
+ <source>Custom DNS</source>
+ <target state-qualifier="leveraged-mt">DNS personnalisé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom lists" xml:space="preserve">
+ <source>Custom lists</source>
+ <target state-qualifier="leveraged-mt">Listes personnalisées</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA" xml:space="preserve">
+ <source>DAITA</source>
+ <target state-qualifier="leveraged-mt">DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.&#10;It does this by carefully adding network noise and making all network packets the same size.&#10;Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.&#10;Attention: Be cautious if you have a limited data plan as this feature will increase your network traffic." xml:space="preserve">
+ <source>DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.
+It does this by carefully adding network noise and making all network packets the same size.
+Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.
+Attention: Be cautious if you have a limited data plan as this feature will increase your network traffic.</source>
+ <target state="needs-translation">DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.
+It does this by carefully adding network noise and making all network packets the same size.
+Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.
+Attention: Be cautious if you have a limited data plan as this feature will increase your network traffic.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA isn't available at the currently selected location. After enabling, please go to the &quot;Select location&quot; view and select a location that supports DAITA." xml:space="preserve">
+ <source>DAITA isn't available at the currently selected location. After enabling, please go to the "Select location" view and select a location that supports DAITA.</source>
+ <target state-qualifier="leveraged-mt">DAITA n'est pas disponible à l'emplacement actuellement sélectionné. Après l'activation, veuillez aller dans la vue "Sélectionner un emplacement" et sélectionner un emplacement qui prend en charge DAITA.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA isn't available on the current entry server. After enabling, please go to the &quot;Select location&quot; view and select an entry location that supports DAITA." xml:space="preserve">
+ <source>DAITA isn't available on the current entry server. After enabling, please go to the "Select location" view and select an entry location that supports DAITA.</source>
+ <target state-qualifier="leveraged-mt">DAITA n'est pas disponible sur le serveur d'entrée actuel. Après l'activation, veuillez aller dans la vue "Sélectionner un emplacement" et sélectionner un emplacement d'entrée qui prend en charge DAITA.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA-enabled" xml:space="preserve">
+ <source>DAITA-enabled</source>
+ <target state-qualifier="leveraged-mt">Activé par DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA: Multihop" xml:space="preserve">
+ <source>DAITA: Multihop</source>
+ <target state-qualifier="leveraged-mt">DAITA : Multihop</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DNS content blockers" xml:space="preserve">
+ <source>DNS content blockers</source>
+ <target state-qualifier="leveraged-mt">Blocages de contenu DNS</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DNS settings" xml:space="preserve">
+ <source>DNS settings</source>
+ <target state-qualifier="leveraged-mt">Paramètres DNS</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete" xml:space="preserve">
+ <source>Delete</source>
+ <target state-qualifier="leveraged-mt">Supprimez</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete Account" xml:space="preserve">
+ <source>Delete Account</source>
+ <target state-qualifier="leveraged-mt">Supprimer le compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete account" xml:space="preserve">
+ <source>Delete account</source>
+ <target state-qualifier="leveraged-mt">Supprimer le compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete list" xml:space="preserve">
+ <source>Delete list</source>
+ <target state-qualifier="leveraged-mt">Supprimer la liste</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete method" xml:space="preserve">
+ <source>Delete method</source>
+ <target state-qualifier="leveraged-mt">Méthode de suppression</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Deleting account..." xml:space="preserve">
+ <source>Deleting account...</source>
+ <target state-qualifier="leveraged-mt">Suppression du compte...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device is inactive" xml:space="preserve">
+ <source>Device is inactive</source>
+ <target state-qualifier="leveraged-mt">L'appareil est inactif</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device name" xml:space="preserve">
+ <source>Device name</source>
+ <target state-qualifier="leveraged-mt">Nom de l'appareil</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device name: %@" xml:space="preserve">
+ <source>Device name: %@</source>
+ <target state-qualifier="leveraged-mt">Nom de l'appareil : %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Direct" xml:space="preserve">
+ <source>Direct</source>
+ <target state-qualifier="leveraged-mt">Directement</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Direct only" xml:space="preserve">
+ <source>Direct only</source>
+ <target state-qualifier="leveraged-mt">Direct uniquement</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disable all content blockers to activate this setting." xml:space="preserve">
+ <source>Disable all content blockers to activate this setting.</source>
+ <target state-qualifier="leveraged-mt">Désactiver tous les bloqueurs de contenu pour activer ce paramètre.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disabled" xml:space="preserve">
+ <source>Disabled</source>
+ <target state-qualifier="leveraged-mt">Désactivé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disabling" xml:space="preserve">
+ <source>Disabling</source>
+ <target state-qualifier="leveraged-mt">Désactivation</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Discard changes" xml:space="preserve">
+ <source>Discard changes</source>
+ <target state-qualifier="leveraged-mt">Annuler les modifications</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disconnect" xml:space="preserve">
+ <source>Disconnect</source>
+ <target state-qualifier="leveraged-mt">Déconnecter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disconnecting" xml:space="preserve">
+ <source>Disconnecting</source>
+ <target state-qualifier="leveraged-mt">Déconnexion</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Done" xml:space="preserve">
+ <source>Done</source>
+ <target state-qualifier="leveraged-mt">Fait</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Don’t have an account number?" xml:space="preserve">
+ <source>Don’t have an account number?</source>
+ <target state-qualifier="leveraged-mt">Vous n'avez pas de numéro de compte ?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit custom list" xml:space="preserve">
+ <source>Edit custom list</source>
+ <target state-qualifier="leveraged-mt">Modifier la liste personnalisée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit lists" xml:space="preserve">
+ <source>Edit lists</source>
+ <target state-qualifier="leveraged-mt">Editer les listes</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit locations" xml:space="preserve">
+ <source>Edit locations</source>
+ <target state-qualifier="leveraged-mt">Modifier les emplacements</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit message" xml:space="preserve">
+ <source>Edit message</source>
+ <target state-qualifier="leveraged-mt">Modifier le message</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable" xml:space="preserve">
+ <source>Enable</source>
+ <target state-qualifier="leveraged-mt">Activer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable &quot;%@&quot;" xml:space="preserve">
+ <source>Enable "%@"</source>
+ <target state-qualifier="leveraged-mt">Activer «%@»</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable method" xml:space="preserve">
+ <source>Enable method</source>
+ <target state-qualifier="leveraged-mt">Activer la méthode</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enabling" xml:space="preserve">
+ <source>Enabling</source>
+ <target state-qualifier="leveraged-mt">Activation</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Encrypted DNS proxy" xml:space="preserve">
+ <source>Encrypted DNS proxy</source>
+ <target state-qualifier="leveraged-mt">Proxy DNS chiffré</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter IP" xml:space="preserve">
+ <source>Enter IP</source>
+ <target state-qualifier="leveraged-mt">Entrez l'adresse IP</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter voucher code" xml:space="preserve">
+ <source>Enter voucher code</source>
+ <target state-qualifier="leveraged-mt">Entrez le code du bon de réduction</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter your account number" xml:space="preserve">
+ <source>Enter your account number</source>
+ <target state-qualifier="leveraged-mt">Entrez votre numéro de compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Entry" xml:space="preserve">
+ <source>Entry</source>
+ <target state-qualifier="leveraged-mt">Entrée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Exit" xml:space="preserve">
+ <source>Exit</source>
+ <target state-qualifier="leveraged-mt">Quitter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Expands this location." xml:space="preserve">
+ <source>Expands this location.</source>
+ <target state-qualifier="leveraged-mt">Développe cet emplacement.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="FAQs &amp; Guides" xml:space="preserve">
+ <source>FAQs &amp; Guides</source>
+ <target state="needs-translation">FAQs &amp; Guides</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to connect to App store, please try again later." xml:space="preserve">
+ <source>Failed to connect to App store, please try again later.</source>
+ <target state-qualifier="leveraged-mt">Impossible de se connecter à l'App Store, veuillez réessayer plus tard.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to send" xml:space="preserve">
+ <source>Failed to send</source>
+ <target state-qualifier="leveraged-mt">Échec de l'envoi</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to send the receipt to server: %@" xml:space="preserve">
+ <source>Failed to send the receipt to server: %@</source>
+ <target state-qualifier="leveraged-mt">Impossible d'envoyer la réception au serveur: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to start the tunnel." xml:space="preserve">
+ <source>Failed to start the tunnel.</source>
+ <target state-qualifier="leveraged-mt">Impossible de démarrer le tunnel.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to start the tunnel: %@." xml:space="preserve">
+ <source>Failed to start the tunnel: %@.</source>
+ <target state-qualifier="leveraged-mt">Impossible de démarrer le tunnel : %@.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to stop the tunnel." xml:space="preserve">
+ <source>Failed to stop the tunnel.</source>
+ <target state-qualifier="leveraged-mt">Impossible d'arrêter le tunnel.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to stop the tunnel: %@." xml:space="preserve">
+ <source>Failed to stop the tunnel: %@.</source>
+ <target state-qualifier="leveraged-mt">Impossible d'arrêter le tunnel : %@.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to validate account number: %@" xml:space="preserve">
+ <source>Failed to validate account number: %@</source>
+ <target state-qualifier="leveraged-mt">Impossible de valider le numéro de compte : %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Fetching devices..." xml:space="preserve">
+ <source>Fetching devices...</source>
+ <target state-qualifier="leveraged-mt">Récupération des appareils...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Filter" xml:space="preserve">
+ <source>Filter</source>
+ <target state-qualifier="leveraged-mt">Filtre</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Filtered:" xml:space="preserve">
+ <source>Filtered:</source>
+ <target state-qualifier="leveraged-mt">Filtré :</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Gambling" xml:space="preserve">
+ <source>Gambling</source>
+ <target state-qualifier="leveraged-mt">Jeu</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Go ahead and start using the app to begin reclaiming your online privacy.&#10;To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools." xml:space="preserve">
+ <source>Go ahead and start using the app to begin reclaiming your online privacy.
+To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools.</source>
+ <target state="needs-translation">Go ahead and start using the app to begin reclaiming your online privacy.
+To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Go to login" xml:space="preserve">
+ <source>Go to login</source>
+ <target state-qualifier="leveraged-mt">Aller à la connexion</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Going to login will unblock the Internet on this device." xml:space="preserve">
+ <source>Going to login will unblock the Internet on this device.</source>
+ <target state-qualifier="leveraged-mt">Se connecter débloquera Internet sur cet appareil.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Got it!" xml:space="preserve">
+ <source>Got it!</source>
+ <target state-qualifier="leveraged-mt">Compris!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Here’s your account number. Save it!" xml:space="preserve">
+ <source>Here’s your account number. Save it!</source>
+ <target state-qualifier="leveraged-mt">Voici votre numéro de compte. Enregistrez-le !</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Hide account number" xml:space="preserve">
+ <source>Hide account number</source>
+ <target state-qualifier="leveraged-mt">Cacher le numéro de compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If an observer monitors these data packets, DAITA makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.&#10;&#10;DAITA does this by carefully adding network noise and making all network packets the same size.&#10;&#10;Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.&#10;" xml:space="preserve">
+ <source>If an observer monitors these data packets, DAITA makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.
+
+DAITA does this by carefully adding network noise and making all network packets the same size.
+
+Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.
+</source>
+ <target state-qualifier="leveraged-mt">Si un observateur surveille ces paquets de données, DAITA leur rend beaucoup plus difficile d'identifier les sites Web que vous visitez ou avec lesquels vous communiquez.
+
+DAITA le fait en ajoutant soigneusement du bruit du réseau et en faisant de tous les paquets du réseau la même taille.
+
+Tous nos serveurs ne sont pas activés par DAITA. Par conséquent, nous utilisons le multilien automatiquement pour activer DAITA avec n'importe quel serveur.
+</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If needed we will contact you at %@" xml:space="preserve">
+ <source>If needed we will contact you at %@</source>
+ <target state-qualifier="leveraged-mt">Si nécessaire, nous vous contacterons à %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you are having issues connecting to VPN servers, please contact support." xml:space="preserve">
+ <source>If you are having issues connecting to VPN servers, please contact support.</source>
+ <target state-qualifier="leveraged-mt">Si vous rencontrez des problèmes de connexion aux serveurs VPN, veuillez contacter le support.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.&#10;The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare." xml:space="preserve">
+ <source>If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.
+The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare.</source>
+ <target state="needs-translation">If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.
+The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you disconnect now, you won’t be able to secure your connection until the device is online." xml:space="preserve">
+ <source>If you disconnect now, you won’t be able to secure your connection until the device is online.</source>
+ <target state-qualifier="leveraged-mt">Si vous vous déconnectez maintenant, vous ne pourrez pas sécuriser votre connexion tant que l'appareil ne sera pas en ligne.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you exit the form and try again later, the information you already entered will still be here." xml:space="preserve">
+ <source>If you exit the form and try again later, the information you already entered will still be here.</source>
+ <target state-qualifier="leveraged-mt">Si vous quittez le formulaire et réessayez plus tard, les informations que vous avez déjà saisies seront toujours là.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you haven’t received additional VPN time after purchasing" xml:space="preserve">
+ <source>If you haven’t received additional VPN time after purchasing</source>
+ <target state-qualifier="leveraged-mt">Si vous n'avez pas reçu de temps VPN supplémentaire après l'achat</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email." xml:space="preserve">
+ <source>If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email.</source>
+ <target state-qualifier="leveraged-mt">Si vous rencontrez toujours des problèmes, vous pouvez envoyer un e-mail à notre assistance directement à **%@**. Veuillez joindre votre journal d'application à votre adresse e-mail.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import" xml:space="preserve">
+ <source>Import</source>
+ <target state-qualifier="leveraged-mt">Importation</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import %@ was successful, overrides are now active." xml:space="preserve">
+ <source>Import %@ was successful, overrides are now active.</source>
+ <target state-qualifier="leveraged-mt">Importation %@ réussie, les remplacements sont maintenant actifs.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import %@ was unsuccessful, please try again." xml:space="preserve">
+ <source>Import %@ was unsuccessful, please try again.</source>
+ <target state-qualifier="leveraged-mt">L'importation de %@ a échoué, veuillez réessayer.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import file" xml:space="preserve">
+ <source>Import file</source>
+ <target state-qualifier="leveraged-mt">Importer un fichier</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import files or text with the new IP addresses for the servers in the Select location view." xml:space="preserve">
+ <source>Import files or text with the new IP addresses for the servers in the Select location view.</source>
+ <target state-qualifier="leveraged-mt">Importer des fichiers ou du texte avec les nouvelles adresses IP pour les serveurs dans la vue Choisir un emplacement.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import successful" xml:space="preserve">
+ <source>Import successful</source>
+ <target state-qualifier="leveraged-mt">Importation réussie</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import via text" xml:space="preserve">
+ <source>Import via text</source>
+ <target state-qualifier="leveraged-mt">Importer par texte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="In use" xml:space="preserve">
+ <source>In use</source>
+ <target state-qualifier="leveraged-mt">En cours d'utilisation</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Include all networks" xml:space="preserve">
+ <source>Include all networks</source>
+ <target state-qualifier="leveraged-mt">Inclure tous les réseaux</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Internal error occurred. Settings will be reset to defaults and device logged out." xml:space="preserve">
+ <source>Internal error occurred. Settings will be reset to defaults and device logged out.</source>
+ <target state-qualifier="leveraged-mt">Une erreur interne est survenue. Les paramètres seront réinitialisés par défaut et le périphérique sera déconnecté.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Internal error." xml:space="preserve">
+ <source>Internal error.</source>
+ <target state-qualifier="leveraged-mt">Erreur interne.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid account" xml:space="preserve">
+ <source>Invalid account</source>
+ <target state-qualifier="leveraged-mt">Compte invalide</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid device state." xml:space="preserve">
+ <source>Invalid device state.</source>
+ <target state-qualifier="leveraged-mt">Etat de l'appareil non valide.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid purchase identifier." xml:space="preserve">
+ <source>Invalid purchase identifier.</source>
+ <target state-qualifier="leveraged-mt">Identifiant d'achat invalide.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="It looks like you have entered a Mullvad account number instead of a voucher code. Do you want to log in to an existing account?&#10;If so, click log out below to log in with the other account number." xml:space="preserve">
+ <source>It looks like you have entered a Mullvad account number instead of a voucher code. Do you want to log in to an existing account?
+If so, click log out below to log in with the other account number.</source>
+ <target state-qualifier="leveraged-mt">On dirait que vous avez entré un numéro de compte Mullvad au lieu d'un code coupon. Voulez-vous vous connecter à un compte existant ?
+Si c'est le cas, cliquez sur déconnecter ci-dessous pour vous connecter avec l'autre numéro de compte.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Language" xml:space="preserve">
+ <source>Language</source>
+ <target state-qualifier="leveraged-mt">Langue</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Last four digits of the account number are incorrect" xml:space="preserve">
+ <source>Last four digits of the account number are incorrect</source>
+ <target state-qualifier="leveraged-mt">Les quatre derniers chiffres du numéro de compte sont incorrects</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Last used account" xml:space="preserve">
+ <source>Last used account</source>
+ <target state-qualifier="leveraged-mt">Dernier compte utilisé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Learn about privacy" xml:space="preserve">
+ <source>Learn about privacy</source>
+ <target state-qualifier="leveraged-mt">En savoir plus sur la confidentialité</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Less than a day" xml:space="preserve">
+ <source>Less than a day</source>
+ <target state-qualifier="leveraged-mt">Moins d'un jour</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Local network sharing" xml:space="preserve">
+ <source>Local network sharing</source>
+ <target state-qualifier="leveraged-mt">Partage de réseau local</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Log in" xml:space="preserve">
+ <source>Log in</source>
+ <target state-qualifier="leveraged-mt">Se connecter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Log out" xml:space="preserve">
+ <source>Log out</source>
+ <target state-qualifier="leveraged-mt">Déconnexion</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logged in" xml:space="preserve">
+ <source>Logged in</source>
+ <target state-qualifier="leveraged-mt">Connecté</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logging in..." xml:space="preserve">
+ <source>Logging in...</source>
+ <target state-qualifier="leveraged-mt">Connexion en cours...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logging out..." xml:space="preserve">
+ <source>Logging out...</source>
+ <target state-qualifier="leveraged-mt">Déconnexion...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Login" xml:space="preserve">
+ <source>Login</source>
+ <target state-qualifier="leveraged-mt">Se connecter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Login failed" xml:space="preserve">
+ <source>Login failed</source>
+ <target state-qualifier="leveraged-mt">Échec de la connexion</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Make a purchase with StoreKit2" xml:space="preserve">
+ <source>Make a purchase with StoreKit2</source>
+ <target state-qualifier="leveraged-mt">Faites un achat avec StoreKit2</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Malware" xml:space="preserve">
+ <source>Malware</source>
+ <target state-qualifier="leveraged-mt">Malware</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage default and setup custom methods to access the Mullvad API." xml:space="preserve">
+ <source>Manage default and setup custom methods to access the Mullvad API.</source>
+ <target state-qualifier="leveraged-mt">Gérer les méthodes par défaut et configurer les méthodes personnalisées pour accéder à l'API Mullvad.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage default and setup custom methods to access the Mullvad API. " xml:space="preserve">
+ <source>Manage default and setup custom methods to access the Mullvad API. </source>
+ <target state-qualifier="leveraged-mt">Gérer les méthodes par défaut et configurer les méthodes personnalisées pour accéder à l'API Mullvad. </target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage devices" xml:space="preserve">
+ <source>Manage devices</source>
+ <target state-qualifier="leveraged-mt">Gérer les appareils</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Method settings" xml:space="preserve">
+ <source>Method settings</source>
+ <target state-qualifier="leveraged-mt">Paramètres de la méthode</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Mullvad bridges" xml:space="preserve">
+ <source>Mullvad bridges</source>
+ <target state-qualifier="leveraged-mt">Ponts de Mullvad</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop" xml:space="preserve">
+ <source>Multihop</source>
+ <target state-qualifier="leveraged-mt">Multilien</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop is being used to enable DAITA for your selected location." xml:space="preserve">
+ <source>Multihop is being used to enable DAITA for your selected location.</source>
+ <target state-qualifier="leveraged-mt">Le multilien est utilisé pour activer DAITA pour l'emplacement que vous avez sélectionné.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.&#10;This results in increased latency but increases anonymity online." xml:space="preserve">
+ <source>Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.
+This results in increased latency but increases anonymity online.</source>
+ <target state="needs-translation">Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.
+This results in increased latency but increases anonymity online.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop routes your traffic into one WireGuard server and out another, making it harder to trace. This results in increased latency but increases anonymity online." xml:space="preserve">
+ <source>Multihop routes your traffic into one WireGuard server and out another, making it harder to trace. This results in increased latency but increases anonymity online.</source>
+ <target state-qualifier="leveraged-mt">Multihop achemine votre trafic vers un serveur WireGuard et un autre, ce qui rend la traçabilité plus difficile. Cela entraîne une latence accrue mais augmente l'anonymat en ligne.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multiple validation errors occurred." xml:space="preserve">
+ <source>Multiple validation errors occurred.</source>
+ <target state-qualifier="leveraged-mt">Plusieurs erreurs de validation se sont produites.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NETWORK ISSUES" xml:space="preserve">
+ <source>NETWORK ISSUES</source>
+ <target state-qualifier="leveraged-mt">ÎLES DE RÉSEAU</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NEW DEVICE CREATED" xml:space="preserve">
+ <source>NEW DEVICE CREATED</source>
+ <target state-qualifier="leveraged-mt">NOUVEAU APPAREIL CRÉÉ</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NEW VERSION INSTALLED" xml:space="preserve">
+ <source>NEW VERSION INSTALLED</source>
+ <target state-qualifier="leveraged-mt">NOUVELLE VERSION INSTALLEE</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name" xml:space="preserve">
+ <source>Name</source>
+ <target state-qualifier="leveraged-mt">Nom</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name should be no longer than %i characters." xml:space="preserve">
+ <source>Name should be no longer than %i characters.</source>
+ <target state="needs-translation">Name should be no longer than %i characters.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Network error: %@" xml:space="preserve">
+ <source>Network error: %@</source>
+ <target state-qualifier="leveraged-mt">Erreur réseau : %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="New custom list" xml:space="preserve">
+ <source>New custom list</source>
+ <target state-qualifier="leveraged-mt">Nouvelle liste personnalisée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Next" xml:space="preserve">
+ <source>Next</source>
+ <target state-qualifier="leveraged-mt">Suivant</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No DAITA compatible servers match your location settings. Try changing location." xml:space="preserve">
+ <source>No DAITA compatible servers match your location settings. Try changing location.</source>
+ <target state-qualifier="leveraged-mt">Aucun serveur compatible DAITA ne correspond à vos paramètres de localisation. Essayez de changer d'emplacement.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No matching relays found, check your filter settings." xml:space="preserve">
+ <source>No matching relays found, check your filter settings.</source>
+ <target state-qualifier="leveraged-mt">Aucun relais correspondant, vérifiez les paramètres de votre filtre.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No matching servers" xml:space="preserve">
+ <source>No matching servers</source>
+ <target state-qualifier="leveraged-mt">Aucun serveur correspondant</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No network" xml:space="preserve">
+ <source>No network</source>
+ <target state-qualifier="leveraged-mt">Aucun réseau</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No overrides imported" xml:space="preserve">
+ <source>No overrides imported</source>
+ <target state-qualifier="leveraged-mt">Aucune substitution importée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No servers match your location filter. Try changing filter settings." xml:space="preserve">
+ <source>No servers match your location filter. Try changing filter settings.</source>
+ <target state-qualifier="leveraged-mt">Aucun serveur ne correspond à votre filtre de localisation. Essayez de changer les paramètres de filtre.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No servers match your settings, try changing server or other settings." xml:space="preserve">
+ <source>No servers match your settings, try changing server or other settings.</source>
+ <target state-qualifier="leveraged-mt">Aucun serveur ne correspond à vos paramètres, essayez de changer de serveur ou d'autres paramètres.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="OUT OF TIME" xml:space="preserve">
+ <source>OUT OF TIME</source>
+ <target state-qualifier="leveraged-mt">HORS DU TEMPS</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obfuscation" xml:space="preserve">
+ <source>Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Obfuscation</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connection would be blocked." xml:space="preserve">
+ <source>Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connection would be blocked.</source>
+ <target state-qualifier="leveraged-mt">L'obfuscation cache le trafic WireGuard à l'intérieur d'un autre protocole. Il peut être utilisé pour aider à contourner la censure et d'autres types de filtrage, où une simple connexion WireGuard serait bloquée.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obscured" xml:space="preserve">
+ <source>Obscured</source>
+ <target state-qualifier="leveraged-mt">Obscuré</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Off" xml:space="preserve">
+ <source>Off</source>
+ <target state-qualifier="leveraged-mt">Désactivé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On" xml:space="preserve">
+ <source>On</source>
+ <target state-qualifier="leveraged-mt">Activé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On some networks, where various types of censorship are being used, our server IP addresses are sometimes blocked." xml:space="preserve">
+ <source>On some networks, where various types of censorship are being used, our server IP addresses are sometimes blocked.</source>
+ <target state-qualifier="leveraged-mt">Sur certains réseaux, où différents types de censure sont utilisés, les adresses IP de notre serveur sont parfois bloquées.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On some networks, where various types of censorship are being used, the API servers might not be directly reachable." xml:space="preserve">
+ <source>On some networks, where various types of censorship are being used, the API servers might not be directly reachable.</source>
+ <target state-qualifier="leveraged-mt">Sur certains réseaux, où différents types de censure sont utilisés, les serveurs API peuvent ne pas être directement accessibles.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Open DAITA settings" xml:space="preserve">
+ <source>Open DAITA settings</source>
+ <target state-qualifier="leveraged-mt">Ouvrir les paramètres DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Optional" xml:space="preserve">
+ <source>Optional</source>
+ <target state-qualifier="leveraged-mt">Optionnel</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Out of time" xml:space="preserve">
+ <source>Out of time</source>
+ <target state-qualifier="leveraged-mt">Dépassement de temps</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Overrides active" xml:space="preserve">
+ <source>Overrides active</source>
+ <target state-qualifier="leveraged-mt">Substitutions activées</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Owned" xml:space="preserve">
+ <source>Owned</source>
+ <target state-qualifier="leveraged-mt">Possédé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Ownership" xml:space="preserve">
+ <source>Ownership</source>
+ <target state-qualifier="leveraged-mt">Propriété</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Paid until" xml:space="preserve">
+ <source>Paid until</source>
+ <target state-qualifier="leveraged-mt">Payé jusqu'au</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Password" xml:space="preserve">
+ <source>Password</source>
+ <target state-qualifier="leveraged-mt">Mot de passe</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Performs a connection test to a Mullvad API server via this access method." xml:space="preserve">
+ <source>Performs a connection test to a Mullvad API server via this access method.</source>
+ <target state-qualifier="leveraged-mt">Effectue un test de connexion à un serveur API Mullvad via cette méthode d'accès.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please enter a valid IPv4 or IPv6 address." xml:space="preserve">
+ <source>Please enter a valid IPv4 or IPv6 address.</source>
+ <target state-qualifier="leveraged-mt">Veuillez entrer une adresse IPv4 ou IPv6 valide.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please enter a valid port." xml:space="preserve">
+ <source>Please enter a valid port.</source>
+ <target state-qualifier="leveraged-mt">Veuillez entrer un port valide.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please retry by using the &quot;Restore purchases&quot; button." xml:space="preserve">
+ <source>Please retry by using the "Restore purchases" button.</source>
+ <target state-qualifier="leveraged-mt">Veuillez réessayer en utilisant le bouton "Restaurer les achats".</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Port" xml:space="preserve">
+ <source>Port</source>
+ <target state-qualifier="leveraged-mt">Port</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Port: %@" xml:space="preserve">
+ <source>Port: %@</source>
+ <target state-qualifier="leveraged-mt">Port : %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Previous" xml:space="preserve">
+ <source>Previous</source>
+ <target state-qualifier="leveraged-mt">Précédent</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Providers" xml:space="preserve">
+ <source>Providers</source>
+ <target state-qualifier="leveraged-mt">Fournisseurs</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Providers: %d" xml:space="preserve">
+ <source>Providers: %d</source>
+ <target state-qualifier="leveraged-mt">Fournisseurs : %d</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="QUIC" xml:space="preserve">
+ <source>QUIC</source>
+ <target state-qualifier="leveraged-mt">QUIQUE</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum resistance" xml:space="preserve">
+ <source>Quantum resistance</source>
+ <target state-qualifier="leveraged-mt">Résistance quantique</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum secure connection" xml:space="preserve">
+ <source>Quantum secure connection</source>
+ <target state-qualifier="leveraged-mt">Connexion sécurisée Quantum</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum secure connection. Connected to %@, %@" xml:space="preserve">
+ <source>Quantum secure connection. Connected to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Connexion sécurisée quantique. Connectée à %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum-resistant tunnel" xml:space="preserve">
+ <source>Quantum-resistant tunnel</source>
+ <target state-qualifier="leveraged-mt">Tunnel résistant aux Quantumes</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Reconnecting" xml:space="preserve">
+ <source>Reconnecting</source>
+ <target state-qualifier="leveraged-mt">Reconnexion</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Reconnecting to %@, %@" xml:space="preserve">
+ <source>Reconnecting to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Reconnexion à %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Redeem" xml:space="preserve">
+ <source>Redeem</source>
+ <target state-qualifier="leveraged-mt">Redeem</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Redeem voucher" xml:space="preserve">
+ <source>Redeem voucher</source>
+ <target state-qualifier="leveraged-mt">Redeem voucher</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Refund last purchase with StoreKit2" xml:space="preserve">
+ <source>Refund last purchase with StoreKit2</source>
+ <target state-qualifier="leveraged-mt">Rembourser le dernier achat avec StoreKit2</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Refund successful" xml:space="preserve">
+ <source>Refund successful</source>
+ <target state-qualifier="leveraged-mt">Remboursement réussi</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Remove last used account" xml:space="preserve">
+ <source>Remove last used account</source>
+ <target state-qualifier="leveraged-mt">Supprimer le dernier compte utilisé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Rented" xml:space="preserve">
+ <source>Rented</source>
+ <target state-qualifier="leveraged-mt">Loué</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Report a problem" xml:space="preserve">
+ <source>Report a problem</source>
+ <target state-qualifier="leveraged-mt">Signaler un problème</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Required" xml:space="preserve">
+ <source>Required</source>
+ <target state-qualifier="leveraged-mt">Requis</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Restore purchases" xml:space="preserve">
+ <source>Restore purchases</source>
+ <target state-qualifier="leveraged-mt">Restaurer les achats</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Save" xml:space="preserve">
+ <source>Save</source>
+ <target state-qualifier="leveraged-mt">Enregistrer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Save anyway" xml:space="preserve">
+ <source>Save anyway</source>
+ <target state-qualifier="leveraged-mt">Enregistrer quand même</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Saving changes..." xml:space="preserve">
+ <source>Saving changes...</source>
+ <target state-qualifier="leveraged-mt">Enregistrement des modifications...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Search for..." xml:space="preserve">
+ <source>Search for...</source>
+ <target state-qualifier="leveraged-mt">Rechercher...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Secure connection. Connected to %@, %@" xml:space="preserve">
+ <source>Secure connection. Connected to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Connexion sécurisée. Connectée à %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Select location" xml:space="preserve">
+ <source>Select location</source>
+ <target state-qualifier="leveraged-mt">Sélectionnez un emplacement</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Selected" xml:space="preserve">
+ <source>Selected</source>
+ <target state-qualifier="leveraged-mt">Sélectionnés</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Send" xml:space="preserve">
+ <source>Send</source>
+ <target state-qualifier="leveraged-mt">Envoyer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Send anyway" xml:space="preserve">
+ <source>Send anyway</source>
+ <target state-qualifier="leveraged-mt">Envoyer quand même</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Sending..." xml:space="preserve">
+ <source>Sending...</source>
+ <target state-qualifier="leveraged-mt">Envoi...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Sent" xml:space="preserve">
+ <source>Sent</source>
+ <target state-qualifier="leveraged-mt">Envoyé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server" xml:space="preserve">
+ <source>Server</source>
+ <target state-qualifier="leveraged-mt">Serveur</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server IP Override" xml:space="preserve">
+ <source>Server IP Override</source>
+ <target state-qualifier="leveraged-mt">Surcharge IP du serveur</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server IP override" xml:space="preserve">
+ <source>Server IP override</source>
+ <target state-qualifier="leveraged-mt">Surcharge IP du serveur</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server details" xml:space="preserve">
+ <source>Server details</source>
+ <target state-qualifier="leveraged-mt">Détails du serveur</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Setting: DAITA" xml:space="preserve">
+ <source>Setting: DAITA</source>
+ <target state-qualifier="leveraged-mt">Paramètre: DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Setting: Obfuscation" xml:space="preserve">
+ <source>Setting: Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Paramètre: Obfuscation</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Settings" xml:space="preserve">
+ <source>Settings</source>
+ <target state-qualifier="leveraged-mt">Réglages</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Settings migration error" xml:space="preserve">
+ <source>Settings migration error</source>
+ <target state-qualifier="leveraged-mt">Erreur de migration des paramètres</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Shadowsocks" xml:space="preserve">
+ <source>Shadowsocks</source>
+ <target state-qualifier="leveraged-mt">Chaussettes fantômes</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Show account number" xml:space="preserve">
+ <source>Show account number</source>
+ <target state-qualifier="leveraged-mt">Afficher le numéro de compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Social media" xml:space="preserve">
+ <source>Social media</source>
+ <target state-qualifier="leveraged-mt">Réseaux sociaux</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Socks5" xml:space="preserve">
+ <source>Socks5</source>
+ <target state-qualifier="leveraged-mt">Socks5</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Start using the app" xml:space="preserve">
+ <source>Start using the app</source>
+ <target state-qualifier="leveraged-mt">Commencer à utiliser l'application</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Super!" xml:space="preserve">
+ <source>Super!</source>
+ <target state-qualifier="leveraged-mt">Super!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Switch location" xml:space="preserve">
+ <source>Switch location</source>
+ <target state-qualifier="leveraged-mt">Changer d'emplacement</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="TUNNEL ERROR" xml:space="preserve">
+ <source>TUNNEL ERROR</source>
+ <target state-qualifier="leveraged-mt">ERREUR DE TUNNEL</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Tap **Edit** to add at least one DNS server." xml:space="preserve">
+ <source>Tap **Edit** to add at least one DNS server.</source>
+ <target state-qualifier="leveraged-mt">Appuyez sur **Modifier** pour ajouter au moins un serveur DNS.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Test method" xml:space="preserve">
+ <source>Test method</source>
+ <target state-qualifier="leveraged-mt">Méthode de test</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Testing..." xml:space="preserve">
+ <source>Testing...</source>
+ <target state-qualifier="leveraged-mt">Test en cours...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks for your purchase" xml:space="preserve">
+ <source>Thanks for your purchase</source>
+ <target state-qualifier="leveraged-mt">Merci pour votre achat</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks!" xml:space="preserve">
+ <source>Thanks!</source>
+ <target state-qualifier="leveraged-mt">Merci!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server directly." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server directly.</source>
+ <target state-qualifier="leveraged-mt">L'application communique directement avec un serveur API Mullvad.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server via a Mullvad bridge server." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server via a Mullvad bridge server.</source>
+ <target state-qualifier="leveraged-mt">L'application communique avec un serveur API Mullvad via un pont de connexion Mullvad.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server via a proxy address." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server via a proxy address.</source>
+ <target state-qualifier="leveraged-mt">L'application communique avec un serveur API Mullvad via une adresse proxy.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations." xml:space="preserve">
+ <source>The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations.</source>
+ <target state-qualifier="leveraged-mt">L'application a besoin de communiquer avec un serveur API Mullvad pour vous connecter, récupérer les listes de serveurs et d'autres opérations critiques.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app will test the method before saving." xml:space="preserve">
+ <source>The app will test the method before saving.</source>
+ <target state-qualifier="leveraged-mt">L'application va tester la méthode avant d'enregistrer.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The automatic setting will randomly choose from the valid port ranges shown below.&#10;The custom port can be any value inside the valid ranges:&#10;%@" xml:space="preserve">
+ <source>The automatic setting will randomly choose from the valid port ranges shown below.
+The custom port can be any value inside the valid ranges:
+%@</source>
+ <target state-qualifier="leveraged-mt">Le réglage automatique choisira aléatoirement parmi les plages de ports valides indiquées ci-dessous.
+Le port personnalisé peut ętre n'importe quelle valeur dans les plages valides :
+%@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The entry and exit servers cannot be the same. Try changing one to a new server or location." xml:space="preserve">
+ <source>The entry and exit servers cannot be the same. Try changing one to a new server or location.</source>
+ <target state-qualifier="leveraged-mt">Les serveurs d'entrée et de sortie ne peuvent pas être identiques. Essayez d'en changer un sur un nouveau serveur ou un nouvel emplacement.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings." xml:space="preserve">
+ <source>The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings.</source>
+ <target state-qualifier="leveraged-mt">Le serveur d'entrée pour le multisaut est actuellement remplacé par DAITA. Pour sélectionner un serveur d'entrée, veuillez d'abord activer "Direct only" ou désactiver "DAITA" dans les paramètres.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The payment request was cancelled." xml:space="preserve">
+ <source>The payment request was cancelled.</source>
+ <target state-qualifier="leveraged-mt">La demande de paiement a été annulée.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The selected WireGuard port is not supported, please change it under **VPN settings**." xml:space="preserve">
+ <source>The selected WireGuard port is not supported, please change it under **VPN settings**.</source>
+ <target state-qualifier="leveraged-mt">Le port WireGuard sélectionné n'est pas pris en charge, veuillez le modifier dans les **paramètres VPN**.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out." xml:space="preserve">
+ <source>The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out.</source>
+ <target state-qualifier="leveraged-mt">La version des paramètres stockés sur l'appareil n'est pas reconnue. Les paramètres seront réinitialisés par défaut et l'appareil sera déconnecté.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This can be useful if the API is censored but Mullvad’s bridge servers are not." xml:space="preserve">
+ <source>This can be useful if the API is censored but Mullvad’s bridge servers are not.</source>
+ <target state-qualifier="leveraged-mt">Cela peut être utile si l’API est censurée mais que les serveurs de pont de Mullvad ne le sont pas.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This can be useful when you are not affected by censorship." xml:space="preserve">
+ <source>This can be useful when you are not affected by censorship.</source>
+ <target state-qualifier="leveraged-mt">Cela peut être utile lorsque vous n'êtes pas affecté par la censure.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This device is not allowed to make the payment." xml:space="preserve">
+ <source>This device is not allowed to make the payment.</source>
+ <target state-qualifier="leveraged-mt">Cet appareil n'est pas autorisé à effectuer le paiement.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.&#10;Attention: toggling “Local network sharing” requires restarting the VPN connection." xml:space="preserve">
+ <source>This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.
+Attention: toggling “Local network sharing” requires restarting the VPN connection.</source>
+ <target state-qualifier="leveraged-mt">Cette fonctionnalité permet d'accéder à d'autres périphériques du réseau local, tels que le partage, l'impression, le streaming, etc.
+Attention : activer le « Partage de réseau local » nécessite un redémarrage de la connexion VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods." xml:space="preserve">
+ <source>This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods.</source>
+ <target state-qualifier="leveraged-mt">Cette fonctionnalité vous permet de contourner cette censure en ajoutant des moyens personnalisés d'accéder à l'API via des mandataires et des méthodes similaires.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.&#10;It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.&#10;This extra step uses approximately 500 kiB of traffic every time a new tunnel is established." xml:space="preserve">
+ <source>This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.
+It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.
+This extra step uses approximately 500 kiB of traffic every time a new tunnel is established.</source>
+ <target state="needs-translation">This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.
+It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.
+This extra step uses approximately 500 kiB of traffic every time a new tunnel is established.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.&#10;You can have up to 5 devices logged in on one Mullvad account.&#10;If you log out, the device and the device name is removed. When you log back in again, the device will get a new name." xml:space="preserve">
+ <source>This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.
+You can have up to 5 devices logged in on one Mullvad account.
+If you log out, the device and the device name is removed. When you log back in again, the device will get a new name.</source>
+ <target state="needs-translation">This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.
+You can have up to 5 devices logged in on one Mullvad account.
+If you log out, the device and the device name is removed. When you log back in again, the device will get a new name.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This logs out all devices using this account and all VPN access will be denied even if there is time left on the account. Enter the last 4 digits of the account number and hit &quot;Delete account&quot; if you really want to delete the account:" xml:space="preserve">
+ <source>This logs out all devices using this account and all VPN access will be denied even if there is time left on the account. Enter the last 4 digits of the account number and hit "Delete account" if you really want to delete the account:</source>
+ <target state-qualifier="leveraged-mt">Ceci déconnecte tous les appareils utilisant ce compte et tous les accès VPN seront refusés, même s'il reste du temps sur le compte. Entrez les 4 derniers chiffres du numéro de compte et cliquez sur "Supprimer le compte" si vous voulez vraiment supprimer le compte :</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This voucher code has already been used." xml:space="preserve">
+ <source>This voucher code has already been used.</source>
+ <target state-qualifier="leveraged-mt">Ce bon de réduction a déjà été utilisé.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Time left: %@" xml:space="preserve">
+ <source>Time left: %@</source>
+ <target state-qualifier="leveraged-mt">Temps restant : %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To assist you better, please write in English or Swedish and include which country you are connecting from." xml:space="preserve">
+ <source>To assist you better, please write in English or Swedish and include which country you are connecting from.</source>
+ <target state-qualifier="leveraged-mt">Pour mieux vous aider, écrivez en anglais ou en suédois et indiquez le pays depuis lequel vous vous connectez.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To circumvent this you can import a file or a text, provided by our support team, with new IP addresses that override the default addresses of the servers in the Select location view." xml:space="preserve">
+ <source>To circumvent this you can import a file or a text, provided by our support team, with new IP addresses that override the default addresses of the servers in the Select location view.</source>
+ <target state-qualifier="leveraged-mt">Pour éviter cela, vous pouvez importer un fichier ou un texte fourni par notre équipe de support. avec de nouvelles adresses IP qui remplacent les adresses par défaut des serveurs dans la vue Choisir un emplacement.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To create a custom list, tap on &quot;...&quot; " xml:space="preserve">
+ <source>To create a custom list, tap on "..." </source>
+ <target state-qualifier="leveraged-mt">Pour créer une liste personnalisée, appuyez sur "..." </target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To enable this setting, add at least one server." xml:space="preserve">
+ <source>To enable this setting, add at least one server.</source>
+ <target state-qualifier="leveraged-mt">Pour activer ce paramètre, ajoutez au moins un serveur.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel." xml:space="preserve">
+ <source>To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel.</source>
+ <target state-qualifier="leveraged-mt">Pour vous aider plus efficacement, le fichier journal de votre application sera joint à ce message. Vos données resteront sécurisées et privées, car elles sont anonymes avant d'être envoyées par un canal chiffré.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To start using the app, you first need to add time to your account. Either buy credit on our website or redeem a voucher." xml:space="preserve">
+ <source>To start using the app, you first need to add time to your account. Either buy credit on our website or redeem a voucher.</source>
+ <target state-qualifier="leveraged-mt">Pour commencer à utiliser l'application, vous devez d'abord ajouter du temps à votre compte. Achetez du crédit sur notre site Web ou utilisez un bon d'achat.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Too many devices" xml:space="preserve">
+ <source>Too many devices</source>
+ <target state-qualifier="leveraged-mt">Trop d'appareils</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Too many devices registered with account" xml:space="preserve">
+ <source>Too many devices registered with account</source>
+ <target state-qualifier="leveraged-mt">Trop d'appareils enregistrés avec le compte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Trackers" xml:space="preserve">
+ <source>Trackers</source>
+ <target state-qualifier="leveraged-mt">Trackers</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Try again" xml:space="preserve">
+ <source>Try again</source>
+ <target state-qualifier="leveraged-mt">Réessayez</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Tunnel is unset." xml:space="preserve">
+ <source>Tunnel is unset.</source>
+ <target state-qualifier="leveraged-mt">Le tunnel est désactivé.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Type" xml:space="preserve">
+ <source>Type</source>
+ <target state-qualifier="leveraged-mt">Type de texte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="UDP-over-TCP" xml:space="preserve">
+ <source>UDP-over-TCP</source>
+ <target state-qualifier="leveraged-mt">UDP-sur-TCP</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to authenticate account. Please log out and log back in." xml:space="preserve">
+ <source>Unable to authenticate account. Please log out and log back in.</source>
+ <target state-qualifier="leveraged-mt">Impossible d'authentifier le compte. Veuillez vous déconnecter et vous reconnecter.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection after update. Please disconnect and reconnect." xml:space="preserve">
+ <source>Unable to start tunnel connection after update. Please disconnect and reconnect.</source>
+ <target state-qualifier="leveraged-mt">Impossible de démarrer la connexion du tunnel après la mise à jour. Veuillez vous déconnecter et vous reconnecter.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection. Please send a problem report." xml:space="preserve">
+ <source>Unable to start tunnel connection. Please send a problem report.</source>
+ <target state-qualifier="leveraged-mt">Impossible de démarrer la connexion au tunnel. Veuillez envoyer un rapport de problème.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unexpected server response: %1$@ (HTTP status: %2$d)" xml:space="preserve">
+ <source>Unexpected server response: %1$@ (HTTP status: %2$d)</source>
+ <target state-qualifier="leveraged-mt">Réponse inattendue du serveur : %1$@ (statut HTTP : %2$d)</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unexpected server response: %d" xml:space="preserve">
+ <source>Unexpected server response: %d</source>
+ <target state-qualifier="leveraged-mt">Réponse inattendue du serveur : %d</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unknown error." xml:space="preserve">
+ <source>Unknown error.</source>
+ <target state-qualifier="leveraged-mt">Erreur inconnue.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unsecured connection" xml:space="preserve">
+ <source>Unsecured connection</source>
+ <target state-qualifier="leveraged-mt">Connexion non sécurisée</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Use custom DNS server" xml:space="preserve">
+ <source>Use custom DNS server</source>
+ <target state-qualifier="leveraged-mt">Utiliser un serveur DNS personnalisé</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Username" xml:space="preserve">
+ <source>Username</source>
+ <target state-qualifier="leveraged-mt">Nom d'utilisateur</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="VPN settings" xml:space="preserve">
+ <source>VPN settings</source>
+ <target state-qualifier="leveraged-mt">Paramètres VPN</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Valid range: 1 - 65535" xml:space="preserve">
+ <source>Valid range: 1 - 65535</source>
+ <target state-qualifier="leveraged-mt">Valid range: 1 - 65535</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Verifying voucher..." xml:space="preserve">
+ <source>Verifying voucher...</source>
+ <target state-qualifier="leveraged-mt">Vérification du bon de réduction...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="View app logs" xml:space="preserve">
+ <source>View app logs</source>
+ <target state-qualifier="leveraged-mt">Voir les journaux des applications</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Voucher code is invalid." xml:space="preserve">
+ <source>Voucher code is invalid.</source>
+ <target state-qualifier="leveraged-mt">Le code du bon de réduction est invalide.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Voucher was successfully redeemed." xml:space="preserve">
+ <source>Voucher was successfully redeemed.</source>
+ <target state-qualifier="leveraged-mt">Le bon a été utilisé avec succès.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection." xml:space="preserve">
+ <source>Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection.</source>
+ <target state-qualifier="leveraged-mt">Attention : Le bloqueur de logiciels malveillants n'est pas un anti-virus et ne doit pas être traité en tant que tel, il ne s'agit que d'une couche supplémentaire de protection.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="We are having some issues, please try again later" xml:space="preserve">
+ <source>We are having some issues, please try again later</source>
+ <target state-qualifier="leveraged-mt">Nous avons quelques problèmes, veuillez réessayer plus tard</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="We will look into this." xml:space="preserve">
+ <source>We will look into this.</source>
+ <target state-qualifier="leveraged-mt">Nous allons nous pencher sur cette question.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Welcome, this device is now called **%@**. For more details see the info button in Account." xml:space="preserve">
+ <source>Welcome, this device is now called **%@**. For more details see the info button in Account.</source>
+ <target state-qualifier="leveraged-mt">Bienvenue, cet appareil s'appelle maintenant **%@**. Pour plus de détails, consultez le bouton info dans le compte client.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="What's new" xml:space="preserve">
+ <source>What's new</source>
+ <target state-qualifier="leveraged-mt">Quoi de neuf</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more. &#10;This might cause issues on certain websites, services, and apps.&#10;Attention: this setting cannot be used in combination with **Use custom DNS server**." xml:space="preserve">
+ <source>When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more.
+This might cause issues on certain websites, services, and apps.
+Attention: this setting cannot be used in combination with **Use custom DNS server**.</source>
+ <target state="needs-translation">When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more.
+This might cause issues on certain websites, services, and apps.
+Attention: this setting cannot be used in combination with **Use custom DNS server**.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="When using DAITA, one provider with DAITA-enabled servers is required." xml:space="preserve">
+ <source>When using DAITA, one provider with DAITA-enabled servers is required.</source>
+ <target state-qualifier="leveraged-mt">Lors de l'utilisation de DAITA, un fournisseur de serveurs activés par DAITA est requis.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server." xml:space="preserve">
+ <source>Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server.</source>
+ <target state-qualifier="leveraged-mt">À quel port TCP le protocole d'obfuscation UDP-over-TCP doit se connecter sur le serveur VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="WireGuard Obfuscation" xml:space="preserve">
+ <source>WireGuard Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Obfuscation WireGuard</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="WireGuard ports" xml:space="preserve">
+ <source>WireGuard ports</source>
+ <target state-qualifier="leveraged-mt">Ports WireGuard</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Direct&quot; method, the app communicates with a Mullvad API server directly without any intermediate proxies." xml:space="preserve">
+ <source>With the "Direct" method, the app communicates with a Mullvad API server directly without any intermediate proxies.</source>
+ <target state-qualifier="leveraged-mt">Avec la méthode "Direct", l'application communique directement avec un serveur API Mullvad sans proxys intermédiaires.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Encrypted DNS proxy&quot; method, the app will communicate with our Mullvad API through a proxy address.&#10;It does this by retrieving an address from a DNS over HTTPS (DoH) server and then using that to reach our API servers." xml:space="preserve">
+ <source>With the "Encrypted DNS proxy" method, the app will communicate with our Mullvad API through a proxy address.
+It does this by retrieving an address from a DNS over HTTPS (DoH) server and then using that to reach our API servers.</source>
+ <target state-qualifier="leveraged-mt">Avec la méthode "proxy DNS chiffré", l'application communiquera avec notre API Mullvad via une adresse proxy.
+Il fait cela en récupérant une adresse depuis un DNS via un serveur HTTPS (DoH) puis en utilisant cela pour atteindre nos serveurs API.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Mullvad bridges&quot; method, the app communicates with a Mullvad API server via a Mullvad bridge server. It does this by sending the traffic obfuscated by Shadowsocks." xml:space="preserve">
+ <source>With the "Mullvad bridges" method, the app communicates with a Mullvad API server via a Mullvad bridge server. It does this by sending the traffic obfuscated by Shadowsocks.</source>
+ <target state-qualifier="leveraged-mt">Avec la méthode "pont Mullvad", l'application communique avec un serveur API Mullvad via un serveur pont Mullvad. Il fait cela en envoyant le trafic obscurci par Shadowsocks.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Yes, continue" xml:space="preserve">
+ <source>Yes, continue</source>
+ <target state-qualifier="leveraged-mt">Oui, continuer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address." xml:space="preserve">
+ <source>You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address.</source>
+ <target state-qualifier="leveraged-mt">Vous êtes sur le point d'envoyer le rapport de problème sans que nous puissions vous répondre. Si vous voulez une réponse à votre signalement vous devrez entrer une adresse e-mail.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You are logged in with an invalid account number. Please log out and try another one." xml:space="preserve">
+ <source>You are logged in with an invalid account number. Please log out and try another one.</source>
+ <target state-qualifier="leveraged-mt">Vous êtes connecté avec un numéro de compte invalide. Veuillez vous déconnecter et essayer un autre.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You can add more time via the account view or website to continue using the VPN." xml:space="preserve">
+ <source>You can add more time via the account view or website to continue using the VPN.</source>
+ <target state-qualifier="leveraged-mt">Vous pouvez ajouter plus de temps via la vue du compte ou le site Web pour continuer à utiliser le VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You can use the &quot;restore purchases&quot; function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account." xml:space="preserve">
+ <source>You can use the "restore purchases" function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account.</source>
+ <target state-qualifier="leveraged-mt">Vous pouvez utiliser la fonction "restaurer les achats" pour vérifier les paiements effectués via les services Apple. S'il y a un paiement qui n'a pas été crédité, il ajoutera le temps au compte actuellement connecté à Mullvad.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have %@ left on this account." xml:space="preserve">
+ <source>You have %@ left on this account.</source>
+ <target state-qualifier="leveraged-mt">Il vous reste %@ sur ce compte.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below." xml:space="preserve">
+ <source>You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below.</source>
+ <target state-qualifier="leveraged-mt">Il ne vous reste plus de temps VPN sur ce compte. Achetez du crédit sur notre site Web ou effectuez un achat dans l'application via le bouton **Ajouter du temps** ci-dessous.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have no more VPN time left on this account. To add more, you will need to disconnect and access the Internet with an unsecure connection." xml:space="preserve">
+ <source>You have no more VPN time left on this account. To add more, you will need to disconnect and access the Internet with an unsecure connection.</source>
+ <target state-qualifier="leveraged-mt">Il ne vous reste plus de temps VPN sur ce compte. Pour en ajouter plus, vous devrez vous déconnecter et accéder à Internet avec une connexion non sécurisée.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have one day left on this account. Please add more time to continue using the VPN." xml:space="preserve">
+ <source>You have one day left on this account. Please add more time to continue using the VPN.</source>
+ <target state-qualifier="leveraged-mt">Il vous reste un jour sur ce compte. Veuillez ajouter plus de temps pour continuer à utiliser le VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have removed this device. To connect again, you will need to log back in." xml:space="preserve">
+ <source>You have removed this device. To connect again, you will need to log back in.</source>
+ <target state-qualifier="leveraged-mt">Vous avez supprimé cet appareil. Pour vous reconnecter, vous devrez vous reconnecter.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have unsaved changes." xml:space="preserve">
+ <source>You have unsaved changes.</source>
+ <target state-qualifier="leveraged-mt">Vous avez des modifications non enregistrées.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your device is offline. The tunnel will automatically connect once your device is back online." xml:space="preserve">
+ <source>Your device is offline. The tunnel will automatically connect once your device is back online.</source>
+ <target state-qualifier="leveraged-mt">Votre appareil est hors ligne. Le tunnel se connectera automatiquement une fois que votre appareil sera de nouveau connecté.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your device is offline. Try connecting again when the device has access to Internet." xml:space="preserve">
+ <source>Your device is offline. Try connecting again when the device has access to Internet.</source>
+ <target state-qualifier="leveraged-mt">Votre appareil est hors ligne. Essayez de vous connecter à nouveau lorsque l'appareil a accès à Internet.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your email (optional)" xml:space="preserve">
+ <source>Your email (optional)</source>
+ <target state-qualifier="leveraged-mt">Votre adresse e-mail (facultatif)</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your previous purchases have already been added to this account." xml:space="preserve">
+ <source>Your previous purchases have already been added to this account.</source>
+ <target state-qualifier="leveraged-mt">Vos achats précédents ont déjà été ajoutés à ce compte.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your purchase was successfully refunded." xml:space="preserve">
+ <source>Your purchase was successfully refunded.</source>
+ <target state-qualifier="leveraged-mt">Votre achat a été remboursé avec succès.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You’re all set!!" xml:space="preserve">
+ <source>You’re all set!!</source>
+ <target state-qualifier="leveraged-mt">Vous êtes prêt !!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="method" xml:space="preserve">
+ <source>method</source>
+ <target state-qualifier="leveraged-mt">Méthode</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.&#10;To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.&#10;Would you like to continue to enable “Local network sharing”?" xml:space="preserve">
+ <source>“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.
+To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.
+Would you like to continue to enable “Local network sharing”?</source>
+ <target state-qualifier="leveraged-mt">Le « Partage de réseau local%@ » nécessite de redémarrer la connexion VPN, ce qui vous déconnectera et exposera brièvement votre trafic.
+Pour éviter cela, activez manuellement le mode avion et éteignez le Wi-Fi avant de continuer.
+Voulez-vous continuer à activer le « Partage de réseau local»?</target>
+ <note/>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="MullvadVPN/Supporting Files/en.lproj/InfoPlist.strings" source-language="en" target-language="fr" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="CFBundleDisplayName" xml:space="preserve">
+ <source>Mullvad VPN</source>
+ <target state-qualifier="leveraged-mt">Mullvad VPN</target>
+ <note>Bundle display name</note>
+ </trans-unit>
+ <trans-unit id="CFBundleName" xml:space="preserve">
+ <source>MullvadVPN</source>
+ <target state-qualifier="leveraged-mt">MullvadVPN</target>
+ <note>Bundle name</note>
+ </trans-unit>
+ <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
+ <source>The app needs this to connect and test a new method.</source>
+ <target state-qualifier="leveraged-mt">L'application a besoin de cela pour se connecter et tester une nouvelle méthode.</target>
+ <note>Privacy - Local Network Usage Description</note>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="PacketTunnel/en.lproj/InfoPlist.strings" source-language="en" target-language="fr" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="CFBundleDisplayName" xml:space="preserve">
+ <source>PacketTunnel</source>
+ <target state-qualifier="leveraged-mt">Tunnel de paquets</target>
+ <note>Bundle display name</note>
+ </trans-unit>
+ <trans-unit id="CFBundleName" xml:space="preserve">
+ <source>PacketTunnel</source>
+ <target state-qualifier="leveraged-mt">Tunnel de paquets</target>
+ <note>Bundle name</note>
+ </trans-unit>
+ </body>
+ </file>
+</xliff>
diff --git a/ios/translation/locales/sv.xliff b/ios/translation/locales/sv.xliff
new file mode 100644
index 0000000000..e1db20b0b6
--- /dev/null
+++ b/ios/translation/locales/sv.xliff
@@ -0,0 +1,1870 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xliff xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:oasis:names:tc:xliff:document:1.2" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 http://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd">
+ <file original="Assets/Localizable.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="%@" xml:space="preserve">
+ <source>%@</source>
+ <target state-qualifier="leveraged-mt">%@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ cannot be empty." xml:space="preserve">
+ <source>%@ cannot be empty.</source>
+ <target state-qualifier="leveraged-mt">%@ kan inte vara tomt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ have been added to your account" xml:space="preserve">
+ <source>%@ have been added to your account</source>
+ <target state-qualifier="leveraged-mt">%@ har lagts till på ditt konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ left on this account" xml:space="preserve">
+ <source>%@ left on this account</source>
+ <target state-qualifier="leveraged-mt">%@ kvar på detta konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%@ were added to your account." xml:space="preserve">
+ <source>%@ were added to your account.</source>
+ <target state-qualifier="leveraged-mt">%@ lades till på ditt konto.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="%d more..." xml:space="preserve">
+ <source>%d more...</source>
+ <target state-qualifier="leveraged-mt">%d mer...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**&#10;&#10;DAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.&#10;&#10;By using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted)." xml:space="preserve">
+ <source>**Attention: This increases network traffic and will also negatively affect speed, latency, and battery usage. Use with caution on limited plans.**
+
+DAITA (Defense against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic.
+
+By using sophisticated AI it’s possible to analyze the traffic of data packets going in and out of your device (even if the traffic is encrypted).</source>
+ <target state-qualifier="leveraged-mt">**Uppmärksamhet: Detta ökar nätverkstrafiken och kommer också att påverka hastighet, latens och batterianvändning. Använd med försiktighet på begränsade planer. *
+
+DAITA (Försvar mot AI-styrda Trafikanalys) döljer mönster i din krypterade VPN-trafik.
+
+Genom att använda sofistikerad AI är det möjligt att analysera trafiken av datapaket som går in och ut från din enhet (även om trafiken är krypterad).</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="**Tap here** to see what’s new." xml:space="preserve">
+ <source>**Tap here** to see what’s new.</source>
+ <target state-qualifier="leveraged-mt">**Tryck här** för att se vad som är nytt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="A custom list with this name exists, please choose a unique name." xml:space="preserve">
+ <source>A custom list with this name exists, please choose a unique name.</source>
+ <target state-qualifier="leveraged-mt">En anpassad lista med detta namn finns, välj ett unikt namn.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API access" xml:space="preserve">
+ <source>API access</source>
+ <target state-qualifier="leveraged-mt">API åtkomst</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API could not be reached, save anyway?" xml:space="preserve">
+ <source>API could not be reached, save anyway?</source>
+ <target state-qualifier="leveraged-mt">API kunde inte nås, spara ändå?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API reachable" xml:space="preserve">
+ <source>API reachable</source>
+ <target state-qualifier="leveraged-mt">API kan nås</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="API unreachable" xml:space="preserve">
+ <source>API unreachable</source>
+ <target state-qualifier="leveraged-mt">API onåbar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About API access…" xml:space="preserve">
+ <source>About API access…</source>
+ <target state-qualifier="leveraged-mt">Om API-åtkomst…</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Direct method..." xml:space="preserve">
+ <source>About Direct method...</source>
+ <target state-qualifier="leveraged-mt">Om Direkt metod...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Encrypted DNS proxy method..." xml:space="preserve">
+ <source>About Encrypted DNS proxy method...</source>
+ <target state-qualifier="leveraged-mt">Om krypterad DNS-proxymetod...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Mullvad bridges method..." xml:space="preserve">
+ <source>About Mullvad bridges method...</source>
+ <target state-qualifier="leveraged-mt">Om Mullvad broar metod...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="About Server IP override..." xml:space="preserve">
+ <source>About Server IP override...</source>
+ <target state-qualifier="leveraged-mt">Om Server IP åsidosätta...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account" xml:space="preserve">
+ <source>Account</source>
+ <target state-qualifier="leveraged-mt">Konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account created" xml:space="preserve">
+ <source>Account created</source>
+ <target state-qualifier="leveraged-mt">Konto skapat</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account credit expires soon" xml:space="preserve">
+ <source>Account credit expires soon</source>
+ <target state-qualifier="leveraged-mt">Konto kredit upphör snart</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account credit has expired" xml:space="preserve">
+ <source>Account credit has expired</source>
+ <target state-qualifier="leveraged-mt">Konto kredit har löpt ut</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account deletion" xml:space="preserve">
+ <source>Account deletion</source>
+ <target state-qualifier="leveraged-mt">Radering av konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Account number" xml:space="preserve">
+ <source>Account number</source>
+ <target state-qualifier="leveraged-mt">Kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add" xml:space="preserve">
+ <source>Add</source>
+ <target state-qualifier="leveraged-mt">Lägg till</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add 30 days" xml:space="preserve">
+ <source>Add 30 days</source>
+ <target state-qualifier="leveraged-mt">Lägg till 30 dagar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add 90 days" xml:space="preserve">
+ <source>Add 90 days</source>
+ <target state-qualifier="leveraged-mt">Lägg till 90 dagar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add Time" xml:space="preserve">
+ <source>Add Time</source>
+ <target state-qualifier="leveraged-mt">Lägg till tid</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add a server" xml:space="preserve">
+ <source>Add a server</source>
+ <target state-qualifier="leveraged-mt">Lägg till en server</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add access method" xml:space="preserve">
+ <source>Add access method</source>
+ <target state-qualifier="leveraged-mt">Lägg till accessmetod</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add locations" xml:space="preserve">
+ <source>Add locations</source>
+ <target state-qualifier="leveraged-mt">Lägg till platser</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add new list" xml:space="preserve">
+ <source>Add new list</source>
+ <target state-qualifier="leveraged-mt">Lägg till ny lista</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add time" xml:space="preserve">
+ <source>Add time</source>
+ <target state-qualifier="leveraged-mt">Lägg till tid</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Ads" xml:space="preserve">
+ <source>Ads</source>
+ <target state-qualifier="leveraged-mt">Annonser</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Adult content" xml:space="preserve">
+ <source>Adult content</source>
+ <target state-qualifier="leveraged-mt">Vuxen innehåll</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All" xml:space="preserve">
+ <source>All</source>
+ <target state-qualifier="leveraged-mt">Alla</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All Providers" xml:space="preserve">
+ <source>All Providers</source>
+ <target state-qualifier="leveraged-mt">Alla leverantörer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All locations" xml:space="preserve">
+ <source>All locations</source>
+ <target state-qualifier="leveraged-mt">Alla platser</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Any" xml:space="preserve">
+ <source>Any</source>
+ <target state-qualifier="leveraged-mt">Valfri</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="App logs" xml:space="preserve">
+ <source>App logs</source>
+ <target state-qualifier="leveraged-mt">App loggar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="AppStore receipt is not found on disk." xml:space="preserve">
+ <source>AppStore receipt is not found on disk.</source>
+ <target state-qualifier="leveraged-mt">AppStore-kvitto finns inte på disken.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="At least one method needs to be enabled." xml:space="preserve">
+ <source>At least one method needs to be enabled.</source>
+ <target state-qualifier="leveraged-mt">Minst en metod måste aktiveras.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Authentication" xml:space="preserve">
+ <source>Authentication</source>
+ <target state-qualifier="leveraged-mt">Autentisering</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Automatic" xml:space="preserve">
+ <source>Automatic</source>
+ <target state-qualifier="leveraged-mt">Automatisk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="BLOCKING INTERNET" xml:space="preserve">
+ <source>BLOCKING INTERNET</source>
+ <target state-qualifier="leveraged-mt">BLOCKAR INTERNET</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Back to editing" xml:space="preserve">
+ <source>Back to editing</source>
+ <target state-qualifier="leveraged-mt">Tillbaka till redigering</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Blocked connection" xml:space="preserve">
+ <source>Blocked connection</source>
+ <target state-qualifier="leveraged-mt">Blockerad anslutning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Blocking internet: Your time on this account has expired. To continue using the internet, please add more time or disconnect the VPN." xml:space="preserve">
+ <source>Blocking internet: Your time on this account has expired. To continue using the internet, please add more time or disconnect the VPN.</source>
+ <target state-qualifier="leveraged-mt">Blockera internet: Din tid på detta konto har gått ut. För att fortsätta använda internet, lägg till mer tid eller koppla från VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="By enabling &quot;Direct only&quot; you will have to manually select a server that is DAITA-enabled. Multihop won't automatically be used to enable DAITA with any server." xml:space="preserve">
+ <source>By enabling "Direct only" you will have to manually select a server that is DAITA-enabled. Multihop won't automatically be used to enable DAITA with any server.</source>
+ <target state-qualifier="leveraged-mt">Genom att aktivera "Direct only" måste du manuellt välja en server som är DAITA-aktiverad. Multihop används inte automatiskt för att aktivera DAITA med någon server.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="By enabling &quot;Direct only&quot; you will have to manually select a server that is DAITA-enabled. This can cause you to end up in a blocked state until you have selected a compatible server in the &quot;Select location&quot; view." xml:space="preserve">
+ <source>By enabling "Direct only" you will have to manually select a server that is DAITA-enabled. This can cause you to end up in a blocked state until you have selected a compatible server in the "Select location" view.</source>
+ <target state-qualifier="leveraged-mt">Genom att aktivera "Direct only" måste du manuellt välja en server som är DAITA-aktiverad. Detta kan leda till att du hamnar i ett blockerat tillstånd tills du har valt en kompatibel server i "Välj plats"-vyn.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cancel" xml:space="preserve">
+ <source>Cancel</source>
+ <target state-qualifier="leveraged-mt">Avbryt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot complete the purchase" xml:space="preserve">
+ <source>Cannot complete the purchase</source>
+ <target state-qualifier="leveraged-mt">Kan inte slutföra köpet</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot read the AppStore receipt from disk" xml:space="preserve">
+ <source>Cannot read the AppStore receipt from disk</source>
+ <target state-qualifier="leveraged-mt">Kan inte läsa AppStore-kvittot från disk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot refresh the AppStore receipt: %@" xml:space="preserve">
+ <source>Cannot refresh the AppStore receipt: %@</source>
+ <target state-qualifier="leveraged-mt">Kan inte uppdatera AppStore-kvitto: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot restore purchases" xml:space="preserve">
+ <source>Cannot restore purchases</source>
+ <target state-qualifier="leveraged-mt">Kan inte återställa köp</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Checking account number" xml:space="preserve">
+ <source>Checking account number</source>
+ <target state-qualifier="leveraged-mt">Kontrollerar kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cipher" xml:space="preserve">
+ <source>Cipher</source>
+ <target state-qualifier="leveraged-mt">Cipher</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear" xml:space="preserve">
+ <source>Clear</source>
+ <target state-qualifier="leveraged-mt">Rensa</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear all overrides" xml:space="preserve">
+ <source>Clear all overrides</source>
+ <target state-qualifier="leveraged-mt">Rensa alla åsidosättningar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clear all overrides?" xml:space="preserve">
+ <source>Clear all overrides?</source>
+ <target state-qualifier="leveraged-mt">Rensa alla överskridningar?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Clearing the imported overrides changes the server IPs, in the Select location view, back to default." xml:space="preserve">
+ <source>Clearing the imported overrides changes the server IPs, in the Select location view, back to default.</source>
+ <target state-qualifier="leveraged-mt">Rensar de importerade åsidosättningarna ändrar serverns IP-adresser, i Välj plats vyn, tillbaka till standard.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Client is not allowed to issue the request." xml:space="preserve">
+ <source>Client is not allowed to issue the request.</source>
+ <target state-qualifier="leveraged-mt">Kunden har inte tillåtelse att utfärda begäran.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Collapses this location." xml:space="preserve">
+ <source>Collapses this location.</source>
+ <target state-qualifier="leveraged-mt">Kollapsar denna plats.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Congrats!" xml:space="preserve">
+ <source>Congrats!</source>
+ <target state-qualifier="leveraged-mt">Grattis!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Connected" xml:space="preserve">
+ <source>Connected</source>
+ <target state-qualifier="leveraged-mt">Ansluten</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Copy to pasteboard" xml:space="preserve">
+ <source>Copy to pasteboard</source>
+ <target state-qualifier="leveraged-mt">Kopiera till pasteboard</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Correct account number" xml:space="preserve">
+ <source>Correct account number</source>
+ <target state-qualifier="leveraged-mt">Rätt kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Create" xml:space="preserve">
+ <source>Create</source>
+ <target state-qualifier="leveraged-mt">Skapa</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Create account" xml:space="preserve">
+ <source>Create account</source>
+ <target state-qualifier="leveraged-mt">Skapa konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating new account" xml:space="preserve">
+ <source>Creating new account</source>
+ <target state-qualifier="leveraged-mt">Skapa nytt konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating quantum secure connection" xml:space="preserve">
+ <source>Creating quantum secure connection</source>
+ <target state-qualifier="leveraged-mt">Skapar kvantsäker anslutning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Creating secure connection" xml:space="preserve">
+ <source>Creating secure connection</source>
+ <target state-qualifier="leveraged-mt">Skapar säker anslutning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom" xml:space="preserve">
+ <source>Custom</source>
+ <target state-qualifier="leveraged-mt">Anpassad</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom DNS" xml:space="preserve">
+ <source>Custom DNS</source>
+ <target state-qualifier="leveraged-mt">Anpassad DNS</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Custom lists" xml:space="preserve">
+ <source>Custom lists</source>
+ <target state-qualifier="leveraged-mt">Anpassade listor</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA" xml:space="preserve">
+ <source>DAITA</source>
+ <target state-qualifier="leveraged-mt">DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.&#10;It does this by carefully adding network noise and making all network packets the same size.&#10;Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.&#10;Attention: Be cautious if you have a limited data plan as this feature will increase your network traffic." xml:space="preserve">
+ <source>DAITA (Defence against AI-guided Traffic Analysis) hides patterns in your encrypted VPN traffic. If anyone is monitoring your connection, this makes it significantly harder for them to identify what websites you are visiting.
+It does this by carefully adding network noise and making all network packets the same size.
+Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.
+Attention: Be cautious if you have a limited data plan as this feature will increase your network traffic.</source>
+ <target state-qualifier="leveraged-mt">DAITA (Defence against AI-guided Traffic Analysis) döljer mönster i din krypterade VPN-trafik. Om någon övervakar din anslutning, detta gör det betydligt svårare för dem att identifiera vilka webbplatser du besöker.
+Det gör detta genom att noggrant lägga till nätverksljud och göra alla nätverkspaket till samma storlek.
+Alla våra servrar är inte DAITA-aktiverade. Därför använder vi multihop automatiskt för att aktivera DAITA med alla servrar.
+Observera: Var försiktig om du har en begränsad dataplan eftersom denna funktion kommer att öka din nätverkstrafik.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA isn't available at the currently selected location. After enabling, please go to the &quot;Select location&quot; view and select a location that supports DAITA." xml:space="preserve">
+ <source>DAITA isn't available at the currently selected location. After enabling, please go to the "Select location" view and select a location that supports DAITA.</source>
+ <target state-qualifier="leveraged-mt">DAITA är inte tillgängligt på den valda platsen för närvarande. Efter aktivering, gå till "Välj plats"-vyn och välj en plats som stöder DAITA.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA isn't available on the current entry server. After enabling, please go to the &quot;Select location&quot; view and select an entry location that supports DAITA." xml:space="preserve">
+ <source>DAITA isn't available on the current entry server. After enabling, please go to the "Select location" view and select an entry location that supports DAITA.</source>
+ <target state-qualifier="leveraged-mt">DAITA är inte tillgängligt på den aktuella postservern. Efter aktivering, gå till "Välj plats"-vyn och välj en postplats som stöder DAITA.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA-enabled" xml:space="preserve">
+ <source>DAITA-enabled</source>
+ <target state-qualifier="leveraged-mt">DAITA-aktiverat</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DAITA: Multihop" xml:space="preserve">
+ <source>DAITA: Multihop</source>
+ <target state-qualifier="leveraged-mt">DAITA: Multihop</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DNS content blockers" xml:space="preserve">
+ <source>DNS content blockers</source>
+ <target state-qualifier="leveraged-mt">DNS-innehållsblockerare</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="DNS settings" xml:space="preserve">
+ <source>DNS settings</source>
+ <target state-qualifier="leveraged-mt">DNS-inställningar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete" xml:space="preserve">
+ <source>Delete</source>
+ <target state-qualifier="leveraged-mt">Radera</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete Account" xml:space="preserve">
+ <source>Delete Account</source>
+ <target state-qualifier="leveraged-mt">Ta bort konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete account" xml:space="preserve">
+ <source>Delete account</source>
+ <target state-qualifier="leveraged-mt">Ta bort konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete list" xml:space="preserve">
+ <source>Delete list</source>
+ <target state-qualifier="leveraged-mt">Ta bort lista</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Delete method" xml:space="preserve">
+ <source>Delete method</source>
+ <target state-qualifier="leveraged-mt">Ta bort metod</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Deleting account..." xml:space="preserve">
+ <source>Deleting account...</source>
+ <target state-qualifier="leveraged-mt">Tar bort konto...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device is inactive" xml:space="preserve">
+ <source>Device is inactive</source>
+ <target state-qualifier="leveraged-mt">Enheten är inaktiv</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device name" xml:space="preserve">
+ <source>Device name</source>
+ <target state-qualifier="leveraged-mt">Enhetens namn</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Device name: %@" xml:space="preserve">
+ <source>Device name: %@</source>
+ <target state-qualifier="leveraged-mt">Enhetsnamn: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Direct" xml:space="preserve">
+ <source>Direct</source>
+ <target state-qualifier="leveraged-mt">Direkt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Direct only" xml:space="preserve">
+ <source>Direct only</source>
+ <target state-qualifier="leveraged-mt">Endast direkt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disable all content blockers to activate this setting." xml:space="preserve">
+ <source>Disable all content blockers to activate this setting.</source>
+ <target state-qualifier="leveraged-mt">Inaktivera alla innehållsblockerare för att aktivera denna inställning.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disabled" xml:space="preserve">
+ <source>Disabled</source>
+ <target state-qualifier="leveraged-mt">Inaktiverad</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disabling" xml:space="preserve">
+ <source>Disabling</source>
+ <target state-qualifier="leveraged-mt">Inaktiverar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Discard changes" xml:space="preserve">
+ <source>Discard changes</source>
+ <target state-qualifier="leveraged-mt">Ignorera ändringar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disconnect" xml:space="preserve">
+ <source>Disconnect</source>
+ <target state-qualifier="leveraged-mt">Koppla från</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Disconnecting" xml:space="preserve">
+ <source>Disconnecting</source>
+ <target state-qualifier="leveraged-mt">Kopplar från</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Done" xml:space="preserve">
+ <source>Done</source>
+ <target state-qualifier="leveraged-mt">Klar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Don’t have an account number?" xml:space="preserve">
+ <source>Don’t have an account number?</source>
+ <target state-qualifier="leveraged-mt">Har du inget kontonummer?</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit custom list" xml:space="preserve">
+ <source>Edit custom list</source>
+ <target state-qualifier="leveraged-mt">Redigera anpassad lista</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit lists" xml:space="preserve">
+ <source>Edit lists</source>
+ <target state-qualifier="leveraged-mt">Redigera listor</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit locations" xml:space="preserve">
+ <source>Edit locations</source>
+ <target state-qualifier="leveraged-mt">Redigera platser</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Edit message" xml:space="preserve">
+ <source>Edit message</source>
+ <target state-qualifier="leveraged-mt">Redigera meddelande</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable" xml:space="preserve">
+ <source>Enable</source>
+ <target state-qualifier="leveraged-mt">Aktivera</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable &quot;%@&quot;" xml:space="preserve">
+ <source>Enable "%@"</source>
+ <target state-qualifier="leveraged-mt">Aktivera "%@"</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enable method" xml:space="preserve">
+ <source>Enable method</source>
+ <target state-qualifier="leveraged-mt">Aktivera metod</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enabling" xml:space="preserve">
+ <source>Enabling</source>
+ <target state-qualifier="leveraged-mt">Aktiverar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Encrypted DNS proxy" xml:space="preserve">
+ <source>Encrypted DNS proxy</source>
+ <target state-qualifier="leveraged-mt">Krypterad DNS-proxy</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter IP" xml:space="preserve">
+ <source>Enter IP</source>
+ <target state-qualifier="leveraged-mt">Ange IP</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter voucher code" xml:space="preserve">
+ <source>Enter voucher code</source>
+ <target state-qualifier="leveraged-mt">Ange rabattkod</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Enter your account number" xml:space="preserve">
+ <source>Enter your account number</source>
+ <target state-qualifier="leveraged-mt">Ange ditt kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Entry" xml:space="preserve">
+ <source>Entry</source>
+ <target state-qualifier="leveraged-mt">Inlägg</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Exit" xml:space="preserve">
+ <source>Exit</source>
+ <target state-qualifier="leveraged-mt">Avsluta</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Expands this location." xml:space="preserve">
+ <source>Expands this location.</source>
+ <target state-qualifier="leveraged-mt">Expanderar denna plats.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="FAQs &amp; Guides" xml:space="preserve">
+ <source>FAQs &amp; Guides</source>
+ <target state-qualifier="leveraged-mt">FAQs &amp; Guider</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to connect to App store, please try again later." xml:space="preserve">
+ <source>Failed to connect to App store, please try again later.</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att ansluta till App Store, försök igen senare.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to send" xml:space="preserve">
+ <source>Failed to send</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att skicka</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to send the receipt to server: %@" xml:space="preserve">
+ <source>Failed to send the receipt to server: %@</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att skicka kvittot till server: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to start the tunnel." xml:space="preserve">
+ <source>Failed to start the tunnel.</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att starta tunneln.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to start the tunnel: %@." xml:space="preserve">
+ <source>Failed to start the tunnel: %@.</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att starta tunneln: %@.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to stop the tunnel." xml:space="preserve">
+ <source>Failed to stop the tunnel.</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att stoppa tunneln.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to stop the tunnel: %@." xml:space="preserve">
+ <source>Failed to stop the tunnel: %@.</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att stoppa tunneln: %@.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Failed to validate account number: %@" xml:space="preserve">
+ <source>Failed to validate account number: %@</source>
+ <target state="needs-translation">Failed to validate account number: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Fetching devices..." xml:space="preserve">
+ <source>Fetching devices...</source>
+ <target state-qualifier="leveraged-mt">Hämtar enheter...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Filter" xml:space="preserve">
+ <source>Filter</source>
+ <target state-qualifier="leveraged-mt">Filtrera</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Filtered:" xml:space="preserve">
+ <source>Filtered:</source>
+ <target state-qualifier="leveraged-mt">Filtrerat:</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Gambling" xml:space="preserve">
+ <source>Gambling</source>
+ <target state-qualifier="leveraged-mt">Spelande</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Go ahead and start using the app to begin reclaiming your online privacy.&#10;To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools." xml:space="preserve">
+ <source>Go ahead and start using the app to begin reclaiming your online privacy.
+To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools.</source>
+ <target state-qualifier="leveraged-mt">Gå vidare och börja använda appen för att börja återta din integritet online.
+För att fortsätta din resa som privatliv ninja, besök vår hemsida för att plocka upp andra integritetsvänliga vanor och verktyg.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Go to login" xml:space="preserve">
+ <source>Go to login</source>
+ <target state-qualifier="leveraged-mt">Gå till inloggning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Going to login will unblock the Internet on this device." xml:space="preserve">
+ <source>Going to login will unblock the Internet on this device.</source>
+ <target state-qualifier="leveraged-mt">Att gå till inloggning kommer att avblockera Internet på den här enheten.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Got it!" xml:space="preserve">
+ <source>Got it!</source>
+ <target state-qualifier="leveraged-mt">Jag förstår!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Here’s your account number. Save it!" xml:space="preserve">
+ <source>Here’s your account number. Save it!</source>
+ <target state-qualifier="leveraged-mt">Här är ditt kontonummer. Spara det!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Hide account number" xml:space="preserve">
+ <source>Hide account number</source>
+ <target state-qualifier="leveraged-mt">Dölj kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If an observer monitors these data packets, DAITA makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.&#10;&#10;DAITA does this by carefully adding network noise and making all network packets the same size.&#10;&#10;Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.&#10;" xml:space="preserve">
+ <source>If an observer monitors these data packets, DAITA makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.
+
+DAITA does this by carefully adding network noise and making all network packets the same size.
+
+Not all our servers are DAITA-enabled. Therefore, we use multihop automatically to enable DAITA with any server.
+</source>
+ <target state-qualifier="leveraged-mt">Om en observatör övervakar dessa datapaket, DAITA gör det betydligt svårare för dem att identifiera vilka webbplatser du besöker eller med vilka du kommunicerar.
+
+DAITA gör detta genom att noggrant lägga till nätverksljud och göra alla nätverkspaket till samma storlek.
+
+Alla våra servrar är inte DAITA-aktiverade. Därför använder vi multihop automatiskt för att aktivera DAITA med alla servrar.
+</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If needed we will contact you at %@" xml:space="preserve">
+ <source>If needed we will contact you at %@</source>
+ <target state-qualifier="leveraged-mt">Om det behövs kommer vi att kontakta dig på %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you are having issues connecting to VPN servers, please contact support." xml:space="preserve">
+ <source>If you are having issues connecting to VPN servers, please contact support.</source>
+ <target state-qualifier="leveraged-mt">Om du har problem med att ansluta till VPN-servrar, vänligen kontakta support.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.&#10;The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare." xml:space="preserve">
+ <source>If you are not connected to our VPN, then the Encrypted DNS proxy will use your own non-VPN IP when connecting.
+The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare.</source>
+ <target state-qualifier="leveraged-mt">Om du inte är ansluten till vårt VPN kommer den krypterade DNS-proxyn att använda din egen icke-VPN IP när du ansluter.
+DoH-servrarna är värd för en av följande leverantörer: Quad9 eller Cloudflare.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you disconnect now, you won’t be able to secure your connection until the device is online." xml:space="preserve">
+ <source>If you disconnect now, you won’t be able to secure your connection until the device is online.</source>
+ <target state-qualifier="leveraged-mt">Om du kopplar från nu kommer du inte att kunna säkra din anslutning förrän enheten är online.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you exit the form and try again later, the information you already entered will still be here." xml:space="preserve">
+ <source>If you exit the form and try again later, the information you already entered will still be here.</source>
+ <target state-qualifier="leveraged-mt">Om du avslutar formuläret och försöker igen senare, kommer informationen du redan angett fortfarande att vara här.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you haven’t received additional VPN time after purchasing" xml:space="preserve">
+ <source>If you haven’t received additional VPN time after purchasing</source>
+ <target state-qualifier="leveraged-mt">Om du inte har fått ytterligare VPN-tid efter köp</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email." xml:space="preserve">
+ <source>If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email.</source>
+ <target state-qualifier="leveraged-mt">Om du fortfarande upplever problem kan du maila vår support direkt på **%@**. Vänligen bifoga din app-logg till din e-post.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import" xml:space="preserve">
+ <source>Import</source>
+ <target state-qualifier="leveraged-mt">Importera</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import %@ was successful, overrides are now active." xml:space="preserve">
+ <source>Import %@ was successful, overrides are now active.</source>
+ <target state-qualifier="leveraged-mt">Import %@ lyckades, åsidosättningar är nu aktiva.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import %@ was unsuccessful, please try again." xml:space="preserve">
+ <source>Import %@ was unsuccessful, please try again.</source>
+ <target state-qualifier="leveraged-mt">Importen av %@ misslyckades, försök igen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import file" xml:space="preserve">
+ <source>Import file</source>
+ <target state-qualifier="leveraged-mt">Importera fil</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import files or text with the new IP addresses for the servers in the Select location view." xml:space="preserve">
+ <source>Import files or text with the new IP addresses for the servers in the Select location view.</source>
+ <target state-qualifier="leveraged-mt">Importera filer eller text med de nya IP-adresserna för servrarna i Välj plats vyn.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import successful" xml:space="preserve">
+ <source>Import successful</source>
+ <target state-qualifier="leveraged-mt">Importen lyckades</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Import via text" xml:space="preserve">
+ <source>Import via text</source>
+ <target state-qualifier="leveraged-mt">Importera via text</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="In use" xml:space="preserve">
+ <source>In use</source>
+ <target state-qualifier="leveraged-mt">I bruk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Include all networks" xml:space="preserve">
+ <source>Include all networks</source>
+ <target state-qualifier="leveraged-mt">Inkludera alla nätverk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Internal error occurred. Settings will be reset to defaults and device logged out." xml:space="preserve">
+ <source>Internal error occurred. Settings will be reset to defaults and device logged out.</source>
+ <target state-qualifier="leveraged-mt">Internt fel uppstod. Inställningarna återställs till standardinställningar och enheten loggas ut.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Internal error." xml:space="preserve">
+ <source>Internal error.</source>
+ <target state-qualifier="leveraged-mt">Internt fel.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid account" xml:space="preserve">
+ <source>Invalid account</source>
+ <target state-qualifier="leveraged-mt">Ogiltigt konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid device state." xml:space="preserve">
+ <source>Invalid device state.</source>
+ <target state-qualifier="leveraged-mt">Ogiltig enhets status.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Invalid purchase identifier." xml:space="preserve">
+ <source>Invalid purchase identifier.</source>
+ <target state-qualifier="leveraged-mt">Ogiltig inköpsidentifierare</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="It looks like you have entered a Mullvad account number instead of a voucher code. Do you want to log in to an existing account?&#10;If so, click log out below to log in with the other account number." xml:space="preserve">
+ <source>It looks like you have entered a Mullvad account number instead of a voucher code. Do you want to log in to an existing account?
+If so, click log out below to log in with the other account number.</source>
+ <target state-qualifier="leveraged-mt">Det verkar som om du har angett ett Mullva-kontonummer istället för en kupongkod. Vill du logga in på ett befintligt konto?
+Om så är fallet, klicka på logga ut nedan för att logga in med det andra kontonumret.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Language" xml:space="preserve">
+ <source>Language</source>
+ <target state-qualifier="leveraged-mt">Språk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Last four digits of the account number are incorrect" xml:space="preserve">
+ <source>Last four digits of the account number are incorrect</source>
+ <target state-qualifier="leveraged-mt">De fyra sista siffrorna i kontonumret är felaktiga</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Last used account" xml:space="preserve">
+ <source>Last used account</source>
+ <target state-qualifier="leveraged-mt">Senast använda konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Learn about privacy" xml:space="preserve">
+ <source>Learn about privacy</source>
+ <target state-qualifier="leveraged-mt">Läs mer om sekretess</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Less than a day" xml:space="preserve">
+ <source>Less than a day</source>
+ <target state-qualifier="leveraged-mt">Mindre än en dag</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Local network sharing" xml:space="preserve">
+ <source>Local network sharing</source>
+ <target state-qualifier="leveraged-mt">Delning av lokalt nätverk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Log in" xml:space="preserve">
+ <source>Log in</source>
+ <target state-qualifier="leveraged-mt">Logga in</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Log out" xml:space="preserve">
+ <source>Log out</source>
+ <target state-qualifier="leveraged-mt">Logga ut</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logged in" xml:space="preserve">
+ <source>Logged in</source>
+ <target state-qualifier="leveraged-mt">Inloggad</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logging in..." xml:space="preserve">
+ <source>Logging in...</source>
+ <target state-qualifier="leveraged-mt">Loggar in...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Logging out..." xml:space="preserve">
+ <source>Logging out...</source>
+ <target state-qualifier="leveraged-mt">Loggar ut...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Login" xml:space="preserve">
+ <source>Login</source>
+ <target state-qualifier="leveraged-mt">Inloggning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Login failed" xml:space="preserve">
+ <source>Login failed</source>
+ <target state-qualifier="leveraged-mt">Inloggning misslyckades</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Make a purchase with StoreKit2" xml:space="preserve">
+ <source>Make a purchase with StoreKit2</source>
+ <target state-qualifier="leveraged-mt">Gör ett köp med StoreKit2</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Malware" xml:space="preserve">
+ <source>Malware</source>
+ <target state-qualifier="leveraged-mt">Malware</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage default and setup custom methods to access the Mullvad API." xml:space="preserve">
+ <source>Manage default and setup custom methods to access the Mullvad API.</source>
+ <target state-qualifier="leveraged-mt">Hantera standard och konfigurera anpassade metoder för att komma åt Mullvads API.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage default and setup custom methods to access the Mullvad API. " xml:space="preserve">
+ <source>Manage default and setup custom methods to access the Mullvad API. </source>
+ <target state-qualifier="leveraged-mt">Hantera standard och konfigurera anpassade metoder för att komma åt Mullvads API. </target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Manage devices" xml:space="preserve">
+ <source>Manage devices</source>
+ <target state-qualifier="leveraged-mt">Hantera enheter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Method settings" xml:space="preserve">
+ <source>Method settings</source>
+ <target state-qualifier="leveraged-mt">Metod inställningar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Mullvad bridges" xml:space="preserve">
+ <source>Mullvad bridges</source>
+ <target state-qualifier="leveraged-mt">Mullvad bryggor</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop" xml:space="preserve">
+ <source>Multihop</source>
+ <target state-qualifier="leveraged-mt">Multihop</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop is being used to enable DAITA for your selected location." xml:space="preserve">
+ <source>Multihop is being used to enable DAITA for your selected location.</source>
+ <target state-qualifier="leveraged-mt">Multihop används för att aktivera DAITA för din valda plats.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.&#10;This results in increased latency but increases anonymity online." xml:space="preserve">
+ <source>Multihop routes your traffic into one WireGuard server and out another, making it harder to trace.
+This results in increased latency but increases anonymity online.</source>
+ <target state-qualifier="leveraged-mt">Multihop rutter din trafik i en WireGuard server och ut en annan, vilket gör det svårare att spåra.
+Detta resulterar i ökad fördröjning men ökar anonymiteten på nätet.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multihop routes your traffic into one WireGuard server and out another, making it harder to trace. This results in increased latency but increases anonymity online." xml:space="preserve">
+ <source>Multihop routes your traffic into one WireGuard server and out another, making it harder to trace. This results in increased latency but increases anonymity online.</source>
+ <target state-qualifier="leveraged-mt">Multihop leder din trafik till en WireGuard-server och ut en annan, vilket gör det svårare att spåra. Detta resulterar i ökad fördröjning men ökar anonymiteten online.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Multiple validation errors occurred." xml:space="preserve">
+ <source>Multiple validation errors occurred.</source>
+ <target state-qualifier="leveraged-mt">Flera valideringsfel uppstod.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NETWORK ISSUES" xml:space="preserve">
+ <source>NETWORK ISSUES</source>
+ <target state-qualifier="leveraged-mt">NETWORK ISSUES</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NEW DEVICE CREATED" xml:space="preserve">
+ <source>NEW DEVICE CREATED</source>
+ <target state-qualifier="leveraged-mt">NYA ENHETER SKAPAD</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="NEW VERSION INSTALLED" xml:space="preserve">
+ <source>NEW VERSION INSTALLED</source>
+ <target state-qualifier="leveraged-mt">NY VERSION INSTALLERAD</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name" xml:space="preserve">
+ <source>Name</source>
+ <target state-qualifier="leveraged-mt">Namn</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name should be no longer than %i characters." xml:space="preserve">
+ <source>Name should be no longer than %i characters.</source>
+ <target state-qualifier="leveraged-mt">Namnet får inte vara längre än %i tecken.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Network error: %@" xml:space="preserve">
+ <source>Network error: %@</source>
+ <target state-qualifier="leveraged-mt">Nätverksfel: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="New custom list" xml:space="preserve">
+ <source>New custom list</source>
+ <target state-qualifier="leveraged-mt">Ny anpassad lista</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Next" xml:space="preserve">
+ <source>Next</source>
+ <target state-qualifier="leveraged-mt">Nästa</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No DAITA compatible servers match your location settings. Try changing location." xml:space="preserve">
+ <source>No DAITA compatible servers match your location settings. Try changing location.</source>
+ <target state-qualifier="leveraged-mt">Inga DAITA-kompatibla servrar matchar dina platsinställningar. Försök att ändra plats.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No matching relays found, check your filter settings." xml:space="preserve">
+ <source>No matching relays found, check your filter settings.</source>
+ <target state-qualifier="leveraged-mt">Inga matchande reläer hittade, kontrollera dina filterinställningar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No matching servers" xml:space="preserve">
+ <source>No matching servers</source>
+ <target state-qualifier="leveraged-mt">Inga matchande servrar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No network" xml:space="preserve">
+ <source>No network</source>
+ <target state-qualifier="leveraged-mt">Inget nätverk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No overrides imported" xml:space="preserve">
+ <source>No overrides imported</source>
+ <target state-qualifier="leveraged-mt">Inga åsidosättningar importerade</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No servers match your location filter. Try changing filter settings." xml:space="preserve">
+ <source>No servers match your location filter. Try changing filter settings.</source>
+ <target state-qualifier="leveraged-mt">Inga servrar matchar ditt platsfilter. Prova att ändra filterinställningar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="No servers match your settings, try changing server or other settings." xml:space="preserve">
+ <source>No servers match your settings, try changing server or other settings.</source>
+ <target state-qualifier="leveraged-mt">Inga servrar matchar dina inställningar, prova att ändra server eller andra inställningar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="OUT OF TIME" xml:space="preserve">
+ <source>OUT OF TIME</source>
+ <target state-qualifier="leveraged-mt">SLUT AV TID</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obfuscation" xml:space="preserve">
+ <source>Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Obfusk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connection would be blocked." xml:space="preserve">
+ <source>Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connection would be blocked.</source>
+ <target state-qualifier="leveraged-mt">Obduktion döljer WireGuard trafik inuti ett annat protokoll. Den kan användas för att kringgå censur och andra typer av filtrering, där en vanlig WireGuard-anslutning skulle blockeras.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Obscured" xml:space="preserve">
+ <source>Obscured</source>
+ <target state-qualifier="leveraged-mt">Obscured</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Off" xml:space="preserve">
+ <source>Off</source>
+ <target state-qualifier="leveraged-mt">Av</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On" xml:space="preserve">
+ <source>On</source>
+ <target state-qualifier="leveraged-mt">På</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On some networks, where various types of censorship are being used, our server IP addresses are sometimes blocked." xml:space="preserve">
+ <source>On some networks, where various types of censorship are being used, our server IP addresses are sometimes blocked.</source>
+ <target state-qualifier="leveraged-mt">På vissa nätverk, där olika typer av censur används, blockeras ibland våra serverIP-adresser.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="On some networks, where various types of censorship are being used, the API servers might not be directly reachable." xml:space="preserve">
+ <source>On some networks, where various types of censorship are being used, the API servers might not be directly reachable.</source>
+ <target state-qualifier="leveraged-mt">På vissa nätverk, där olika typer av censur används, kanske API-servrarna inte är direkt nåbara.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Open DAITA settings" xml:space="preserve">
+ <source>Open DAITA settings</source>
+ <target state-qualifier="leveraged-mt">Öppna DAITA-inställningar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Optional" xml:space="preserve">
+ <source>Optional</source>
+ <target state-qualifier="leveraged-mt">Valfri</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Out of time" xml:space="preserve">
+ <source>Out of time</source>
+ <target state-qualifier="leveraged-mt">Slut på tid</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Overrides active" xml:space="preserve">
+ <source>Overrides active</source>
+ <target state-qualifier="leveraged-mt">Ersätter aktiva</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Owned" xml:space="preserve">
+ <source>Owned</source>
+ <target state-qualifier="leveraged-mt">Ägd</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Ownership" xml:space="preserve">
+ <source>Ownership</source>
+ <target state-qualifier="leveraged-mt">Ägarskap</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Paid until" xml:space="preserve">
+ <source>Paid until</source>
+ <target state-qualifier="leveraged-mt">Betalad till</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Password" xml:space="preserve">
+ <source>Password</source>
+ <target state-qualifier="leveraged-mt">Lösenord</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Performs a connection test to a Mullvad API server via this access method." xml:space="preserve">
+ <source>Performs a connection test to a Mullvad API server via this access method.</source>
+ <target state-qualifier="leveraged-mt">Utför ett anslutningstest till en Mullvads API-server via denna åtkomstmetod.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please enter a valid IPv4 or IPv6 address." xml:space="preserve">
+ <source>Please enter a valid IPv4 or IPv6 address.</source>
+ <target state-qualifier="leveraged-mt">Ange en giltig IPv4 eller IPv6-adress.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please enter a valid port." xml:space="preserve">
+ <source>Please enter a valid port.</source>
+ <target state-qualifier="leveraged-mt">Ange en giltig port.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Please retry by using the &quot;Restore purchases&quot; button." xml:space="preserve">
+ <source>Please retry by using the "Restore purchases" button.</source>
+ <target state-qualifier="leveraged-mt">Försök igen genom att använda knappen "Återställ köp".</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Port" xml:space="preserve">
+ <source>Port</source>
+ <target state-qualifier="leveraged-mt">Port</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Port: %@" xml:space="preserve">
+ <source>Port: %@</source>
+ <target state-qualifier="leveraged-mt">Port: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Previous" xml:space="preserve">
+ <source>Previous</source>
+ <target state-qualifier="leveraged-mt">Föregående</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Providers" xml:space="preserve">
+ <source>Providers</source>
+ <target state-qualifier="leveraged-mt">Leverantörer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Providers: %d" xml:space="preserve">
+ <source>Providers: %d</source>
+ <target state-qualifier="leveraged-mt">Leverantörer: %d</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="QUIC" xml:space="preserve">
+ <source>QUIC</source>
+ <target state-qualifier="leveraged-mt">FRÅGOR</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum resistance" xml:space="preserve">
+ <source>Quantum resistance</source>
+ <target state-qualifier="leveraged-mt">Kvantmotstånd</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum secure connection" xml:space="preserve">
+ <source>Quantum secure connection</source>
+ <target state-qualifier="leveraged-mt">Kvantsäker anslutning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum secure connection. Connected to %@, %@" xml:space="preserve">
+ <source>Quantum secure connection. Connected to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Kvantsäker anslutning. Ansluten till %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Quantum-resistant tunnel" xml:space="preserve">
+ <source>Quantum-resistant tunnel</source>
+ <target state-qualifier="leveraged-mt">Kvantbeständig tunnel</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Reconnecting" xml:space="preserve">
+ <source>Reconnecting</source>
+ <target state-qualifier="leveraged-mt">Återansluter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Reconnecting to %@, %@" xml:space="preserve">
+ <source>Reconnecting to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Återansluter till %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Redeem" xml:space="preserve">
+ <source>Redeem</source>
+ <target state-qualifier="leveraged-mt">Redeem</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Redeem voucher" xml:space="preserve">
+ <source>Redeem voucher</source>
+ <target state-qualifier="leveraged-mt">Redeem voucher</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Refund last purchase with StoreKit2" xml:space="preserve">
+ <source>Refund last purchase with StoreKit2</source>
+ <target state-qualifier="leveraged-mt">Återbetala senaste köp med StoreKit2</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Refund successful" xml:space="preserve">
+ <source>Refund successful</source>
+ <target state-qualifier="leveraged-mt">Återbetalning slutförd</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Remove last used account" xml:space="preserve">
+ <source>Remove last used account</source>
+ <target state-qualifier="leveraged-mt">Ta bort senast använda konto</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Rented" xml:space="preserve">
+ <source>Rented</source>
+ <target state-qualifier="leveraged-mt">Hyrd</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Report a problem" xml:space="preserve">
+ <source>Report a problem</source>
+ <target state-qualifier="leveraged-mt">Rapportera ett problem</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Required" xml:space="preserve">
+ <source>Required</source>
+ <target state-qualifier="leveraged-mt">Krävs</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Restore purchases" xml:space="preserve">
+ <source>Restore purchases</source>
+ <target state-qualifier="leveraged-mt">Återställ köp</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Save" xml:space="preserve">
+ <source>Save</source>
+ <target state-qualifier="leveraged-mt">Spara</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Save anyway" xml:space="preserve">
+ <source>Save anyway</source>
+ <target state-qualifier="leveraged-mt">Spara ändå</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Saving changes..." xml:space="preserve">
+ <source>Saving changes...</source>
+ <target state-qualifier="leveraged-mt">Sparar ändringar...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Search for..." xml:space="preserve">
+ <source>Search for...</source>
+ <target state-qualifier="leveraged-mt">Sök efter...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Secure connection. Connected to %@, %@" xml:space="preserve">
+ <source>Secure connection. Connected to %1$@, %2$@</source>
+ <target state-qualifier="leveraged-mt">Säker anslutning. Ansluten till %1$@, %2$@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Select location" xml:space="preserve">
+ <source>Select location</source>
+ <target state-qualifier="leveraged-mt">Välj plats</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Selected" xml:space="preserve">
+ <source>Selected</source>
+ <target state-qualifier="leveraged-mt">Vald</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Send" xml:space="preserve">
+ <source>Send</source>
+ <target state-qualifier="leveraged-mt">Skicka</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Send anyway" xml:space="preserve">
+ <source>Send anyway</source>
+ <target state-qualifier="leveraged-mt">Skicka ändå</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Sending..." xml:space="preserve">
+ <source>Sending...</source>
+ <target state-qualifier="leveraged-mt">Skickar...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Sent" xml:space="preserve">
+ <source>Sent</source>
+ <target state-qualifier="leveraged-mt">Skickat</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server" xml:space="preserve">
+ <source>Server</source>
+ <target state-qualifier="leveraged-mt">Server</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server IP Override" xml:space="preserve">
+ <source>Server IP Override</source>
+ <target state-qualifier="leveraged-mt">Server IP åsidosättning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server IP override" xml:space="preserve">
+ <source>Server IP override</source>
+ <target state-qualifier="leveraged-mt">Server IP åsidosätter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Server details" xml:space="preserve">
+ <source>Server details</source>
+ <target state-qualifier="leveraged-mt">Serverdetaljer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Setting: DAITA" xml:space="preserve">
+ <source>Setting: DAITA</source>
+ <target state-qualifier="leveraged-mt">Inställning: DAITA</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Setting: Obfuscation" xml:space="preserve">
+ <source>Setting: Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Inställning: Obfusk</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Settings" xml:space="preserve">
+ <source>Settings</source>
+ <target state-qualifier="leveraged-mt">Inställningar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Settings migration error" xml:space="preserve">
+ <source>Settings migration error</source>
+ <target state-qualifier="leveraged-mt">Migreringsfel för inställningar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Shadowsocks" xml:space="preserve">
+ <source>Shadowsocks</source>
+ <target state-qualifier="leveraged-mt">Skuggstrumpor</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Show account number" xml:space="preserve">
+ <source>Show account number</source>
+ <target state-qualifier="leveraged-mt">Visa kontonummer</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Social media" xml:space="preserve">
+ <source>Social media</source>
+ <target state-qualifier="leveraged-mt">Sociala medier</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Socks5" xml:space="preserve">
+ <source>Socks5</source>
+ <target state-qualifier="leveraged-mt">Socks5</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Start using the app" xml:space="preserve">
+ <source>Start using the app</source>
+ <target state-qualifier="leveraged-mt">Börja använda appen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Super!" xml:space="preserve">
+ <source>Super!</source>
+ <target state-qualifier="leveraged-mt">Super!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Switch location" xml:space="preserve">
+ <source>Switch location</source>
+ <target state-qualifier="leveraged-mt">Byt plats</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="TUNNEL ERROR" xml:space="preserve">
+ <source>TUNNEL ERROR</source>
+ <target state-qualifier="leveraged-mt">TUNNEL FEL</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Tap **Edit** to add at least one DNS server." xml:space="preserve">
+ <source>Tap **Edit** to add at least one DNS server.</source>
+ <target state-qualifier="leveraged-mt">Tryck på **Redigera** för att lägga till minst en DNS-server.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Test method" xml:space="preserve">
+ <source>Test method</source>
+ <target state-qualifier="leveraged-mt">Testa metod</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Testing..." xml:space="preserve">
+ <source>Testing...</source>
+ <target state-qualifier="leveraged-mt">Testar...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks for your purchase" xml:space="preserve">
+ <source>Thanks for your purchase</source>
+ <target state-qualifier="leveraged-mt">Tack för ditt köp</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks!" xml:space="preserve">
+ <source>Thanks!</source>
+ <target state-qualifier="leveraged-mt">Tack!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server directly." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server directly.</source>
+ <target state-qualifier="leveraged-mt">Appen kommunicerar direkt med en Mullvads API-server.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server via a Mullvad bridge server." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server via a Mullvad bridge server.</source>
+ <target state-qualifier="leveraged-mt">Appen kommunicerar med en Mullvads API-server via en Mullvads brygga.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app communicates with a Mullvad API server via a proxy address." xml:space="preserve">
+ <source>The app communicates with a Mullvad API server via a proxy address.</source>
+ <target state-qualifier="leveraged-mt">Appen kommunicerar med en Mullvads API-server via en proxyadress.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations." xml:space="preserve">
+ <source>The app needs to communicate with a Mullvad API server to log you in, fetch server lists, and other critical operations.</source>
+ <target state-qualifier="leveraged-mt">Appen behöver kommunicera med en Mullvads API-server för att logga in dig, hämta serverlistor och andra kritiska operationer.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The app will test the method before saving." xml:space="preserve">
+ <source>The app will test the method before saving.</source>
+ <target state-qualifier="leveraged-mt">Appen testar metoden innan du sparar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The automatic setting will randomly choose from the valid port ranges shown below.&#10;The custom port can be any value inside the valid ranges:&#10;%@" xml:space="preserve">
+ <source>The automatic setting will randomly choose from the valid port ranges shown below.
+The custom port can be any value inside the valid ranges:
+%@</source>
+ <target state-qualifier="leveraged-mt">Den automatiska inställningen kommer slumpmässigt att välja från de giltiga portintervall som visas nedan.
+Den anpassade porten kan vara valfritt värde inom de giltiga intervallen:
+%@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The entry and exit servers cannot be the same. Try changing one to a new server or location." xml:space="preserve">
+ <source>The entry and exit servers cannot be the same. Try changing one to a new server or location.</source>
+ <target state-qualifier="leveraged-mt">Inmatnings- och utgångsservrarna kan inte vara desamma. Försök att ändra en till en ny server eller plats.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings." xml:space="preserve">
+ <source>The entry server for multihop is currently overridden by DAITA. To select an entry server, please first enable “Direct only” or disable “DAITA” in the settings.</source>
+ <target state-qualifier="leveraged-mt">Inmatningsservern för multihop är för närvarande åsidosatt av DAITA. För att välja en postserver, vänligen först aktivera “Direct only” eller inaktivera “DAITA” i inställningarna.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The payment request was cancelled." xml:space="preserve">
+ <source>The payment request was cancelled.</source>
+ <target state-qualifier="leveraged-mt">Betalningsbegäran avbröts.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The selected WireGuard port is not supported, please change it under **VPN settings**." xml:space="preserve">
+ <source>The selected WireGuard port is not supported, please change it under **VPN settings**.</source>
+ <target state-qualifier="leveraged-mt">Den valda WireGuard-porten stöds inte, vänligen ändra den under **VPN-inställningar**.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out." xml:space="preserve">
+ <source>The version of settings stored on device is unrecognized.Settings will be reset to defaults and the device will be logged out.</source>
+ <target state-qualifier="leveraged-mt">Versionen av inställningar som lagras på enheten känns inte igen.Inställningar kommer att återställas till standardvärden och enheten kommer att loggas ut.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This can be useful if the API is censored but Mullvad’s bridge servers are not." xml:space="preserve">
+ <source>This can be useful if the API is censored but Mullvad’s bridge servers are not.</source>
+ <target state-qualifier="leveraged-mt">Detta kan vara användbart om API:et är censurerat men Mullvads bryggservrar är det inte.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This can be useful when you are not affected by censorship." xml:space="preserve">
+ <source>This can be useful when you are not affected by censorship.</source>
+ <target state-qualifier="leveraged-mt">Detta kan vara användbart när du inte påverkas av censur.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This device is not allowed to make the payment." xml:space="preserve">
+ <source>This device is not allowed to make the payment.</source>
+ <target state-qualifier="leveraged-mt">Denna enhet är inte tillåten att göra betalningen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.&#10;Attention: toggling “Local network sharing” requires restarting the VPN connection." xml:space="preserve">
+ <source>This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.
+Attention: toggling “Local network sharing” requires restarting the VPN connection.</source>
+ <target state-qualifier="leveraged-mt">Den här funktionen ger åtkomst till andra enheter på det lokala nätverket, till exempel för att dela, skriva ut, strömma etc.
+Observera: växla mellan “Lokalt nätverk delning” kräver omstart av VPN-anslutningen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods." xml:space="preserve">
+ <source>This feature allows you to circumvent that censorship by adding custom ways to access the API via proxies and similar methods.</source>
+ <target state-qualifier="leveraged-mt">Denna funktion gör att du kan kringgå censur genom att lägga till anpassade sätt att komma åt API:et via proxies och liknande metoder.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.&#10;It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.&#10;This extra step uses approximately 500 kiB of traffic every time a new tunnel is established." xml:space="preserve">
+ <source>This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.
+It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption.
+This extra step uses approximately 500 kiB of traffic every time a new tunnel is established.</source>
+ <target state-qualifier="leveraged-mt">Denna funktion gör WireGuard-tunneln resistent mot potentiella attacker från kvantdatorer.
+Det gör detta genom att utföra ett extra nyckelutbyte med hjälp av en kvantsäker algoritm och blanda resultatet i WireGuards vanliga kryptering.
+Detta extra steg använder cirka 500 kiB trafik varje gång en ny tunnel etableras.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.&#10;You can have up to 5 devices logged in on one Mullvad account.&#10;If you log out, the device and the device name is removed. When you log back in again, the device will get a new name." xml:space="preserve">
+ <source>This is the name assigned to the device. Each device logged in on a Mullvad account gets a unique name that helps you identify it when you manage your devices in the app or on the website.
+You can have up to 5 devices logged in on one Mullvad account.
+If you log out, the device and the device name is removed. When you log back in again, the device will get a new name.</source>
+ <target state-qualifier="leveraged-mt">Detta är namnet som tilldelats enheten. Varje enhet som är inloggad på ett Mullva-konto får ett unikt namn som hjälper dig att identifiera det när du hanterar dina enheter i appen eller på webbplatsen.
+Du kan ha upp till 5 enheter inloggade på ett Mullva-konto.
+Om du loggar ut tas enheten och enhetsnamnet bort. När du loggar in igen får enheten ett nytt namn.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This logs out all devices using this account and all VPN access will be denied even if there is time left on the account. Enter the last 4 digits of the account number and hit &quot;Delete account&quot; if you really want to delete the account:" xml:space="preserve">
+ <source>This logs out all devices using this account and all VPN access will be denied even if there is time left on the account. Enter the last 4 digits of the account number and hit "Delete account" if you really want to delete the account:</source>
+ <target state-qualifier="leveraged-mt">Detta loggar ut alla enheter som använder detta konto och all VPN-åtkomst nekas även om det finns tid kvar på kontot. Ange de 4 sista siffrorna i kontonumret och tryck på "Ta bort konto" om du verkligen vill ta bort kontot:</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="This voucher code has already been used." xml:space="preserve">
+ <source>This voucher code has already been used.</source>
+ <target state-qualifier="leveraged-mt">Denna rabattkod har redan använts.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Time left: %@" xml:space="preserve">
+ <source>Time left: %@</source>
+ <target state-qualifier="leveraged-mt">Återstående tid: %@</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To assist you better, please write in English or Swedish and include which country you are connecting from." xml:space="preserve">
+ <source>To assist you better, please write in English or Swedish and include which country you are connecting from.</source>
+ <target state-qualifier="leveraged-mt">För att hjälpa dig bättre, skriv gärna på engelska eller svenska och inkludera vilket land du ska ansluta från.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To circumvent this you can import a file or a text, provided by our support team, with new IP addresses that override the default addresses of the servers in the Select location view." xml:space="preserve">
+ <source>To circumvent this you can import a file or a text, provided by our support team, with new IP addresses that override the default addresses of the servers in the Select location view.</source>
+ <target state-qualifier="leveraged-mt">För att kringgå detta kan du importera en fil eller en text, som tillhandahålls av vårt supportteam, med nya IP-adresser som åsidosätter standardadresserna för servrarna i Välj platsvy.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To create a custom list, tap on &quot;...&quot; " xml:space="preserve">
+ <source>To create a custom list, tap on "..." </source>
+ <target state-qualifier="leveraged-mt">För att skapa en anpassad lista, tryck på "..." </target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To enable this setting, add at least one server." xml:space="preserve">
+ <source>To enable this setting, add at least one server.</source>
+ <target state-qualifier="leveraged-mt">För att aktivera denna inställning, lägg till minst en server.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel." xml:space="preserve">
+ <source>To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel.</source>
+ <target state-qualifier="leveraged-mt">För att hjälpa dig mer effektivt, kommer appens loggfil att bifogas till detta meddelande. Dina uppgifter förblir säkra och privata, eftersom de är anonymiserade innan de skickas över en krypterad kanal.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="To start using the app, you first need to add time to your account. Either buy credit on our website or redeem a voucher." xml:space="preserve">
+ <source>To start using the app, you first need to add time to your account. Either buy credit on our website or redeem a voucher.</source>
+ <target state-qualifier="leveraged-mt">För att börja använda appen måste du först lägga till tid på ditt konto. Antingen köpa kredit på vår webbplats eller lösa in en kupong.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Too many devices" xml:space="preserve">
+ <source>Too many devices</source>
+ <target state-qualifier="leveraged-mt">För många enheter</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Too many devices registered with account" xml:space="preserve">
+ <source>Too many devices registered with account</source>
+ <target state-qualifier="leveraged-mt">För många enheter registrerade med kontot</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Trackers" xml:space="preserve">
+ <source>Trackers</source>
+ <target state-qualifier="leveraged-mt">Spårare</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Try again" xml:space="preserve">
+ <source>Try again</source>
+ <target state-qualifier="leveraged-mt">Försök igen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Tunnel is unset." xml:space="preserve">
+ <source>Tunnel is unset.</source>
+ <target state-qualifier="leveraged-mt">Tunneln är upplöst.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Type" xml:space="preserve">
+ <source>Type</source>
+ <target state-qualifier="leveraged-mt">Typ</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="UDP-over-TCP" xml:space="preserve">
+ <source>UDP-over-TCP</source>
+ <target state-qualifier="leveraged-mt">UDP-over-TCP</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to authenticate account. Please log out and log back in." xml:space="preserve">
+ <source>Unable to authenticate account. Please log out and log back in.</source>
+ <target state-qualifier="leveraged-mt">Det går inte att autentisera kontot. Logga ut och logga in igen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection after update. Please disconnect and reconnect." xml:space="preserve">
+ <source>Unable to start tunnel connection after update. Please disconnect and reconnect.</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att starta tunnelanslutningen efter uppdatering. Vänligen koppla bort och återansluta.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unable to start tunnel connection. Please send a problem report." xml:space="preserve">
+ <source>Unable to start tunnel connection. Please send a problem report.</source>
+ <target state-qualifier="leveraged-mt">Det gick inte att starta tunnelanslutningen. Skicka en felrapport.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unexpected server response: %1$@ (HTTP status: %2$d)" xml:space="preserve">
+ <source>Unexpected server response: %1$@ (HTTP status: %2$d)</source>
+ <target state-qualifier="leveraged-mt">Oväntat serversvar: %1$@ (HTTP-status: %2$d)</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unexpected server response: %d" xml:space="preserve">
+ <source>Unexpected server response: %d</source>
+ <target state-qualifier="leveraged-mt">Oväntat serversvar: %d</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unknown error." xml:space="preserve">
+ <source>Unknown error.</source>
+ <target state-qualifier="leveraged-mt">Okänt fel.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Unsecured connection" xml:space="preserve">
+ <source>Unsecured connection</source>
+ <target state-qualifier="leveraged-mt">Osäkrad anslutning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Use custom DNS server" xml:space="preserve">
+ <source>Use custom DNS server</source>
+ <target state-qualifier="leveraged-mt">Använd anpassad DNS-server</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Username" xml:space="preserve">
+ <source>Username</source>
+ <target state-qualifier="leveraged-mt">Användarnamn</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="VPN settings" xml:space="preserve">
+ <source>VPN settings</source>
+ <target state-qualifier="leveraged-mt">VPN-inställningar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Valid range: 1 - 65535" xml:space="preserve">
+ <source>Valid range: 1 - 65535</source>
+ <target state-qualifier="leveraged-mt">Valid range: 1 - 65535</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Verifying voucher..." xml:space="preserve">
+ <source>Verifying voucher...</source>
+ <target state-qualifier="leveraged-mt">Verifierar kupong...</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="View app logs" xml:space="preserve">
+ <source>View app logs</source>
+ <target state-qualifier="leveraged-mt">Visa app-loggar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Voucher code is invalid." xml:space="preserve">
+ <source>Voucher code is invalid.</source>
+ <target state-qualifier="leveraged-mt">Kupongkoden är ogiltig.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Voucher was successfully redeemed." xml:space="preserve">
+ <source>Voucher was successfully redeemed.</source>
+ <target state-qualifier="leveraged-mt">Kupongen har lösts in.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection." xml:space="preserve">
+ <source>Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection.</source>
+ <target state-qualifier="leveraged-mt">Varning: malware blockeraren är inte en anti-virus och bör inte behandlas som sådan, detta är bara ett extra lager av skydd.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="We are having some issues, please try again later" xml:space="preserve">
+ <source>We are having some issues, please try again later</source>
+ <target state-qualifier="leveraged-mt">Vi har några problem, försök igen senare</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="We will look into this." xml:space="preserve">
+ <source>We will look into this.</source>
+ <target state-qualifier="leveraged-mt">Vi kommer att undersöka detta.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Welcome, this device is now called **%@**. For more details see the info button in Account." xml:space="preserve">
+ <source>Welcome, this device is now called **%@**. For more details see the info button in Account.</source>
+ <target state-qualifier="leveraged-mt">Välkommen, denna enhet kallas nu **%@**. För mer information se knappen Info i Konto.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="What's new" xml:space="preserve">
+ <source>What's new</source>
+ <target state-qualifier="leveraged-mt">Vad är nytt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more. &#10;This might cause issues on certain websites, services, and apps.&#10;Attention: this setting cannot be used in combination with **Use custom DNS server**." xml:space="preserve">
+ <source>When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more.
+This might cause issues on certain websites, services, and apps.
+Attention: this setting cannot be used in combination with **Use custom DNS server**.</source>
+ <target state-qualifier="leveraged-mt">När den här funktionen är aktiverad stoppar den enheten från att kontakta vissa domäner eller webbplatser som är kända för att distribuera annonser, skadlig kod, trackers och mer.
+Detta kan orsaka problem på vissa webbplatser, tjänster och appar.
+Observera: den här inställningen kan inte användas i kombination med **Använd anpassad DNS-server**.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="When using DAITA, one provider with DAITA-enabled servers is required." xml:space="preserve">
+ <source>When using DAITA, one provider with DAITA-enabled servers is required.</source>
+ <target state-qualifier="leveraged-mt">Vid användning av DAITA krävs en leverantör med DAITA-aktiverade servrar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server." xml:space="preserve">
+ <source>Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server.</source>
+ <target state-qualifier="leveraged-mt">Vilken TCP-port UDP-over-TCP obfuscation protokollet bör ansluta till på VPN-servern.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="WireGuard Obfuscation" xml:space="preserve">
+ <source>WireGuard Obfuscation</source>
+ <target state-qualifier="leveraged-mt">Trådvärnsförfalskning</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="WireGuard ports" xml:space="preserve">
+ <source>WireGuard ports</source>
+ <target state-qualifier="leveraged-mt">WireGuard portar</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Direct&quot; method, the app communicates with a Mullvad API server directly without any intermediate proxies." xml:space="preserve">
+ <source>With the "Direct" method, the app communicates with a Mullvad API server directly without any intermediate proxies.</source>
+ <target state-qualifier="leveraged-mt">Med "Direkt" metoden kommunicerar appen med en Mullvads API-server direkt utan några mellanliggande proxier.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Encrypted DNS proxy&quot; method, the app will communicate with our Mullvad API through a proxy address.&#10;It does this by retrieving an address from a DNS over HTTPS (DoH) server and then using that to reach our API servers." xml:space="preserve">
+ <source>With the "Encrypted DNS proxy" method, the app will communicate with our Mullvad API through a proxy address.
+It does this by retrieving an address from a DNS over HTTPS (DoH) server and then using that to reach our API servers.</source>
+ <target state-qualifier="leveraged-mt">Med metoden "Krypterad DNS-proxy" kommer appen att kommunicera med vårt Mullvad API genom en proxyadress.
+Det gör detta genom att hämta en adress från en DNS över HTTPS (DoH) server och sedan använda det för att nå våra API-servrar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="With the &quot;Mullvad bridges&quot; method, the app communicates with a Mullvad API server via a Mullvad bridge server. It does this by sending the traffic obfuscated by Shadowsocks." xml:space="preserve">
+ <source>With the "Mullvad bridges" method, the app communicates with a Mullvad API server via a Mullvad bridge server. It does this by sending the traffic obfuscated by Shadowsocks.</source>
+ <target state-qualifier="leveraged-mt">Med "Mullvad bridges"-metoden kommunicerar appen med en Mullvads API-server via en Mullvads bryggserver. Det gör detta genom att skicka trafiken fördunklad av Shadowsocks.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Yes, continue" xml:space="preserve">
+ <source>Yes, continue</source>
+ <target state-qualifier="leveraged-mt">Ja, fortsätt</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address." xml:space="preserve">
+ <source>You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address.</source>
+ <target state-qualifier="leveraged-mt">Ni är på väg att skicka problemrapporten utan ett sätt för oss att återkomma till er. Om du vill ha ett svar på din rapport måste du ange en e-postadress.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You are logged in with an invalid account number. Please log out and try another one." xml:space="preserve">
+ <source>You are logged in with an invalid account number. Please log out and try another one.</source>
+ <target state-qualifier="leveraged-mt">Du är inloggad med ett ogiltigt kontonummer. Logga ut och prova ett annat.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You can add more time via the account view or website to continue using the VPN." xml:space="preserve">
+ <source>You can add more time via the account view or website to continue using the VPN.</source>
+ <target state-qualifier="leveraged-mt">Du kan lägga till mer tid via kontovyn eller webbplatsen för att fortsätta använda VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You can use the &quot;restore purchases&quot; function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account." xml:space="preserve">
+ <source>You can use the "restore purchases" function to check for any in-app payments made via Apple services. If there is a payment that has not been credited, it will add the time to the currently logged in Mullvad account.</source>
+ <target state-qualifier="leveraged-mt">Du kan använda funktionen "återställ köp" för att kontrollera eventuella in-app betalningar som görs via Apple-tjänster. Om det finns en betalning som inte har krediterats kommer den att lägga till tid till det inloggade Mullva-kontot.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have %@ left on this account." xml:space="preserve">
+ <source>You have %@ left on this account.</source>
+ <target state-qualifier="leveraged-mt">Du har %@ kvar på detta konto.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below." xml:space="preserve">
+ <source>You have no more VPN time left on this account. Either buy credit on our website or make an in-app purchase via the **Add time** button below.</source>
+ <target state-qualifier="leveraged-mt">Du har ingen mer VPN-tid kvar på detta konto. Antingen köpa kredit på vår webbplats eller göra ett in-app köp via **Lägg till tid** knappen nedan.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have no more VPN time left on this account. To add more, you will need to disconnect and access the Internet with an unsecure connection." xml:space="preserve">
+ <source>You have no more VPN time left on this account. To add more, you will need to disconnect and access the Internet with an unsecure connection.</source>
+ <target state-qualifier="leveraged-mt">Du har ingen mer VPN-tid kvar på detta konto. För att lägga till mer, måste du koppla bort och komma åt Internet med en osäker anslutning.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have one day left on this account. Please add more time to continue using the VPN." xml:space="preserve">
+ <source>You have one day left on this account. Please add more time to continue using the VPN.</source>
+ <target state-qualifier="leveraged-mt">Du har en dag kvar på detta konto. Lägg till mer tid för att fortsätta använda VPN.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have removed this device. To connect again, you will need to log back in." xml:space="preserve">
+ <source>You have removed this device. To connect again, you will need to log back in.</source>
+ <target state-qualifier="leveraged-mt">Du har tagit bort den här enheten. För att ansluta igen måste du logga in igen.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You have unsaved changes." xml:space="preserve">
+ <source>You have unsaved changes.</source>
+ <target state-qualifier="leveraged-mt">Du har osparade ändringar.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your device is offline. The tunnel will automatically connect once your device is back online." xml:space="preserve">
+ <source>Your device is offline. The tunnel will automatically connect once your device is back online.</source>
+ <target state-qualifier="leveraged-mt">Din enhet är offline. Tunneln ansluts automatiskt när enheten är online.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your device is offline. Try connecting again when the device has access to Internet." xml:space="preserve">
+ <source>Your device is offline. Try connecting again when the device has access to Internet.</source>
+ <target state-qualifier="leveraged-mt">Din enhet är offline. Försök ansluta igen när enheten har tillgång till Internet.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your email (optional)" xml:space="preserve">
+ <source>Your email (optional)</source>
+ <target state-qualifier="leveraged-mt">Din e-postadress (valfritt)</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your previous purchases have already been added to this account." xml:space="preserve">
+ <source>Your previous purchases have already been added to this account.</source>
+ <target state-qualifier="leveraged-mt">Dina tidigare köp har redan lagts till i detta konto.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Your purchase was successfully refunded." xml:space="preserve">
+ <source>Your purchase was successfully refunded.</source>
+ <target state-qualifier="leveraged-mt">Ditt köp har återbetalats.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="You’re all set!!" xml:space="preserve">
+ <source>You’re all set!!</source>
+ <target state-qualifier="leveraged-mt">Ni är alla klara!</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="method" xml:space="preserve">
+ <source>method</source>
+ <target state-qualifier="leveraged-mt">metod</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.&#10;To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.&#10;Would you like to continue to enable “Local network sharing”?" xml:space="preserve">
+ <source>“%@ Local network sharing” requires restarting the VPN connection, which will disconnect you and briefly expose your traffic.
+To prevent this, manually enable Airplane Mode and turn off Wi-Fi before continuing.
+Would you like to continue to enable “Local network sharing”?</source>
+ <target state-qualifier="leveraged-mt">“%@ Lokalt nätverksdelning” kräver att VPN-anslutningen startas om, vilket kopplar bort dig och kortfattat exponerar din trafik.
+För att förhindra detta, aktivera flygplansläge manuellt och stäng av Wi-Fi innan du fortsätter.
+Vill du fortsätta att aktivera “Lokalt nätverk delning”?</target>
+ <note/>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="MullvadVPN/Supporting Files/en.lproj/InfoPlist.strings" source-language="en" target-language="sv" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="CFBundleDisplayName" xml:space="preserve">
+ <source>Mullvad VPN</source>
+ <target state-qualifier="leveraged-mt">Mullvad VPN</target>
+ <note>Bundle display name</note>
+ </trans-unit>
+ <trans-unit id="CFBundleName" xml:space="preserve">
+ <source>MullvadVPN</source>
+ <target state-qualifier="leveraged-mt">MullvadVPN</target>
+ <note>Bundle name</note>
+ </trans-unit>
+ <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
+ <source>The app needs this to connect and test a new method.</source>
+ <target state-qualifier="leveraged-tm">Appen behöver detta för att ansluta och testa en ny metod.</target>
+ <note>Privacy - Local Network Usage Description</note>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="PacketTunnel/en.lproj/InfoPlist.strings" source-language="en" target-language="sv" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.1" build-num="16B40"/>
+ </header>
+ <body>
+ <trans-unit id="CFBundleDisplayName" xml:space="preserve">
+ <source>PacketTunnel</source>
+ <target state-qualifier="leveraged-tm">Pakettunnel</target>
+ <note>Bundle display name</note>
+ </trans-unit>
+ <trans-unit id="CFBundleName" xml:space="preserve">
+ <source>PacketTunnel</source>
+ <target state-qualifier="leveraged-tm">Pakettunnel</target>
+ <note>Bundle name</note>
+ </trans-unit>
+ </body>
+ </file>
+</xliff>
diff --git a/ios/translation/scripts/Readme.md b/ios/translation/scripts/Readme.md
index 26e8d78ee3..44674d7eff 100644
--- a/ios/translation/scripts/Readme.md
+++ b/ios/translation/scripts/Readme.md
@@ -5,7 +5,7 @@ Automate exporting localizable strings (XLIFF) from the MullvadVPN iOS project u
This folder contains a Bash workflow that:
1. Builds the Xcode project (to emit/verify localized resources).
-2. Exports localizations for one or more languages.
+2. Exports and imports localizations for one or more languages.
3. Logs each failed run (timestamped) to a git‑ignored `logs/` directory.
4. Uses a throwaway build output directory (`build/`, also git‑ignored).
5. Cleans up Derived Data artifacts after export (configurable).
@@ -19,7 +19,7 @@ This folder contains a Bash workflow that:
├── locales
│   └── en.xliff
└── scripts
- ├── export_localizations.sh # Main Bash script
+ ├── localizations.sh # Main Bash script
├── build # Ephemeral DerivedData or build scratch dir (ignored)
├── logs # Timestamped run logs (ignored)
└── README.md # You're here
@@ -33,9 +33,10 @@ This folder contains a Bash workflow that:
## Quick Start
```bash
-cd Locale
-chmod +x export-localizations.sh
-./export-localizations.sh
+cd ios/translation/scripts
+chmod +x localizations.sh
+./localizations.sh import # To import localizations into code
+./localizations.sh export # To export localizations from code
```
By default the script uses values set near the top of the file (edit them before first run). You can override most settings via environment variables or CLI flags (see below).
@@ -45,8 +46,10 @@ By default the script uses values set near the top of the file (edit them before
The script can loop languages. Set `EXPORT_LANGUAGES` to a comma‑separated list, e.g.:
+> **Note:** In most cases, exporting only the base language for translation is sufficient.
+
```bash
-EXPORT_LANGUAGES="da,de,en,es,fi,fr,it,ja,ko,my,nb,nl,pl,pt-PT,ru,sv,th,tr,zh-Hans,zh-Hant" ./export_localizations.sh
+EXPORT_LANGUAGES="da,de,en,es,fi,fr,it,ja,ko,my,nb,nl,pl,pt-PT,ru,sv,th,tr,zh-Hans,zh-Hant" ./localizations.sh export
```
XLIFF output will be placed under:
@@ -61,6 +64,23 @@ locales/
(Actual filenames depend on what `xcodebuild -exportLocalizations` emits.)
+## Multi-Language Import
+You can import translations back into code for multiple languages in one run.
+Place your translated .xliff files in the locales/ folder, named by their language code:
+
+```
+locales/
+ en.xliff
+ sv.xliff
+ de.xliff
+ fr.xliff
+```
+Run the import command:
+
+```bash
+./localizations.sh import
+```
+
---
## Logs
diff --git a/ios/translation/scripts/export-localizations.sh b/ios/translation/scripts/localizations.sh
index 6b855ec0c1..5232442e19 100755
--- a/ios/translation/scripts/export-localizations.sh
+++ b/ios/translation/scripts/localizations.sh
@@ -1,5 +1,5 @@
#!/usr/bin/env bash
-# export-localizations.sh
+# localizations.sh
# Exports Swift/SwiftUI localization files (.xliff) from an Xcode project.
#!/usr/bin/env bash
@@ -15,8 +15,8 @@ PROJECT_NAME="MullvadVPN"
SCHEME_NAME="$PROJECT_NAME"
XCODE_PROJECT_PATH="$SCRIPT_DIR/../../$PROJECT_NAME.xcodeproj"
-EXPORT_LOCALIZATION_DIR="$SCRIPT_DIR/../locales"
-TMP_EXPORT_DIR="${EXPORT_LOCALIZATION_DIR}/all_tmp_languages"
+LOCALIZATION_DIR="$SCRIPT_DIR/../locales"
+TMP_EXPORT_DIR="${LOCALIZATION_DIR}/all_tmp_languages"
EXPORT_LANGUAGES=${EXPORT_LANGUAGES:-"en"}
CONFIGURATION="Debug"
@@ -82,7 +82,7 @@ export_localizations() {
local xliff_file
xliff_file=$(find "$xcloc_dir" -name '*.xliff' | head -n 1)
if [[ -f "$xliff_file" ]]; then
- cp "$xliff_file" "$EXPORT_LOCALIZATION_DIR/${lang}.xliff"
+ cp "$xliff_file" "$LOCALIZATION_DIR/${lang}.xliff"
echo "✔️ Extracted $lang.xliff for Crowdin upload"
else
echo "❌ No .xliff file found in $xcloc_dir"
@@ -95,15 +95,75 @@ export_localizations() {
done
}
-main() {
+import_localizations() {
+ # Directory where the .xliff files are stored
+ XLIFF_DIR="$LOCALIZATION_DIR"
+ # Loop through each .xliff file in the directory
+ for xliff_file in "$XLIFF_DIR"/*.xliff; do
+ # Skip if no files found
+ [ -e "$xliff_file" ] || continue
+
+ # Remove unwanted attributes from the XLIFF file
+ sed -i '' -E 's/ state="needs-review-translation"//g' "$xliff_file"
+
+ # Extract language code from filename, e.g., fr.xliff → fr
+ language_code=$(basename "$xliff_file" .xliff)
+
+ echo "📥 Importing localization: $language_code from $xliff_file"
+
+ if ! xcodebuild -importLocalizations \
+ -project "$XCODE_PROJECT_PATH" \
+ -scheme "$SCHEME_NAME" \
+ -derivedDataPath "$DERIVED_DATA_DIR" \
+ -localizationPath "$xliff_file" \
+ -exportLanguage "$language_code" \
+ -disableAutomaticPackageResolution; then
+ echo "❌ Failed to import $xliff_file"
+ exit 1
+ fi
+ done
+ echo "✅ All localizations imported successfully."
+}
+
+localization_to_export() {
echo "📝 Export script started at: $(date)"
build_project
export_localizations
cleanup_build_folder
cleanup_temp_folder
- echo "🎉 Export complete. Crowdin-ready .xliff files are in: $EXPORT_LOCALIZATION_DIR"
+ echo "🎉 Export complete. Crowdin-ready .xliff files are in: $LOCALIZATION_DIR"
echo "✅ Script finished at: $(date)"
rm -f "$TMP_LOG"
}
-main
+localization_to_import() {
+ echo "📝 Import script started at: $(date)"
+ build_project
+ import_localizations
+ cleanup_build_folder
+ cleanup_temp_folder
+ echo "🎉 Import complete. Localized .xliff files have been imported to code"
+ echo "✅ Script finished at: $(date)"
+ rm -f "$TMP_LOG"
+}
+
+# Main entrypoint
+main() {
+ case "${1:-}" in
+ export)
+ localization_to_export
+ ;;
+ import)
+ localization_to_import
+ ;;
+ "")
+ echo "Available subcommands: export, import"
+ ;;
+ *)
+ echo "❌ Unknown parameter: $1"
+ exit 1
+ ;;
+ esac
+}
+
+main "$@"