summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authormojganii <mojgan.jelodar@mullvad.net>2025-10-14 16:17:57 +0200
committerJon Petersson <jon.petersson@mullvad.net>2025-10-17 09:07:27 +0200
commitdbd7b7cb78e5093ed3a2f469bb2b31f69b84f88f (patch)
treed05953725dfd389d86be2f4be47675fdf667ae26
parent85d22d6c425a6a384ed555b9daab5270b072503f (diff)
downloadmullvadvpn-dbd7b7cb78e5093ed3a2f469bb2b31f69b84f88f.tar.xz
mullvadvpn-dbd7b7cb78e5093ed3a2f469bb2b31f69b84f88f.zip
Update strings based on other platforms
-rw-r--r--ios/Assets/Localizable.xcstrings139
-rw-r--r--ios/MullvadSettings/CustomListRepository.swift2
-rw-r--r--ios/MullvadVPN.xcodeproj/project.pbxproj24
-rw-r--r--ios/MullvadVPN/Coordinators/AccountCoordinator.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/CustomLists/EditCustomListCoordinator.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsViewController.swift6
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodCoordinator.swift2
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodView.swift4
-rw-r--r--ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel.swift6
-rw-r--r--ios/MullvadVPN/Coordinators/WelcomeCoordinator.swift2
-rw-r--r--ios/MullvadVPN/Extensions/RESTCreateApplePaymentResponse+Localization.swift4
-rw-r--r--ios/MullvadVPN/Extensions/RESTError+Display.swift4
-rw-r--r--ios/MullvadVPN/TunnelManager/TunnelState+UI.swift191
-rw-r--r--ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift2
-rw-r--r--ios/MullvadVPN/View controllers/AccountDeletion/AccountDeletionView.swift2
-rw-r--r--ios/MullvadVPN/View controllers/InAppPurchase/InAppPurchaseViewController.swift2
-rw-r--r--ios/MullvadVPN/View controllers/RedeemVoucher/AddCreditSucceededViewController.swift2
-rw-r--r--ios/MullvadVPN/View controllers/RedeemVoucher/LogoutDialogueView.swift15
-rw-r--r--ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift2
-rw-r--r--ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift2
-rw-r--r--ios/MullvadVPNTests/MullvadVPN/TunnelManager/TunnelStateTests.swift139
-rw-r--r--ios/translation/locales/de.xliff669
-rw-r--r--ios/translation/locales/en.xliff253
-rw-r--r--ios/translation/locales/fr.xliff673
-rw-r--r--ios/translation/locales/sv.xliff677
26 files changed, 1064 insertions, 1766 deletions
diff --git a/ios/Assets/Localizable.xcstrings b/ios/Assets/Localizable.xcstrings
index 801dd39441..63b6c56f03 100644
--- a/ios/Assets/Localizable.xcstrings
+++ b/ios/Assets/Localizable.xcstrings
@@ -92,9 +92,6 @@
}
}
},
- "%@ have been added to your account" : {
-
- },
"%@ left on this account" : {
},
@@ -114,7 +111,7 @@
}
}
},
- "%@ were added to your account." : {
+ "%@ was added to your account." : {
},
"%@, %@" : {
@@ -174,9 +171,6 @@
}
}
},
- "A custom list with this name exists, please choose a unique name." : {
-
- },
"About API access…" : {
},
@@ -262,6 +256,7 @@
},
"Account deletion" : {
+
},
"Account number" : {
"localizations" : {
@@ -357,9 +352,6 @@
}
}
},
- "Add access method" : {
-
- },
"Add locations" : {
"localizations" : {
"de" : {
@@ -382,6 +374,9 @@
}
}
},
+ "Add method" : {
+
+ },
"Add new list" : {
},
@@ -407,9 +402,6 @@
}
}
},
- "Add Time" : {
-
- },
"Ads" : {
"localizations" : {
"de" : {
@@ -501,7 +493,7 @@
}
}
},
- "All Providers" : {
+ "All providers" : {
},
"Any" : {
@@ -592,27 +584,8 @@
}
}
},
- "API unreachable, save anyway?" : {
- "localizations" : {
- "de" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "API nicht erreichbar, dennoch speichern?"
- }
- },
- "fr" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "API injoignable, l'enregistrer quand même ?"
- }
- },
- "sv" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "API kan inte nås, spara ändå?"
- }
- }
- }
+ "API unreachable, save method anyway?" : {
+
},
"App logs" : {
@@ -695,9 +668,6 @@
}
}
},
- "Back to editing" : {
-
- },
"Blocked connection" : {
},
@@ -1085,7 +1055,7 @@
}
}
},
- "Copy to pasteboard" : {
+ "Copied Mullvad account number to pasteboard" : {
},
"Correct account number" : {
@@ -1144,12 +1114,6 @@
"Creating new account" : {
},
- "Creating quantum secure connection" : {
-
- },
- "Creating secure connection" : {
-
- },
"Current device" : {
"localizations" : {
"de" : {
@@ -1281,8 +1245,6 @@
"Delete account" : {
},
- "Delete Account" : {
- },
"Delete list" : {
"localizations" : {
"de" : {
@@ -1328,6 +1290,7 @@
}
},
"Deleting account..." : {
+
},
"Device is inactive" : {
"localizations" : {
@@ -1376,9 +1339,6 @@
"Device name: %@" : {
},
- "Direct" : {
-
- },
"Direct only" : {
"localizations" : {
"de" : {
@@ -1495,28 +1455,6 @@
}
}
},
- "Disconnecting" : {
- "localizations" : {
- "de" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "Verbindung wird getrennt"
- }
- },
- "fr" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "Déconnexion en cours"
- }
- },
- "sv" : {
- "stringUnit" : {
- "state" : "translated",
- "value" : "Kopplar från"
- }
- }
- }
- },
"Disconnecting..." : {
"localizations" : {
"de" : {
@@ -1742,9 +1680,6 @@
"Enabling" : {
},
- "Encrypted DNS proxy" : {
-
- },
"Enter IP" : {
"localizations" : {
"de" : {
@@ -1861,7 +1796,7 @@
"Expands this location." : {
},
- "Failed to connect to App store, please try again later." : {
+ "Failed to load products, please try again" : {
},
"Failed to send" : {
@@ -2168,9 +2103,6 @@
}
}
},
- "If so, click log out below to log in with the other account number." : {
-
- },
"If you are having issues connecting to VPN servers, please contact support." : {
"localizations" : {
"de" : {
@@ -2393,7 +2325,7 @@
"Internal error." : {
},
- "Invalid account" : {
+ "Invalid account number" : {
},
"Invalid device state." : {
@@ -2469,6 +2401,7 @@
}
},
"Last four digits of the account number are incorrect" : {
+
},
"Last used account" : {
@@ -2649,10 +2582,7 @@
}
}
},
- "Manage default and setup custom methods to access the Mullvad API." : {
-
- },
- "Manage default and setup custom methods to access the Mullvad API. " : {
+ "Manage and add custom methods to access the Mullvad API." : {
},
"Manage devices" : {
@@ -2683,9 +2613,6 @@
"Method settings" : {
},
- "Mullvad bridges" : {
-
- },
"multihop" : {
"localizations" : {
"sv" : {
@@ -2750,6 +2677,9 @@
}
}
},
+ "Name is already taken." : {
+
+ },
"Name should be no longer than %i characters." : {
},
@@ -3322,19 +3252,6 @@
}
}
},
- "Quantum secure connection" : {
-
- },
- "Quantum secure connection. Connected to %@, %@" : {
- "localizations" : {
- "en" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "Quantum secure connection. Connected to %1$@, %2$@"
- }
- }
- }
- },
"Quantum-resistant tunnel" : {
"localizations" : {
"de" : {
@@ -3583,9 +3500,6 @@
}
}
},
- "Save anyway" : {
-
- },
"Saving changes..." : {
},
@@ -3611,16 +3525,6 @@
}
}
},
- "Secure connection. Connected to %@, %@" : {
- "localizations" : {
- "en" : {
- "stringUnit" : {
- "state" : "new",
- "value" : "Secure connection. Connected to %1$@, %2$@"
- }
- }
- }
- },
"Select location" : {
"localizations" : {
"de" : {
@@ -3788,9 +3692,6 @@
}
}
},
- "Server IP Override" : {
-
- },
"Setting: %@" : {
},
@@ -4456,9 +4357,6 @@
}
}
},
- "Too many devices registered with account" : {
-
- },
"Trackers" : {
"localizations" : {
"de" : {
@@ -4594,9 +4492,6 @@
}
}
},
- "Unsecured connection" : {
-
- },
"Use custom DNS server" : {
"localizations" : {
"de" : {
diff --git a/ios/MullvadSettings/CustomListRepository.swift b/ios/MullvadSettings/CustomListRepository.swift
index 2ff6fea627..5b1dda6287 100644
--- a/ios/MullvadSettings/CustomListRepository.swift
+++ b/ios/MullvadSettings/CustomListRepository.swift
@@ -18,7 +18,7 @@ public enum CustomRelayListError: LocalizedError, Hashable {
public var errorDescription: String? {
switch self {
case .duplicateName:
- NSLocalizedString("A custom list with this name exists, please choose a unique name.", comment: "")
+ NSLocalizedString("Name is already taken.", comment: "")
case .nameTooLong:
String(
format: NSLocalizedString("Name should be no longer than %i characters.", comment: ""),
diff --git a/ios/MullvadVPN.xcodeproj/project.pbxproj b/ios/MullvadVPN.xcodeproj/project.pbxproj
index 553bf4265d..2c9b6df726 100644
--- a/ios/MullvadVPN.xcodeproj/project.pbxproj
+++ b/ios/MullvadVPN.xcodeproj/project.pbxproj
@@ -81,8 +81,6 @@
44B02E3C2BC5B8A5008EDF34 /* Bundle+ProductVersion.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5891BF1B25E3E3EB006D6FB0 /* Bundle+ProductVersion.swift */; };
44B3C43A2BFE2C800079782C /* PacketTunnelActorReducer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44B3C4392BFE2C800079782C /* PacketTunnelActorReducer.swift */; };
44B3C43D2C00CBBD0079782C /* PacketTunnelActorReducerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44B3C43C2C00CBBC0079782C /* PacketTunnelActorReducerTests.swift */; };
- 44BB5F972BE527F4002520EB /* TunnelState+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44BB5F962BE527F4002520EB /* TunnelState+UI.swift */; };
- 44BB5F982BE527F4002520EB /* TunnelState+UI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44BB5F962BE527F4002520EB /* TunnelState+UI.swift */; };
44C18DE32C74DF93009BE3E1 /* TunnelPinger.swift in Sources */ = {isa = PBXBuildFile; fileRef = 449275432C3C3029000526DE /* TunnelPinger.swift */; };
44CAEAA12D442F5E004A8E65 /* LocationIdentifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44CAEAA02D442F56004A8E65 /* LocationIdentifier.swift */; };
44DD7D242B6CFFD70005F67F /* StartTunnelOperationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 44DD7D232B6CFFD70005F67F /* StartTunnelOperationTests.swift */; };
@@ -998,6 +996,9 @@
F072D3CF2C07122400906F64 /* SettingsUpdaterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F072D3CE2C07122400906F64 /* SettingsUpdaterTests.swift */; };
F072D3D22C071AD100906F64 /* ShadowsocksLoaderTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F072D3D12C071AD100906F64 /* ShadowsocksLoaderTests.swift */; };
F073FCB32C6617D70062EA1D /* TunnelStore+Stubs.swift in Sources */ = {isa = PBXBuildFile; fileRef = F073FCB22C6617D70062EA1D /* TunnelStore+Stubs.swift */; };
+ F075C15C2E96A0C600B3C769 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F075C15B2E96A0C600B3C769 /* Localizable.xcstrings */; };
+ F075C15D2E96A0C600B3C769 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F075C15B2E96A0C600B3C769 /* Localizable.xcstrings */; };
+ F075C15E2E96A0C600B3C769 /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F075C15B2E96A0C600B3C769 /* Localizable.xcstrings */; };
F07751552C50F149006E6A12 /* EphemeralPeerExchangeActorStub.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C4C9BF2C495E7500A79006 /* EphemeralPeerExchangeActorStub.swift */; };
F07751572C50F149006E6A12 /* EphemeralPeerExchangingPipelineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F053F4B92C4A94D300FBD937 /* EphemeralPeerExchangingPipelineTests.swift */; };
F07751582C50F149006E6A12 /* MultiHopEphemeralPeerExchangerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C4C9BD2C49477B00A79006 /* MultiHopEphemeralPeerExchangerTests.swift */; };
@@ -1064,9 +1065,6 @@
F0B894F12BF751E300817A42 /* RelayWithDistance.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0B894F02BF751E300817A42 /* RelayWithDistance.swift */; };
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 */; };
- F0BC1E852E701C5A001CA97A /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F0BC1E842E701C5A001CA97A /* Localizable.xcstrings */; };
- F0BC1E892E701CA1001CA97A /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F0BC1E842E701C5A001CA97A /* Localizable.xcstrings */; };
- F0BC1E8C2E701CA1001CA97A /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = F0BC1E842E701C5A001CA97A /* Localizable.xcstrings */; };
F0BE65372B9F136A005CC385 /* LocationSectionHeaderFooterView.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0BE65362B9F136A005CC385 /* LocationSectionHeaderFooterView.swift */; };
F0C13FE42C64F7CB00BD087D /* DAITASettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C13FE32C64F7CB00BD087D /* DAITASettings.swift */; };
F0C13FE62C64FB3400BD087D /* TunnelSettingsV6.swift in Sources */ = {isa = PBXBuildFile; fileRef = F0C13FE52C64FB3400BD087D /* TunnelSettingsV6.swift */; };
@@ -1665,8 +1663,6 @@
44B02E3A2BC5732D008EDF34 /* LoggingTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LoggingTests.swift; sourceTree = "<group>"; };
44B3C4392BFE2C800079782C /* PacketTunnelActorReducer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PacketTunnelActorReducer.swift; sourceTree = "<group>"; };
44B3C43C2C00CBBC0079782C /* PacketTunnelActorReducerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PacketTunnelActorReducerTests.swift; sourceTree = "<group>"; };
- 44BB5F962BE527F4002520EB /* TunnelState+UI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TunnelState+UI.swift"; sourceTree = "<group>"; };
- 44BB5F992BE529FE002520EB /* TunnelStateTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TunnelStateTests.swift; sourceTree = "<group>"; };
44CAEAA02D442F56004A8E65 /* LocationIdentifier.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationIdentifier.swift; sourceTree = "<group>"; };
44DD7D232B6CFFD70005F67F /* StartTunnelOperationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StartTunnelOperationTests.swift; sourceTree = "<group>"; };
44DD7D262B6D18FB0005F67F /* MockTunnelInteractor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockTunnelInteractor.swift; sourceTree = "<group>"; };
@@ -2472,6 +2468,7 @@
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>"; };
+ F075C15B2E96A0C600B3C769 /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
F0791F1A2D76377400449F6D /* RelayCandidates.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayCandidates.swift; sourceTree = "<group>"; };
F07B53562C53B5270024F547 /* LocalNetworkIPs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocalNetworkIPs.swift; sourceTree = "<group>"; };
F07BF2572A26112D00042943 /* InputTextFormatterTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InputTextFormatterTests.swift; sourceTree = "<group>"; };
@@ -2519,7 +2516,6 @@
F0B894F02BF751E300817A42 /* RelayWithDistance.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RelayWithDistance.swift; sourceTree = "<group>"; };
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>"; };
- F0BC1E842E701C5A001CA97A /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = "<group>"; };
F0BE65362B9F136A005CC385 /* LocationSectionHeaderFooterView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LocationSectionHeaderFooterView.swift; 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>"; };
@@ -2963,7 +2959,6 @@
44DD7D232B6CFFD70005F67F /* StartTunnelOperationTests.swift */,
A9A5F9A12ACB003D0083449F /* TunnelManagerTests.swift */,
F0A0868F2C22D6A700BF83E7 /* TunnelSettingsStrategyTests.swift */,
- 44BB5F992BE529FE002520EB /* TunnelStateTests.swift */,
F073FCB22C6617D70062EA1D /* TunnelStore+Stubs.swift */,
A9E031792ACB0AE70095D843 /* UIApplication+Stubs.swift */,
58165EBD2A262CBB00688EAD /* WgKeyRotationTests.swift */,
@@ -3142,7 +3137,6 @@
5820676326E771DB00655B05 /* TunnelManagerErrors.swift */,
5823FA5326CE49F600283BF8 /* TunnelObserver.swift */,
58B93A1226C3F13600A55733 /* TunnelState.swift */,
- 44BB5F962BE527F4002520EB /* TunnelState+UI.swift */,
A9E0317D2ACC32920095D843 /* TunnelStatusBlockObserver.swift */,
5803B4B12940A48700C23744 /* TunnelStore.swift */,
A9E031762ACB08950095D843 /* BackgroundTaskProvider.swift */,
@@ -4229,7 +4223,7 @@
children = (
5859A55429CD9DD800F66591 /* changes.txt */,
587DCCEE287D84A500CE821E /* countries.geo.json */,
- F0BC1E842E701C5A001CA97A /* Localizable.xcstrings */,
+ F075C15B2E96A0C600B3C769 /* Localizable.xcstrings */,
);
path = Assets;
sourceTree = "<group>";
@@ -5703,7 +5697,7 @@
58727283265D173C00F315B2 /* LaunchScreen.storyboard in Resources */,
5859A55529CD9DD900F66591 /* changes.txt in Resources */,
587DCCEF287D84A500CE821E /* countries.geo.json in Resources */,
- F0BC1E852E701C5A001CA97A /* Localizable.xcstrings in Resources */,
+ F075C15C2E96A0C600B3C769 /* Localizable.xcstrings in Resources */,
58CE5E6B224146210008646E /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -5727,7 +5721,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- F0BC1E892E701CA1001CA97A /* Localizable.xcstrings in Resources */,
+ F075C15D2E96A0C600B3C769 /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -5784,7 +5778,7 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- F0BC1E8C2E701CA1001CA97A /* Localizable.xcstrings in Resources */,
+ F075C15E2E96A0C600B3C769 /* Localizable.xcstrings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -6193,7 +6187,6 @@
7A9BE5AB2B909A1700E2A7D0 /* LocationDataSourceProtocol.swift in Sources */,
A9A5FA2A2ACB05160083449F /* CoordinatesTests.swift in Sources */,
44DD7D242B6CFFD70005F67F /* StartTunnelOperationTests.swift in Sources */,
- 44BB5F982BE527F4002520EB /* TunnelState+UI.swift in Sources */,
A9A5FA2B2ACB05160083449F /* CustomDateComponentsFormattingTests.swift in Sources */,
440870842D809C980038972F /* UIImage+Helpers.swift in Sources */,
A9A5FA2C2ACB05160083449F /* DeviceCheckOperationTests.swift in Sources */,
@@ -6408,7 +6401,6 @@
7A8A19142CEF2548000BCB5B /* DAITATunnelSettingsViewModel.swift in Sources */,
F97C38E32DEEDC28006DCB08 /* MullvadListActionItemView.swift in Sources */,
7A8A18F92CE34EA8000BCB5B /* SettingsMultihopView.swift in Sources */,
- 44BB5F972BE527F4002520EB /* TunnelState+UI.swift in Sources */,
7AFBE3892D089163002335FC /* TunnelViewController.swift in Sources */,
7A11DD0B2A9495D400098CD8 /* AppRoutes.swift in Sources */,
5827B0902B0CAA0500CCBBA1 /* EditAccessMethodCoordinator.swift in Sources */,
diff --git a/ios/MullvadVPN/Coordinators/AccountCoordinator.swift b/ios/MullvadVPN/Coordinators/AccountCoordinator.swift
index c3c87db08e..65a284974e 100644
--- a/ios/MullvadVPN/Coordinators/AccountCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/AccountCoordinator.swift
@@ -268,9 +268,7 @@ final class AccountCoordinator: Coordinator, Presentable, Presenting, @unchecked
func showFailToFetchProducts() {
let message = NSLocalizedString(
- """
- Failed to connect to App store, please try again later.
- """,
+ "Failed to load products, please try again",
comment: ""
)
diff --git a/ios/MullvadVPN/Coordinators/CustomLists/EditCustomListCoordinator.swift b/ios/MullvadVPN/Coordinators/CustomLists/EditCustomListCoordinator.swift
index 5807f65983..40e02330e9 100644
--- a/ios/MullvadVPN/Coordinators/CustomLists/EditCustomListCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/CustomLists/EditCustomListCoordinator.swift
@@ -110,7 +110,7 @@ class EditCustomListCoordinator: Coordinator, Presentable, Presenting {
}
),
AlertAction(
- title: NSLocalizedString("Back to editing", comment: ""),
+ title: NSLocalizedString("Cancel", comment: ""),
style: .default
),
]
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift
index b9ff03a2bf..15c57fffe8 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Add/AddAccessMethodCoordinator.swift
@@ -54,7 +54,7 @@ class AddAccessMethodCoordinator: Coordinator, Presentable, Presenting {
private func setUpControllerNavigationItem(_ controller: MethodSettingsViewController) {
controller.navigationItem.prompt = NSLocalizedString("The app will test the method before saving.", comment: "")
- controller.navigationItem.title = NSLocalizedString("Add access method", comment: "")
+ controller.navigationItem.title = NSLocalizedString("Add method", comment: "")
controller.saveBarButton.title = NSLocalizedString("Add", comment: "")
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsViewController.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsViewController.swift
index 1766f23a61..11636de197 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsViewController.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Edit/MethodSettings/MethodSettingsViewController.swift
@@ -323,10 +323,10 @@ class MethodSettingsViewController: UITableViewController {
id: "api-access-methods-testing-status-failed-alert",
accessibilityIdentifier: .accessMethodUnreachableAlert,
icon: .warning,
- message: NSLocalizedString("API unreachable, save anyway?", comment: ""),
+ message: NSLocalizedString("API unreachable, save method anyway?", comment: ""),
buttons: [
AlertAction(
- title: NSLocalizedString("Save anyway", comment: ""),
+ title: NSLocalizedString("Save", comment: ""),
style: .default,
accessibilityId: .accessMethodUnreachableSaveButton,
handler: { [weak self] in
@@ -334,7 +334,7 @@ class MethodSettingsViewController: UITableViewController {
}
),
AlertAction(
- title: NSLocalizedString("Back to editing", comment: ""),
+ title: NSLocalizedString("Cancel", comment: ""),
style: .default,
accessibilityId: .accessMethodUnreachableBackButton
),
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodCoordinator.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodCoordinator.swift
index 2b0c7443ad..31112f5afa 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodCoordinator.swift
@@ -87,7 +87,7 @@ class ListAccessMethodCoordinator: Coordinator, Presenting, SettingsChildCoordin
private func about() {
let header = NSLocalizedString("API access", comment: "")
let preamble = NSLocalizedString(
- "Manage default and setup custom methods to access the Mullvad API.",
+ "Manage and add custom methods to access the Mullvad API.",
comment: ""
)
let body = [
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodView.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodView.swift
index 86f23d9f48..6b8c418d31 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodView.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/List/ListAccessMethodView.swift
@@ -29,7 +29,7 @@ struct ListAccessMethodView<ViewModel>: View where ViewModel: ListAccessViewMode
var body: some View {
VStack(alignment: .leading, spacing: 0) {
let text = NSLocalizedString(
- "Manage default and setup custom methods to access the Mullvad API. ",
+ "Manage and add custom methods to access the Mullvad API.",
comment: ""
)
let about = NSLocalizedString("About API access…", comment: "")
@@ -38,7 +38,7 @@ struct ListAccessMethodView<ViewModel>: View where ViewModel: ListAccessViewMode
viewModel.items,
header: {
MullvadInfoHeaderView(
- bodyText: text,
+ bodyText: "\(text) ",
link: about,
onTapLink: viewModel.showAbout
)
diff --git a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel.swift b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel.swift
index 881bb2b2c6..14ebb9ab60 100644
--- a/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel.swift
+++ b/ios/MullvadVPN/Coordinators/Settings/APIAccess/Models/AccessMethodViewModel.swift
@@ -109,7 +109,7 @@ extension AccessMethodViewModel {
switch id {
case AccessMethodRepository.directId:
InfoModalConfig(
- header: NSLocalizedString("Direct", comment: ""),
+ header: "Direct",
preamble: NSLocalizedString("The app communicates with a Mullvad API server directly.", comment: ""),
body: [
NSLocalizedString(
@@ -122,7 +122,7 @@ extension AccessMethodViewModel {
)
case AccessMethodRepository.bridgeId:
InfoModalConfig(
- header: NSLocalizedString("Mullvad bridges", comment: ""),
+ header: "Mullvad bridges",
preamble: NSLocalizedString(
"The app communicates with a Mullvad API server via a Mullvad bridge server.",
comment: ""
@@ -141,7 +141,7 @@ extension AccessMethodViewModel {
)
case AccessMethodRepository.encryptedDNSId:
InfoModalConfig(
- header: NSLocalizedString("Encrypted DNS proxy", comment: ""),
+ header: "Encrypted DNS proxy",
preamble: NSLocalizedString(
"The app communicates with a Mullvad API server via a proxy address.",
comment: ""
diff --git a/ios/MullvadVPN/Coordinators/WelcomeCoordinator.swift b/ios/MullvadVPN/Coordinators/WelcomeCoordinator.swift
index a7bdc44df3..a0549bcd23 100644
--- a/ios/MullvadVPN/Coordinators/WelcomeCoordinator.swift
+++ b/ios/MullvadVPN/Coordinators/WelcomeCoordinator.swift
@@ -82,7 +82,7 @@ final class WelcomeCoordinator: Coordinator, Poppable, Presenting {
extension WelcomeCoordinator: @preconcurrency WelcomeViewControllerDelegate {
func didRequestToShowFailToFetchProducts(controller: WelcomeViewController) {
- let message = NSLocalizedString("Failed to connect to App store, please try again later.", comment: "")
+ let message = NSLocalizedString("Failed to load products, please try again", comment: "")
let presentation = AlertPresentation(
id: "welcome-failed-to-fetch-products-alert",
diff --git a/ios/MullvadVPN/Extensions/RESTCreateApplePaymentResponse+Localization.swift b/ios/MullvadVPN/Extensions/RESTCreateApplePaymentResponse+Localization.swift
index 9f113a1837..de63bfdfd4 100644
--- a/ios/MullvadVPN/Extensions/RESTCreateApplePaymentResponse+Localization.swift
+++ b/ios/MullvadVPN/Extensions/RESTCreateApplePaymentResponse+Localization.swift
@@ -27,7 +27,7 @@ extension REST.CreateApplePaymentResponse {
switch context {
case .purchase:
return String(
- format: NSLocalizedString("%@ have been added to your account", comment: ""),
+ format: NSLocalizedString("%@ was added to your account.", comment: ""),
formattedTimeAdded ?? ""
)
case .restoration:
@@ -39,7 +39,7 @@ extension REST.CreateApplePaymentResponse {
)
case .timeAdded:
return String(
- format: NSLocalizedString("%@ have been added to your account", comment: ""),
+ format: NSLocalizedString("%@ was added to your account.", comment: ""),
formattedTimeAdded ?? ""
)
}
diff --git a/ios/MullvadVPN/Extensions/RESTError+Display.swift b/ios/MullvadVPN/Extensions/RESTError+Display.swift
index edc00678ea..8f5d156d13 100644
--- a/ios/MullvadVPN/Extensions/RESTError+Display.swift
+++ b/ios/MullvadVPN/Extensions/RESTError+Display.swift
@@ -26,10 +26,10 @@ extension REST.Error: MullvadTypes.DisplayError {
switch serverResponse.code {
case .invalidAccount:
- return NSLocalizedString("Invalid account", comment: "")
+ return NSLocalizedString("Invalid account number", comment: "")
case .maxDevicesReached:
- return NSLocalizedString("Too many devices registered with account", comment: "")
+ return NSLocalizedString("Too many devices", comment: "")
case .serviceUnavailable:
return NSLocalizedString("We are having some issues, please try again later", comment: "")
diff --git a/ios/MullvadVPN/TunnelManager/TunnelState+UI.swift b/ios/MullvadVPN/TunnelManager/TunnelState+UI.swift
deleted file mode 100644
index 4ef6c83bc8..0000000000
--- a/ios/MullvadVPN/TunnelManager/TunnelState+UI.swift
+++ /dev/null
@@ -1,191 +0,0 @@
-//
-// TunnelState+UI.swift
-// MullvadVPN
-//
-// Created by Andrew Bulhak on 2024-05-03.
-// Copyright © 2025 Mullvad VPN AB. All rights reserved.
-//
-
-import UIKit
-
-extension TunnelState {
- enum TunnelControlActionButton {
- case connect
- case disconnect
- case cancel
- }
-
- var textColorForSecureLabel: UIColor {
- switch self {
- case .connecting, .reconnecting, .waitingForConnectivity(.noConnection), .negotiatingEphemeralPeer:
- .white
- case .connected:
- .successColor
- case .disconnecting, .disconnected, .pendingReconnect, .waitingForConnectivity(.noNetwork), .error:
- .dangerColor
- }
- }
-
- var shouldEnableButtons: Bool {
- if case .waitingForConnectivity(.noNetwork) = self {
- return false
- }
-
- return true
- }
-
- var localizedTitleForSecureLabel: String {
- switch self {
- case let .connecting(_, isPostQuantum, _), let .reconnecting(_, isPostQuantum, _):
- if isPostQuantum {
- NSLocalizedString("Creating quantum secure connection", comment: "")
- } else {
- NSLocalizedString("Creating secure connection", comment: "")
- }
-
- case let .negotiatingEphemeralPeer(_, _, isPostQuantum, _):
- if isPostQuantum {
- NSLocalizedString("Creating quantum secure connection", comment: "")
- } else {
- NSLocalizedString("Creating secure connection", comment: "")
- }
-
- case let .connected(_, isPostQuantum, _):
- if isPostQuantum {
- NSLocalizedString("Quantum secure connection", comment: "")
- } else {
- NSLocalizedString("Connected", comment: "")
- }
-
- case .disconnecting(.nothing):
- NSLocalizedString("Disconnecting", comment: "")
-
- case .disconnecting(.reconnect), .pendingReconnect:
- NSLocalizedString("Reconnecting", comment: "")
-
- case .disconnected:
- NSLocalizedString("Unsecured connection", comment: "")
-
- case .waitingForConnectivity(.noConnection), .error:
- NSLocalizedString("Blocked connection", comment: "")
-
- case .waitingForConnectivity(.noNetwork):
- NSLocalizedString("No network", comment: "")
- }
- }
-
- var localizedTitleForSelectLocationButton: String {
- switch self {
- case .disconnecting(.reconnect), .pendingReconnect:
- NSLocalizedString("Select location", comment: "")
-
- case .disconnected, .disconnecting(.nothing):
- NSLocalizedString("Select location", comment: "")
-
- case .connecting, .connected, .reconnecting, .waitingForConnectivity, .error:
- NSLocalizedString("Switch location", comment: "")
-
- case .negotiatingEphemeralPeer:
- NSLocalizedString("Switch location", comment: "")
- }
- }
-
- var localizedAccessibilityLabel: String {
- switch self {
- case let .connecting(_, isPostQuantum, _):
- secureConnectionLabel(isPostQuantum: isPostQuantum)
-
- case let .negotiatingEphemeralPeer(_, _, isPostQuantum, _):
- secureConnectionLabel(isPostQuantum: isPostQuantum)
-
- case let .connected(tunnelInfo, isPostQuantum, _):
- if isPostQuantum {
- String(
- format: NSLocalizedString("Quantum secure connection. Connected to %@, %@", comment: ""),
- tunnelInfo.exit.location.city,
- tunnelInfo.exit.location.country
- )
- } else {
- String(
- format: NSLocalizedString("Secure connection. Connected to %@, %@", comment: ""),
- tunnelInfo.exit.location.city,
- tunnelInfo.exit.location.country
- )
- }
-
- case .disconnected:
- NSLocalizedString("Unsecured connection", comment: "")
- case let .reconnecting(tunnelInfo, _, _):
- String(
- format: NSLocalizedString("Reconnecting to %@, %@", comment: ""),
- tunnelInfo.exit.location.city,
- tunnelInfo.exit.location.country
- )
-
- case .waitingForConnectivity(.noConnection), .error:
- NSLocalizedString("Blocked connection", comment: "")
-
- case .waitingForConnectivity(.noNetwork):
- NSLocalizedString("No network", comment: "")
-
- case .disconnecting(.nothing):
- NSLocalizedString("Disconnecting", comment: "")
-
- case .disconnecting(.reconnect), .pendingReconnect:
- NSLocalizedString("Reconnecting", comment: "")
- }
- }
-
- var actionButton: TunnelControlActionButton {
- switch self {
- case .disconnected, .disconnecting(.nothing), .waitingForConnectivity(.noNetwork):
- .connect
- case .connecting, .pendingReconnect, .disconnecting(.reconnect), .waitingForConnectivity(.noConnection):
- .cancel
- case .negotiatingEphemeralPeer:
- .cancel
- case .connected, .reconnecting, .error:
- .disconnect
- }
- }
-
- var titleForCountryAndCity: String? {
- guard isSecured, let tunnelRelays = relays else {
- return nil
- }
-
- return "\(tunnelRelays.exit.location.country), \(tunnelRelays.exit.location.city)"
- }
-
- func titleForServer(daitaEnabled: Bool) -> String? {
- guard isSecured, let tunnelRelays = relays else {
- return nil
- }
-
- let exitName = tunnelRelays.exit.hostname
- let entryName = tunnelRelays.entry?.hostname
- let usingDaita = daitaEnabled == true
-
- return if let entryName {
- String(
- format: NSLocalizedString(
- "%@ via %@\(usingDaita ? " using DAITA" : "")",
- comment: ""
- ), exitName, entryName)
- } else {
- String(
- format: NSLocalizedString(
- "%@\(usingDaita ? " using DAITA" : "")",
- comment: ""
- ), exitName)
- }
- }
-
- func secureConnectionLabel(isPostQuantum: Bool) -> String {
- if isPostQuantum {
- NSLocalizedString("Creating quantum secure connection", comment: "")
- } else {
- NSLocalizedString("Creating secure connection", comment: "")
- }
- }
-}
diff --git a/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift b/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift
index 5c10df3679..b331e4de50 100644
--- a/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift
+++ b/ios/MullvadVPN/View controllers/Account/AccountNumberRow.swift
@@ -184,7 +184,7 @@ class AccountNumberRow: UIView {
selector: #selector(didTapShowHideAccount)
),
UIAccessibilityCustomAction(
- name: NSLocalizedString("Copy to pasteboard", comment: ""),
+ name: NSLocalizedString("Copied Mullvad account number to pasteboard", comment: ""),
target: self,
selector: #selector(didTapCopyAccountNumber)
),
diff --git a/ios/MullvadVPN/View controllers/AccountDeletion/AccountDeletionView.swift b/ios/MullvadVPN/View controllers/AccountDeletion/AccountDeletionView.swift
index 9b8738853a..8b1b8f78e7 100644
--- a/ios/MullvadVPN/View controllers/AccountDeletion/AccountDeletionView.swift
+++ b/ios/MullvadVPN/View controllers/AccountDeletion/AccountDeletionView.swift
@@ -62,7 +62,7 @@ struct AccountDeletionView: View {
Spacer()
- MainButton(text: "Delete Account", style: .danger) {
+ MainButton(text: "Delete account", style: .danger) {
viewModel.deleteButtonTapped()
}
.accessibilityIdentifier(.deleteButton)
diff --git a/ios/MullvadVPN/View controllers/InAppPurchase/InAppPurchaseViewController.swift b/ios/MullvadVPN/View controllers/InAppPurchase/InAppPurchaseViewController.swift
index ffb0550c24..46ad7a6ebe 100644
--- a/ios/MullvadVPN/View controllers/InAppPurchase/InAppPurchaseViewController.swift
+++ b/ios/MullvadVPN/View controllers/InAppPurchase/InAppPurchaseViewController.swift
@@ -101,7 +101,7 @@ class InAppPurchaseViewController: UIViewController, StorePaymentObserver {
}
func showPurchaseOptions(for products: [SKProduct]) {
- let localizedString = NSLocalizedString("Add Time", comment: "")
+ let localizedString = NSLocalizedString("Add time", comment: "")
let sheetController = UIAlertController(
title: localizedString,
message: nil,
diff --git a/ios/MullvadVPN/View controllers/RedeemVoucher/AddCreditSucceededViewController.swift b/ios/MullvadVPN/View controllers/RedeemVoucher/AddCreditSucceededViewController.swift
index a2e989462f..7fab48068d 100644
--- a/ios/MullvadVPN/View controllers/RedeemVoucher/AddCreditSucceededViewController.swift
+++ b/ios/MullvadVPN/View controllers/RedeemVoucher/AddCreditSucceededViewController.swift
@@ -77,7 +77,7 @@ class AddCreditSucceededViewController: UIViewController, RootContainment {
view.directionalLayoutMargins = UIMetrics.contentLayoutMargins
messageLabel.text = String(
- format: NSLocalizedString("%@ were added to your account.", comment: ""),
+ format: NSLocalizedString("%@ was added to your account.", comment: ""),
timeAddedComponents.formattedAddedDay
)
}
diff --git a/ios/MullvadVPN/View controllers/RedeemVoucher/LogoutDialogueView.swift b/ios/MullvadVPN/View controllers/RedeemVoucher/LogoutDialogueView.swift
index 5d327ab458..4a00caebaa 100644
--- a/ios/MullvadVPN/View controllers/RedeemVoucher/LogoutDialogueView.swift
+++ b/ios/MullvadVPN/View controllers/RedeemVoucher/LogoutDialogueView.swift
@@ -20,17 +20,12 @@ class LogoutDialogueView: UIView {
private let messageLabel: UILabel = {
let label = UILabel()
-
let message = NSMutableAttributedString(
- string: [
- NSLocalizedString(
- "It looks like you’ve entered an account number instead of a voucher code. "
- + "If you would like to change the active account, please log out first.",
- comment: ""
- ),
- NSLocalizedString("If so, click log out below to log in with the other account number.", comment: ""),
- ]
- .joinedParagraphs(lineBreaks: 0)
+ string: NSLocalizedString(
+ "It looks like you’ve entered an account number instead of a voucher code. "
+ + "If you would like to change the active account, please log out first.",
+ comment: ""
+ )
)
message.apply(paragraphStyle: .alert)
diff --git a/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift b/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift
index 9bc2a9e338..7a9d678473 100644
--- a/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift
+++ b/ios/MullvadVPN/View controllers/RelayFilter/RelayFilterDataSourceItem.swift
@@ -40,7 +40,7 @@ struct RelayFilterDataSourceItem: Hashable, Comparable {
static var allProviders: RelayFilterDataSourceItem {
RelayFilterDataSourceItem(
- name: NSLocalizedString("All Providers", comment: ""),
+ name: NSLocalizedString("All providers", comment: ""),
type: .allProviders,
isEnabled: true
)
diff --git a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift
index 245a10c802..5c92ba303b 100644
--- a/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift
+++ b/ios/MullvadVPN/View controllers/Tunnel/ConnectionView/ChipView/ChipFeature.swift
@@ -131,6 +131,6 @@ struct IPOverrideFeature: ChipFeature {
}
var name: String {
- NSLocalizedString("Server IP Override", comment: "")
+ NSLocalizedString("Server IP override", comment: "")
}
}
diff --git a/ios/MullvadVPNTests/MullvadVPN/TunnelManager/TunnelStateTests.swift b/ios/MullvadVPNTests/MullvadVPN/TunnelManager/TunnelStateTests.swift
deleted file mode 100644
index 42939b100c..0000000000
--- a/ios/MullvadVPNTests/MullvadVPN/TunnelManager/TunnelStateTests.swift
+++ /dev/null
@@ -1,139 +0,0 @@
-//
-// TunnelStateTests.swift
-// MullvadVPNTests
-//
-// Created by Andrew Bulhak on 2024-05-03.
-// Copyright © 2025 Mullvad VPN AB. All rights reserved.
-//
-
-import MullvadTypes
-import PacketTunnelCore
-import XCTest
-
-final class TunnelStateTests: XCTestCase {
- let arbitrarySelectedRelay = SelectedRelay(
- endpoint: MullvadEndpoint(
- ipv4Relay: IPv4Endpoint(ip: .any, port: 0),
- ipv4Gateway: .any,
- ipv6Gateway: .any,
- publicKey: Data()
- ),
- hostname: "hostname-goes-here",
- location: Location(country: "country", countryCode: "", city: "city", cityCode: "", latitude: 0, longitude: 0),
- retryAttempts: 0
- )
-
- // MARK: description
-
- func testDescription_Connecting_NoRelay() {
- XCTAssertEqual(
- TunnelState.connecting(nil, isPostQuantum: false).description,
- "connecting, fetching relay"
- )
-
- XCTAssertEqual(
- TunnelState.connecting(nil, isPostQuantum: true).description,
- "connecting (PQ), fetching relay"
- )
- }
-
- func testDescription_Connecting_WithRelay() {
- XCTAssertEqual(
- TunnelState.connecting(arbitrarySelectedRelay, isPostQuantum: false).description,
- "connecting to hostname-goes-here"
- )
-
- XCTAssertEqual(
- TunnelState.connecting(arbitrarySelectedRelay, isPostQuantum: true).description,
- "connecting (PQ) to hostname-goes-here"
- )
- }
-
- func testDescription_Connected() {
- XCTAssertEqual(
- TunnelState.connected(arbitrarySelectedRelay, isPostQuantum: false).description,
- "connected to hostname-goes-here"
- )
-
- XCTAssertEqual(
- TunnelState.connected(arbitrarySelectedRelay, isPostQuantum: true).description,
- "connected (PQ) to hostname-goes-here"
- )
- }
-
- // MARK: localizedTitleForSecureLabel
-
- func testLocalizedTitleForSecureLabel_Connecting() {
- XCTAssertEqual(
- TunnelState.connecting(nil, isPostQuantum: false).localizedTitleForSecureLabel,
- "Creating secure connection"
- )
-
- XCTAssertEqual(
- TunnelState.connecting(nil, isPostQuantum: true).localizedTitleForSecureLabel,
- "Creating quantum secure connection"
- )
- }
-
- func testLocalizedTitleForSecureLabel_Reconnecting() {
- XCTAssertEqual(
- TunnelState.reconnecting(arbitrarySelectedRelay, isPostQuantum: false).localizedTitleForSecureLabel,
- "Creating secure connection"
- )
-
- XCTAssertEqual(
- TunnelState.reconnecting(arbitrarySelectedRelay, isPostQuantum: true).localizedTitleForSecureLabel,
- "Creating quantum secure connection"
- )
- }
-
- func testLocalizedTitleForSecureLabel_Connected() {
- XCTAssertEqual(
- TunnelState.connected(arbitrarySelectedRelay, isPostQuantum: false).localizedTitleForSecureLabel,
- "Secure connection"
- )
-
- XCTAssertEqual(
- TunnelState.connected(arbitrarySelectedRelay, isPostQuantum: true).localizedTitleForSecureLabel,
- "Quantum secure connection"
- )
- }
-
- // MARK: localizedAccessibilityLabel
-
- func testLocalizedAccessibilityLabel_Connecting() {
- XCTAssertEqual(
- TunnelState.connecting(nil, isPostQuantum: false).localizedAccessibilityLabel,
- "Creating secure connection"
- )
-
- XCTAssertEqual(
- TunnelState.connecting(nil, isPostQuantum: true).localizedAccessibilityLabel,
- "Creating quantum secure connection"
- )
- }
-
- func testLocalizedAccessibilityLabel_Reconnecting() {
- XCTAssertEqual(
- TunnelState.reconnecting(arbitrarySelectedRelay, isPostQuantum: false).localizedAccessibilityLabel,
- "Reconnecting to city, country"
- )
-
- XCTAssertEqual(
- TunnelState.reconnecting(arbitrarySelectedRelay, isPostQuantum: true).localizedAccessibilityLabel,
- "Reconnecting to city, country"
- )
- }
-
- func testLocalizedAccessibilityLabel_Connected() {
- XCTAssertEqual(
- TunnelState.connected(arbitrarySelectedRelay, isPostQuantum: false).localizedAccessibilityLabel,
- "Secure connection. Connected to city, country"
- )
-
- XCTAssertEqual(
- TunnelState.connected(arbitrarySelectedRelay, isPostQuantum: true).localizedAccessibilityLabel,
- "Quantum secure connection. Connected to city, country"
- )
- }
-}
diff --git a/ios/translation/locales/de.xliff b/ios/translation/locales/de.xliff
index 16d0189389..8b898859cf 100644
--- a/ios/translation/locales/de.xliff
+++ b/ios/translation/locales/de.xliff
@@ -1,12 +1,5 @@
<?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/InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
- <header>
- <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
- </header>
- <body>
- </body>
- </file>
<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.4" build-num="16F6"/>
@@ -19,7 +12,7 @@
</trans-unit>
<trans-unit id="%@ (%@) hides patterns in your encrypted VPN traffic." xml:space="preserve">
<source>%1$@ (%2$@) hides patterns in your encrypted VPN traffic.</source>
- <target state-qualifier="leveraged-tm">%1$@ (%2$@) verbirgt Muster in Ihrem verschlüsselten VPN-Traffic.</target>
+ <target state="translated">%1$@ (%2$@) verbirgt Muster in Ihrem verschlüsselten VPN-Traffic.</target>
<note/>
</trans-unit>
<trans-unit id="%@ cannot be empty." xml:space="preserve">
@@ -29,12 +22,7 @@
</trans-unit>
<trans-unit id="%@ does this by carefully adding network noise and making all network packets the same size." xml:space="preserve">
<source>%@ does this by carefully adding network noise and making all network packets the same size.</source>
- <target state-qualifier="leveraged-tm">%@ tut dies, indem es Netzwerkrauschen gezielt hinzufügt und alle Netzwerkpakete gleich groß macht.</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="needs-translation">%@ have been added to your account</target>
+ <target state="translated">%@ tut dies, indem es Netzwerkrauschen gezielt hinzufügt und alle Netzwerkpakete gleich groß macht.</target>
<note/>
</trans-unit>
<trans-unit id="%@ left on this account" xml:space="preserve">
@@ -44,12 +32,12 @@
</trans-unit>
<trans-unit id="%@ via %@" xml:space="preserve">
<source>%1$@ via %2$@</source>
- <target state-qualifier="leveraged-tm">%1$@ über %2$@</target>
+ <target state="translated">%1$@ über %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="needs-translation">%@ were added to your account.</target>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">%@ wurde zu Ihrem Konto hinzugefügt.</target>
<note/>
</trans-unit>
<trans-unit id="%@, %@" xml:space="preserve">
@@ -64,17 +52,17 @@
</trans-unit>
<trans-unit id="%d more..." xml:space="preserve">
<source>%d more...</source>
- <target state-qualifier="leveraged-tm">%d weitere …</target>
+ <target state="translated">%d weitere …</target>
<note/>
</trans-unit>
<trans-unit id="%lld more..." xml:space="preserve">
<source>%lld more...</source>
- <target state-qualifier="leveraged-tm">%lld weitere …</target>
+ <target state="translated">%lld weitere …</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.**" 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.**</source>
- <target state-qualifier="leveraged-tm">**Achtung! Dies erhöht den Netzwerkverkehr und wirkt sich auch negativ auf die Geschwindigkeit, die Latenz und den Akkuverbrauch aus. Bei begrenzten Tarifen ist Vorsicht geboten.**</target>
+ <target state="translated">**Achtung! Dies erhöht den Netzwerkverkehr und wirkt sich auch negativ auf die Geschwindigkeit, die Latenz und den Akkuverbrauch aus. Bei begrenzten Tarifen ist Vorsicht geboten.**</target>
<note/>
</trans-unit>
<trans-unit id="**Tap here** to see what’s new" xml:space="preserve">
@@ -82,29 +70,24 @@
<target state="needs-translation">**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="needs-translation">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-qualifier="leveraged-tm">API-Zugriff</target>
+ <target state="translated">API-Zugriff</target>
<note/>
</trans-unit>
<trans-unit id="API reachable" xml:space="preserve">
<source>API reachable</source>
- <target state-qualifier="leveraged-tm">API erreichbar</target>
+ <target state="translated">API erreichbar</target>
<note/>
</trans-unit>
<trans-unit id="API unreachable" xml:space="preserve">
<source>API unreachable</source>
- <target state-qualifier="leveraged-tm">API nicht erreichbar</target>
+ <target state="translated">API nicht erreichbar</target>
<note/>
</trans-unit>
- <trans-unit id="API unreachable, save anyway?" xml:space="preserve">
- <source>API unreachable, save anyway?</source>
- <target state-qualifier="leveraged-tm">API nicht erreichbar, dennoch speichern?</target>
+ <trans-unit id="API unreachable, save method anyway?" xml:space="preserve">
+ <source>API unreachable, save method anyway?</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">API nicht erreichbar, Methode dennoch speichern?</target>
<note/>
</trans-unit>
<trans-unit id="About API access…" xml:space="preserve">
@@ -134,17 +117,17 @@
</trans-unit>
<trans-unit id="Account" xml:space="preserve">
<source>Account</source>
- <target state-qualifier="leveraged-tm">Konto</target>
+ <target state="translated">Konto</target>
<note/>
</trans-unit>
<trans-unit id="Account created" xml:space="preserve">
<source>Account created</source>
- <target state-qualifier="leveraged-tm">Konto erstellt</target>
+ <target state="translated">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-tm">Kontoguthaben läuft bald ab</target>
+ <target state="translated">Kontoguthaben läuft bald ab</target>
<note/>
</trans-unit>
<trans-unit id="Account credit has expired" xml:space="preserve">
@@ -159,17 +142,17 @@
</trans-unit>
<trans-unit id="Account number" xml:space="preserve">
<source>Account number</source>
- <target state-qualifier="leveraged-tm">Kontonummer</target>
+ <target state="translated">Kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="Active features" xml:space="preserve">
<source>Active features</source>
- <target state-qualifier="leveraged-tm">Aktive Funktionen</target>
+ <target state="translated">Aktive Funktionen</target>
<note/>
</trans-unit>
<trans-unit id="Add" xml:space="preserve">
<source>Add</source>
- <target state-qualifier="leveraged-tm">Hinzufügen</target>
+ <target state="translated">Hinzufügen</target>
<note/>
</trans-unit>
<trans-unit id="Add 30 days" xml:space="preserve">
@@ -182,24 +165,19 @@
<target state="needs-translation">Add 90 days</target>
<note/>
</trans-unit>
- <trans-unit id="Add Time" xml:space="preserve">
- <source>Add Time</source>
- <target state="needs-translation">Add Time</target>
- <note/>
- </trans-unit>
<trans-unit id="Add a server" xml:space="preserve">
<source>Add a server</source>
- <target state-qualifier="leveraged-tm">Server hinzufügen</target>
- <note/>
- </trans-unit>
- <trans-unit id="Add access method" xml:space="preserve">
- <source>Add access method</source>
- <target state="needs-translation">Add access method</target>
+ <target state="translated">Server hinzufügen</target>
<note/>
</trans-unit>
<trans-unit id="Add locations" xml:space="preserve">
<source>Add locations</source>
- <target state-qualifier="leveraged-tm">Standorte hinzufügen</target>
+ <target state="translated">Standorte hinzufügen</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add method" xml:space="preserve">
+ <source>Add method</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Methode hinzufügen</target>
<note/>
</trans-unit>
<trans-unit id="Add new list" xml:space="preserve">
@@ -209,22 +187,22 @@
</trans-unit>
<trans-unit id="Add time" xml:space="preserve">
<source>Add time</source>
- <target state-qualifier="leveraged-tm">Zeit hinzufügen</target>
+ <target state="translated">Zeit hinzufügen</target>
<note/>
</trans-unit>
<trans-unit id="Ads" xml:space="preserve">
<source>Ads</source>
- <target state-qualifier="leveraged-tm">Werbung</target>
+ <target state="translated">Werbung</target>
<note/>
</trans-unit>
<trans-unit id="Adult content" xml:space="preserve">
<source>Adult content</source>
- <target state-qualifier="leveraged-tm">Inhalte für Erwachsene</target>
+ <target state="translated">Inhalte für Erwachsene</target>
<note/>
</trans-unit>
<trans-unit id="Agree and continue" xml:space="preserve">
<source>Agree and continue</source>
- <target state-qualifier="leveraged-tm">Akzeptieren und weiter</target>
+ <target state="translated">Akzeptieren und weiter</target>
<note/>
</trans-unit>
<trans-unit id="All" xml:space="preserve">
@@ -232,19 +210,19 @@
<target state="needs-translation">All</target>
<note/>
</trans-unit>
- <trans-unit id="All Providers" xml:space="preserve">
- <source>All Providers</source>
- <target state="needs-translation">All Providers</target>
- <note/>
- </trans-unit>
<trans-unit id="All locations" xml:space="preserve">
<source>All locations</source>
- <target state-qualifier="leveraged-tm">Alle Standorte</target>
+ <target state="translated">Alle Standorte</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All providers" xml:space="preserve">
+ <source>All providers</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Alle Anbieter</target>
<note/>
</trans-unit>
<trans-unit id="Any" xml:space="preserve">
<source>Any</source>
- <target state-qualifier="leveraged-tm">Beliebige</target>
+ <target state="translated">Beliebige</target>
<note/>
</trans-unit>
<trans-unit id="App logs" xml:space="preserve">
@@ -264,7 +242,7 @@
</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-tm">Mindestens eine Methode muss aktiviert sein.</target>
+ <target state="translated">Mindestens eine Methode muss aktiviert sein.</target>
<note/>
</trans-unit>
<trans-unit id="Attention: this setting cannot be used in combination with **“%@“**." xml:space="preserve">
@@ -279,22 +257,17 @@
</trans-unit>
<trans-unit id="Authentication" xml:space="preserve">
<source>Authentication</source>
- <target state-qualifier="leveraged-tm">Authentifizierung</target>
+ <target state="translated">Authentifizierung</target>
<note/>
</trans-unit>
<trans-unit id="Automatic" xml:space="preserve">
<source>Automatic</source>
- <target state-qualifier="leveraged-tm">Automatisch</target>
+ <target state="translated">Automatisch</target>
<note/>
</trans-unit>
<trans-unit id="BLOCKING INTERNET" xml:space="preserve">
<source>BLOCKING INTERNET</source>
- <target state-qualifier="leveraged-tm">INTERNET SPERREN</target>
- <note/>
- </trans-unit>
- <trans-unit id="Back to editing" xml:space="preserve">
- <source>Back to editing</source>
- <target state="needs-translation">Back to editing</target>
+ <target state="translated">INTERNET SPERREN</target>
<note/>
</trans-unit>
<trans-unit id="Blocked connection" xml:space="preserve">
@@ -314,12 +287,12 @@
</trans-unit>
<trans-unit id="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>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-tm">Durch den Einsatz hochentwickelter KI ist es möglich, den Traffic von Datenpaketen zu analysieren, die auf Ihrem Gerät ein- und ausgehen (selbst wenn der Verkehr verschlüsselt ist).</target>
+ <target state="translated">Durch den Einsatz hochentwickelter KI ist es möglich, den Traffic von Datenpaketen zu analysieren, die auf Ihrem Gerät ein- und ausgehen (selbst wenn der Verkehr verschlüsselt ist).</target>
<note/>
</trans-unit>
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
- <target state-qualifier="leveraged-tm">Abbrechen</target>
+ <target state="translated">Abbrechen</target>
<note/>
</trans-unit>
<trans-unit id="Cannot complete the purchase" xml:space="preserve">
@@ -344,32 +317,32 @@
</trans-unit>
<trans-unit id="Checking account number" xml:space="preserve">
<source>Checking account number</source>
- <target state-qualifier="leveraged-tm">Ihre Kontonummer wird geprüft</target>
+ <target state="translated">Ihre Kontonummer wird geprüft</target>
<note/>
</trans-unit>
<trans-unit id="Cipher" xml:space="preserve">
<source>Cipher</source>
- <target state-qualifier="leveraged-tm">Chiffre</target>
+ <target state="translated">Chiffre</target>
<note/>
</trans-unit>
<trans-unit id="Clear" xml:space="preserve">
<source>Clear</source>
- <target state-qualifier="leveraged-tm">Löschen</target>
+ <target state="translated">Löschen</target>
<note/>
</trans-unit>
<trans-unit id="Clear all overrides" xml:space="preserve">
<source>Clear all overrides</source>
- <target state-qualifier="leveraged-tm">Alle Überschreibungen löschen</target>
+ <target state="translated">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-tm">Alle Überschreibungen löschen?</target>
+ <target state="translated">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-tm">Wenn Sie die importierten Überschreibungen löschen, werden die Server-IPs in der Ortsauswahl wieder auf die Standardwerte zurückgesetzt.</target>
+ <target state="translated">Wenn Sie die importierten Überschreibungen löschen, werden die Server-IPs in der Ortsauswahl wieder auf die Standardwerte zurückgesetzt.</target>
<note/>
</trans-unit>
<trans-unit id="Client is not allowed to issue the request." xml:space="preserve">
@@ -389,17 +362,17 @@
</trans-unit>
<trans-unit id="Congrats!" xml:space="preserve">
<source>Congrats!</source>
- <target state-qualifier="leveraged-tm">Glückwunsch!</target>
+ <target state="translated">Glückwunsch!</target>
<note/>
</trans-unit>
<trans-unit id="Connect" xml:space="preserve">
<source>Connect</source>
- <target state-qualifier="leveraged-tm">Verbinden</target>
+ <target state="translated">Verbinden</target>
<note/>
</trans-unit>
<trans-unit id="Connected" xml:space="preserve">
<source>Connected</source>
- <target state-qualifier="leveraged-tm">Verbunden</target>
+ <target state="translated">Verbunden</target>
<note/>
</trans-unit>
<trans-unit id="Connected to %@, %@" xml:space="preserve">
@@ -414,22 +387,22 @@
</trans-unit>
<trans-unit id="Connecting..." xml:space="preserve">
<source>Connecting...</source>
- <target state-qualifier="leveraged-tm">Verbinden …</target>
+ <target state="translated">Verbinden …</target>
<note/>
</trans-unit>
<trans-unit id="Connection details" xml:space="preserve">
<source>Connection details</source>
- <target state-qualifier="leveraged-tm">Verbindungsdetails</target>
+ <target state="translated">Verbindungsdetails</target>
<note/>
</trans-unit>
<trans-unit id="Continue with login" xml:space="preserve">
<source>Continue with login</source>
- <target state-qualifier="leveraged-tm">Weiter mit Anmeldung</target>
+ <target state="translated">Weiter mit Anmeldung</target>
<note/>
</trans-unit>
- <trans-unit id="Copy to pasteboard" xml:space="preserve">
- <source>Copy to pasteboard</source>
- <target state="needs-translation">Copy to pasteboard</target>
+ <trans-unit id="Copied Mullvad account number to pasteboard" xml:space="preserve">
+ <source>Copied Mullvad account number to pasteboard</source>
+ <target state="needs-translation">Copied Mullvad account number to pasteboard</target>
<note/>
</trans-unit>
<trans-unit id="Correct account number" xml:space="preserve">
@@ -439,17 +412,17 @@
</trans-unit>
<trans-unit id="Create" xml:space="preserve">
<source>Create</source>
- <target state-qualifier="leveraged-tm">Erstellen</target>
+ <target state="translated">Erstellen</target>
<note/>
</trans-unit>
<trans-unit id="Create account" xml:space="preserve">
<source>Create account</source>
- <target state-qualifier="leveraged-tm">Konto erstellen</target>
+ <target state="translated">Konto erstellen</target>
<note/>
</trans-unit>
<trans-unit id="Create new account" xml:space="preserve">
<source>Create new account</source>
- <target state="needs-translation">Create new account</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Neues Konto erstellen</target>
<note/>
</trans-unit>
<trans-unit id="Created: %@" xml:space="preserve">
@@ -462,34 +435,24 @@
<target state="needs-translation">Creating new account</target>
<note/>
</trans-unit>
- <trans-unit id="Creating quantum secure connection" xml:space="preserve">
- <source>Creating quantum secure connection</source>
- <target state="needs-translation">Creating quantum secure connection</target>
- <note/>
- </trans-unit>
- <trans-unit id="Creating secure connection" xml:space="preserve">
- <source>Creating secure connection</source>
- <target state="needs-translation">Creating secure connection</target>
- <note/>
- </trans-unit>
<trans-unit id="Current device" xml:space="preserve">
<source>Current device</source>
- <target state-qualifier="leveraged-tm">Aktuelles Gerät</target>
+ <target state="translated">Aktuelles Gerät</target>
<note/>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
- <target state-qualifier="leveraged-tm">Benutzerdefiniert</target>
+ <target state="translated">Benutzerdefiniert</target>
<note/>
</trans-unit>
<trans-unit id="Custom DNS" xml:space="preserve">
<source>Custom DNS</source>
- <target state-qualifier="leveraged-tm">Eigenes DNS</target>
+ <target state="translated">Eigenes DNS</target>
<note/>
</trans-unit>
<trans-unit id="Custom lists" xml:space="preserve">
<source>Custom lists</source>
- <target state-qualifier="leveraged-tm">Eigene Listen</target>
+ <target state="translated">Eigene Listen</target>
<note/>
</trans-unit>
<trans-unit id="DAITA" xml:space="preserve">
@@ -512,14 +475,9 @@
<target state="needs-translation">DAITA-enabled</target>
<note/>
</trans-unit>
- <trans-unit id="DAITA: Multihop" xml:space="preserve">
- <source>DAITA: Multihop</source>
- <target state="needs-translation">DAITA: Multihop</target>
- <note/>
- </trans-unit>
<trans-unit id="DNS content blockers" xml:space="preserve">
<source>DNS content blockers</source>
- <target state-qualifier="leveraged-tm">DNS-Inhaltssperren</target>
+ <target state="translated">DNS-Inhaltssperren</target>
<note/>
</trans-unit>
<trans-unit id="DNS settings" xml:space="preserve">
@@ -534,7 +492,7 @@
</trans-unit>
<trans-unit id="Delete" xml:space="preserve">
<source>Delete</source>
- <target state-qualifier="leveraged-tm">Löschen</target>
+ <target state="translated">Löschen</target>
<note/>
</trans-unit>
<trans-unit id="Delete %@?" xml:space="preserve">
@@ -542,11 +500,6 @@
<target state="needs-translation">Delete %@?</target>
<note/>
</trans-unit>
- <trans-unit id="Delete Account" xml:space="preserve">
- <source>Delete Account</source>
- <target state="needs-translation">Delete Account</target>
- <note/>
- </trans-unit>
<trans-unit id="Delete account" xml:space="preserve">
<source>Delete account</source>
<target state="needs-translation">Delete account</target>
@@ -554,12 +507,12 @@
</trans-unit>
<trans-unit id="Delete list" xml:space="preserve">
<source>Delete list</source>
- <target state-qualifier="leveraged-tm">Liste löschen</target>
+ <target state="translated">Liste löschen</target>
<note/>
</trans-unit>
<trans-unit id="Delete method" xml:space="preserve">
<source>Delete method</source>
- <target state-qualifier="leveraged-tm">Methode löschen</target>
+ <target state="translated">Methode löschen</target>
<note/>
</trans-unit>
<trans-unit id="Deleting account..." xml:space="preserve">
@@ -569,12 +522,12 @@
</trans-unit>
<trans-unit id="Device is inactive" xml:space="preserve">
<source>Device is inactive</source>
- <target state-qualifier="leveraged-tm">Gerät ist inaktiv</target>
+ <target state="translated">Gerät ist inaktiv</target>
<note/>
</trans-unit>
<trans-unit id="Device name" xml:space="preserve">
<source>Device name</source>
- <target state-qualifier="leveraged-tm">Gerätename</target>
+ <target state="translated">Gerätename</target>
<note/>
</trans-unit>
<trans-unit id="Device name: %@" xml:space="preserve">
@@ -582,19 +535,14 @@
<target state="needs-translation">Device name: %@</target>
<note/>
</trans-unit>
- <trans-unit id="Direct" xml:space="preserve">
- <source>Direct</source>
- <target state="needs-translation">Direct</target>
- <note/>
- </trans-unit>
<trans-unit id="Direct only" xml:space="preserve">
<source>Direct only</source>
- <target state-qualifier="leveraged-tm">Nur direkt</target>
+ <target state="translated">Nur direkt</target>
<note/>
</trans-unit>
<trans-unit id="Disable all &quot;%@&quot; above to activate this setting." xml:space="preserve">
<source>Disable all "%@" above to activate this setting.</source>
- <target state-qualifier="leveraged-tm">Deaktivieren Sie oben alle „%@“, um diese Einstellung zu aktivieren.</target>
+ <target state="translated">Deaktivieren Sie oben alle „%@“, um diese Einstellung zu aktivieren.</target>
<note/>
</trans-unit>
<trans-unit id="Disabled" xml:space="preserve">
@@ -609,27 +557,22 @@
</trans-unit>
<trans-unit id="Discard changes" xml:space="preserve">
<source>Discard changes</source>
- <target state-qualifier="leveraged-tm">Änderungen verwerfen</target>
+ <target state="translated">Änderungen verwerfen</target>
<note/>
</trans-unit>
<trans-unit id="Disconnect" xml:space="preserve">
<source>Disconnect</source>
- <target state-qualifier="leveraged-tm">Trennen</target>
+ <target state="translated">Trennen</target>
<note/>
</trans-unit>
<trans-unit id="Disconnected" xml:space="preserve">
<source>Disconnected</source>
- <target state-qualifier="leveraged-tm">Verbindung getrennt</target>
- <note/>
- </trans-unit>
- <trans-unit id="Disconnecting" xml:space="preserve">
- <source>Disconnecting</source>
- <target state-qualifier="leveraged-tm">Verbindung wird getrennt</target>
+ <target state="translated">Verbindung getrennt</target>
<note/>
</trans-unit>
<trans-unit id="Disconnecting..." xml:space="preserve">
<source>Disconnecting...</source>
- <target state-qualifier="leveraged-tm">Verbindung wird getrennt …</target>
+ <target state="translated">Verbindung wird getrennt …</target>
<note/>
</trans-unit>
<trans-unit id="Do you agree to remaining anonymous?" xml:space="preserve">
@@ -639,7 +582,7 @@
</trans-unit>
<trans-unit id="Do you want to create a new account?" xml:space="preserve">
<source>Do you want to create a new account?</source>
- <target state="needs-translation">Do you want to create a new account?</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Möchten Sie ein neues Konto erstellen?</target>
<note/>
</trans-unit>
<trans-unit id="Do you want to delete the list **%@**?" xml:space="preserve">
@@ -654,7 +597,7 @@
</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-tm">Sie haben keine Kontonummer?</target>
+ <target state="translated">Sie haben keine Kontonummer?</target>
<note/>
</trans-unit>
<trans-unit id="Edit custom list" xml:space="preserve">
@@ -664,17 +607,17 @@
</trans-unit>
<trans-unit id="Edit lists" xml:space="preserve">
<source>Edit lists</source>
- <target state-qualifier="leveraged-tm">Listen bearbeiten</target>
+ <target state="translated">Listen bearbeiten</target>
<note/>
</trans-unit>
<trans-unit id="Edit locations" xml:space="preserve">
<source>Edit locations</source>
- <target state-qualifier="leveraged-tm">Standorte bearbeiten</target>
+ <target state="translated">Standorte bearbeiten</target>
<note/>
</trans-unit>
<trans-unit id="Edit message" xml:space="preserve">
<source>Edit message</source>
- <target state-qualifier="leveraged-tm">Nachricht bearbeiten</target>
+ <target state="translated">Nachricht bearbeiten</target>
<note/>
</trans-unit>
<trans-unit id="Either buy credit on our website or make an in-app purchase via the **Add time** button below." xml:space="preserve">
@@ -684,12 +627,12 @@
</trans-unit>
<trans-unit id="Either buy credit on our website or redeem a voucher." xml:space="preserve">
<source>Either buy credit on our website or redeem a voucher.</source>
- <target state-qualifier="leveraged-tm">Kaufen Sie entweder Guthaben über unsere Seite oder lösen Sie einen Gutschein ein.</target>
+ <target state="translated">Kaufen Sie entweder Guthaben über unsere Seite oder lösen Sie einen Gutschein ein.</target>
<note/>
</trans-unit>
<trans-unit id="Enable" xml:space="preserve">
<source>Enable</source>
- <target state-qualifier="leveraged-tm">Aktivieren</target>
+ <target state="translated">Aktivieren</target>
<note/>
</trans-unit>
<trans-unit id="Enable &quot;%@&quot;" xml:space="preserve">
@@ -699,7 +642,7 @@
</trans-unit>
<trans-unit id="Enable method" xml:space="preserve">
<source>Enable method</source>
- <target state-qualifier="leveraged-tm">Methode aktivieren</target>
+ <target state="translated">Methode aktivieren</target>
<note/>
</trans-unit>
<trans-unit id="Enabling" xml:space="preserve">
@@ -707,34 +650,29 @@
<target state="needs-translation">Enabling</target>
<note/>
</trans-unit>
- <trans-unit id="Encrypted DNS proxy" xml:space="preserve">
- <source>Encrypted DNS proxy</source>
- <target state="needs-translation">Encrypted DNS proxy</target>
- <note/>
- </trans-unit>
<trans-unit id="Enter IP" xml:space="preserve">
<source>Enter IP</source>
- <target state-qualifier="leveraged-tm">IP eingeben</target>
+ <target state="translated">IP eingeben</target>
<note/>
</trans-unit>
<trans-unit id="Enter voucher code" xml:space="preserve">
<source>Enter voucher code</source>
- <target state-qualifier="leveraged-tm">Gutscheincode eingeben</target>
+ <target state="translated">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-tm">Geben Sie Ihre Kontonummer ein</target>
+ <target state="translated">Geben Sie Ihre Kontonummer ein</target>
<note/>
</trans-unit>
<trans-unit id="Entry" xml:space="preserve">
<source>Entry</source>
- <target state-qualifier="leveraged-tm">Eingang</target>
+ <target state="translated">Eingang</target>
<note/>
</trans-unit>
<trans-unit id="Exit" xml:space="preserve">
<source>Exit</source>
- <target state-qualifier="leveraged-tm">Ausgang</target>
+ <target state="translated">Ausgang</target>
<note/>
</trans-unit>
<trans-unit id="Expand %@" xml:space="preserve">
@@ -752,14 +690,14 @@
<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="needs-translation">Failed to connect to App store, please try again later.</target>
+ <trans-unit id="Failed to load products, please try again" xml:space="preserve">
+ <source>Failed to load products, please try again</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Fehler beim Laden der Produkte, bitte versuchen Sie es erneut</target>
<note/>
</trans-unit>
<trans-unit id="Failed to send" xml:space="preserve">
<source>Failed to send</source>
- <target state-qualifier="leveraged-tm">Fehler beim Senden</target>
+ <target state="translated">Fehler beim Senden</target>
<note/>
</trans-unit>
<trans-unit id="Failed to send the receipt to server: %@" xml:space="preserve">
@@ -804,62 +742,57 @@
</trans-unit>
<trans-unit id="Filtered:" xml:space="preserve">
<source>Filtered:</source>
- <target state-qualifier="leveraged-tm">Gefiltert:</target>
+ <target state="translated">Gefiltert:</target>
<note/>
</trans-unit>
<trans-unit id="Gambling" xml:space="preserve">
<source>Gambling</source>
- <target state-qualifier="leveraged-tm">Glücksspiel</target>
+ <target state="translated">Glücksspiel</target>
<note/>
</trans-unit>
<trans-unit id="Go ahead and start using the app to begin reclaiming your online privacy." xml:space="preserve">
<source>Go ahead and start using the app to begin reclaiming your online privacy.</source>
- <target state-qualifier="leveraged-tm">Legen Sie los und erobern Sie Ihre Online-Privatsphäre mit dieser App zurück!</target>
+ <target state="translated">Legen Sie los und erobern Sie Ihre Online-Privatsphäre mit dieser App zurück!</target>
<note/>
</trans-unit>
<trans-unit id="Go to login" xml:space="preserve">
<source>Go to login</source>
- <target state-qualifier="leveraged-tm">Zur Anmeldung</target>
+ <target state="translated">Zur Anmeldung</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-tm">Wenn Sie mit der Anmeldung fortfahren, wird die Internetsperre auf diesem Gerät aufgehoben.</target>
+ <target state="translated">Wenn Sie mit der Anmeldung fortfahren, wird die Internetsperre auf diesem Gerät aufgehoben.</target>
<note/>
</trans-unit>
<trans-unit id="Got it!" xml:space="preserve">
<source>Got it!</source>
- <target state-qualifier="leveraged-tm">Verstanden!</target>
+ <target state="translated">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-tm">Hier ist Ihre Kontonummer. Verlieren Sie sie nicht!</target>
+ <target state="translated">Hier ist Ihre Kontonummer. Verlieren Sie sie nicht!</target>
<note/>
</trans-unit>
<trans-unit id="Hide account number" xml:space="preserve">
<source>Hide account number</source>
- <target state-qualifier="leveraged-tm">Kontonummer verbergen</target>
+ <target state="translated">Kontonummer verbergen</target>
<note/>
</trans-unit>
<trans-unit id="If an observer monitors these data packets, %@ makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating." xml:space="preserve">
<source>If an observer monitors these data packets, %@ makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.</source>
- <target state-qualifier="leveraged-tm">Wenn ein Beobachter diese Datenpakete überwacht, macht %@ es für ihn wesentlich schwieriger zu erkennen, welche Websites Sie besuchen oder mit wem Sie kommunizieren.</target>
+ <target state="translated">Wenn ein Beobachter diese Datenpakete überwacht, macht %@ es für ihn wesentlich schwieriger zu erkennen, welche Websites Sie besuchen oder mit wem Sie kommunizieren.</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-tm">Bei Bedarf werden wir Sie über %@ kontaktieren</target>
- <note/>
- </trans-unit>
- <trans-unit id="If so, click log out below to log in with the other account number." xml:space="preserve">
- <source>If so, click log out below to log in with the other account number.</source>
- <target state="needs-translation">If so, click log out below to log in with the other account number.</target>
+ <target state="translated">Bei Bedarf werden wir Sie über %@ 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-tm">Wenn Sie Probleme mit der Verbindung zu VPN-Servern haben, wenden Sie sich bitte an den Support.</target>
+ <target state="translated">Wenn Sie Probleme mit der Verbindung zu VPN-Servern haben, wenden Sie sich bitte an 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. The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare." xml:space="preserve">
@@ -874,7 +807,7 @@
</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-tm">Die Informationen, die Sie bereits eingegeben haben, werden immer noch da sein, wenn Sie das Formular schließen und es später erneut versuchen.</target>
+ <target state="translated">Die Informationen, die Sie bereits eingegeben haben, werden immer noch da sein, wenn Sie das Formular schließen und es später erneut versuchen.</target>
<note/>
</trans-unit>
<trans-unit id="If you haven’t received additional VPN time after purchasing" xml:space="preserve">
@@ -884,7 +817,7 @@
</trans-unit>
<trans-unit id="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>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-tm">Wenn Sie sich abmelden, werden das Gerät und der Gerätename entfernt. Wenn Sie sich wieder anmelden, erhält das Gerät einen neuen Namen.</target>
+ <target state="translated">Wenn Sie sich abmelden, werden das Gerät und der Gerätename entfernt. Wenn Sie sich wieder anmelden, erhält das Gerät einen neuen Namen.</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">
@@ -894,17 +827,17 @@
</trans-unit>
<trans-unit id="Import" xml:space="preserve">
<source>Import</source>
- <target state-qualifier="leveraged-tm">Importieren</target>
+ <target state="translated">Importieren</target>
<note/>
</trans-unit>
<trans-unit id="Import file" xml:space="preserve">
<source>Import file</source>
- <target state-qualifier="leveraged-tm">Datei importieren</target>
+ <target state="translated">Datei importieren</target>
<note/>
</trans-unit>
<trans-unit id="Import files or text with new IP addresses for the servers in the Select location view." xml:space="preserve">
<source>Import files or text with new IP addresses for the servers in the Select location view.</source>
- <target state-qualifier="leveraged-tm">Importieren Sie Dateien oder Text mit neuen IP-Adressen für die Server in der Ortsauswahl.</target>
+ <target state="translated">Importieren Sie Dateien oder Text mit neuen IP-Adressen für die Server in der Ortsauswahl.</target>
<note/>
</trans-unit>
<trans-unit id="Import of %@ was successful, overrides are now active." xml:space="preserve">
@@ -924,17 +857,17 @@
</trans-unit>
<trans-unit id="Import via text" xml:space="preserve">
<source>Import via text</source>
- <target state-qualifier="leveraged-tm">Import via Text</target>
+ <target state="translated">Import via Text</target>
<note/>
</trans-unit>
<trans-unit id="In" xml:space="preserve">
<source>In</source>
- <target state-qualifier="leveraged-tm">Eingehend</target>
+ <target state="translated">Eingehend</target>
<note/>
</trans-unit>
<trans-unit id="In use" xml:space="preserve">
<source>In use</source>
- <target state-qualifier="leveraged-tm">Wird verwendet</target>
+ <target state="translated">Wird verwendet</target>
<note/>
</trans-unit>
<trans-unit id="Include all networks" xml:space="preserve">
@@ -952,9 +885,9 @@
<target state="needs-translation">Internal error.</target>
<note/>
</trans-unit>
- <trans-unit id="Invalid account" xml:space="preserve">
- <source>Invalid account</source>
- <target state="needs-translation">Invalid account</target>
+ <trans-unit id="Invalid account number" xml:space="preserve">
+ <source>Invalid account number</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Ungültige Kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="Invalid device state." xml:space="preserve">
@@ -969,17 +902,17 @@
</trans-unit>
<trans-unit id="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." xml:space="preserve">
<source>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-tm">Dazu wird ein zusätzlicher Schlüsselaustausch mit einem quantensicheren Algorithmus durchgeführt und das Ergebnis mit der regulären Verschlüsselung von WireGuard vermischt. Dieser zusätzliche Schritt verbraucht jedes Mal, wenn ein neuer Tunnel aufgebaut wird, etwa 500 KiB an Datenverkehr.</target>
+ <target state="translated">Dazu wird ein zusätzlicher Schlüsselaustausch mit einem quantensicheren Algorithmus durchgeführt und das Ergebnis mit der regulären Verschlüsselung von WireGuard vermischt. Dieser zusätzliche Schritt verbraucht jedes Mal, wenn ein neuer Tunnel aufgebaut wird, etwa 500 KiB an Datenverkehr.</target>
<note/>
</trans-unit>
<trans-unit id="It looks like you’ve entered an account number instead of a voucher code. If you would like to change the active account, please log out first." xml:space="preserve">
<source>It looks like you’ve entered an account number instead of a voucher code. If you would like to change the active account, please log out first.</source>
- <target state-qualifier="leveraged-tm">Anscheinend haben Sie eine Kontonummer statt eines Gutscheincodes eingegeben. Wenn Sie das aktive Konto wechseln möchten, melden Sie sich bitte zuerst ab.</target>
+ <target state="translated">Anscheinend haben Sie eine Kontonummer statt eines Gutscheincodes eingegeben. Wenn Sie das aktive Konto wechseln möchten, melden Sie sich bitte zuerst ab.</target>
<note/>
</trans-unit>
<trans-unit id="Language" xml:space="preserve">
<source>Language</source>
- <target state-qualifier="leveraged-tm">Sprache</target>
+ <target state="translated">Sprache</target>
<note/>
</trans-unit>
<trans-unit id="Last four digits of the account number are incorrect" xml:space="preserve">
@@ -994,7 +927,7 @@
</trans-unit>
<trans-unit id="Learn about privacy" xml:space="preserve">
<source>Learn about privacy</source>
- <target state-qualifier="leveraged-tm">Mehr über Privatsphäre erfahren</target>
+ <target state="translated">Mehr über Privatsphäre erfahren</target>
<note/>
</trans-unit>
<trans-unit id="Less than a day" xml:space="preserve">
@@ -1004,7 +937,7 @@
</trans-unit>
<trans-unit id="Local network sharing" xml:space="preserve">
<source>Local network sharing</source>
- <target state-qualifier="leveraged-tm">Teilen im lokalen Netzwerk</target>
+ <target state="translated">Teilen im lokalen Netzwerk</target>
<note/>
</trans-unit>
<trans-unit id="Log in" xml:space="preserve">
@@ -1014,17 +947,17 @@
</trans-unit>
<trans-unit id="Log out" xml:space="preserve">
<source>Log out</source>
- <target state-qualifier="leveraged-tm">Abmelden</target>
+ <target state="translated">Abmelden</target>
<note/>
</trans-unit>
<trans-unit id="Logged in" xml:space="preserve">
<source>Logged in</source>
- <target state-qualifier="leveraged-tm">Angemeldet</target>
+ <target state="translated">Angemeldet</target>
<note/>
</trans-unit>
<trans-unit id="Logging in..." xml:space="preserve">
<source>Logging in...</source>
- <target state-qualifier="leveraged-tm">Anmeldung läuft...</target>
+ <target state="translated">Anmeldung läuft...</target>
<note/>
</trans-unit>
<trans-unit id="Logging out..." xml:space="preserve">
@@ -1034,12 +967,12 @@
</trans-unit>
<trans-unit id="Login" xml:space="preserve">
<source>Login</source>
- <target state-qualifier="leveraged-tm">Anmelden</target>
+ <target state="translated">Anmelden</target>
<note/>
</trans-unit>
<trans-unit id="Login failed" xml:space="preserve">
<source>Login failed</source>
- <target state-qualifier="leveraged-tm">Anmeldung fehlgeschlagen</target>
+ <target state="translated">Anmeldung fehlgeschlagen</target>
<note/>
</trans-unit>
<trans-unit id="Make a purchase with StoreKit2" xml:space="preserve">
@@ -1052,19 +985,14 @@
<target state="needs-translation">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="needs-translation">Manage default and setup custom methods to access the Mullvad 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="needs-translation">Manage default and setup custom methods to access the Mullvad API. </target>
+ <trans-unit id="Manage and add custom methods to access the Mullvad API." xml:space="preserve">
+ <source>Manage and add custom methods to access the Mullvad API.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Verwaltung und Hinzufügen benutzerdefinierter Methoden für den Zugriff auf die Mullvad-API.</target>
<note/>
</trans-unit>
<trans-unit id="Manage devices" xml:space="preserve">
<source>Manage devices</source>
- <target state-qualifier="leveraged-tm">Geräte verwalten</target>
+ <target state="translated">Geräte verwalten</target>
<note/>
</trans-unit>
<trans-unit id="Method settings" xml:space="preserve">
@@ -1072,11 +1000,6 @@
<target state="needs-translation">Method settings</target>
<note/>
</trans-unit>
- <trans-unit id="Mullvad bridges" xml:space="preserve">
- <source>Mullvad bridges</source>
- <target state="needs-translation">Mullvad bridges</target>
- <note/>
- </trans-unit>
<trans-unit id="Multihop" xml:space="preserve">
<source>Multihop</source>
<target state="needs-translation">Multihop</target>
@@ -1089,7 +1012,7 @@
</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-tm">Multihop leitet Ihren Traffic in einen WireGuard-Server hinein und aus einem anderen heraus, so dass er schwerer zu verfolgen ist. Dies führt zu einer erhöhten Latenzzeit, erhöht aber die Anonymität im Internet.</target>
+ <target state="translated">Multihop leitet Ihren Traffic in einen WireGuard-Server hinein und aus einem anderen heraus, so dass er schwerer zu verfolgen ist. Dies führt zu einer erhöhten Latenzzeit, erhöht aber die Anonymität im Internet.</target>
<note/>
</trans-unit>
<trans-unit id="Multiple validation errors occurred." xml:space="preserve">
@@ -1104,12 +1027,12 @@
</trans-unit>
<trans-unit id="NEW DEVICE CREATED" xml:space="preserve">
<source>NEW DEVICE CREATED</source>
- <target state-qualifier="leveraged-tm">NEUES GERÄT ERSTELLT</target>
+ <target state="translated">NEUES 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-tm">NEUE VERSION INSTALLIERT</target>
+ <target state="translated">NEUE VERSION INSTALLIERT</target>
<note/>
</trans-unit>
<trans-unit id="Name" xml:space="preserve">
@@ -1117,6 +1040,11 @@
<target state="needs-translation">Name</target>
<note/>
</trans-unit>
+ <trans-unit id="Name is already taken." xml:space="preserve">
+ <source>Name is already taken.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Der Name ist bereits vergeben.</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>
@@ -1134,7 +1062,7 @@
</trans-unit>
<trans-unit id="Next" xml:space="preserve">
<source>Next</source>
- <target state-qualifier="leveraged-tm">Weiter</target>
+ <target state="translated">Weiter</target>
<note/>
</trans-unit>
<trans-unit id="No DAITA compatible servers match your location settings. Try changing location." xml:space="preserve">
@@ -1174,27 +1102,27 @@
</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-tm">Kein Server entspricht Ihren Einstellungen. Versuchen Sie, den Server oder andere Einstellungen zu ändern.</target>
+ <target state="translated">Kein Server entspricht Ihren Einstellungen. Versuchen Sie, den Server oder andere Einstellungen zu ändern.</target>
<note/>
</trans-unit>
<trans-unit id="Not all our servers are %@-enabled. Therefore, we use multihop automatically to enable %@ with any server." xml:space="preserve">
<source>Not all our servers are %1$@-enabled. Therefore, we use multihop automatically to enable %2$@ with any server.</source>
- <target state-qualifier="leveraged-tm">Nicht alle unsere Server sind %1$@-fähig. Daher verwenden wir automatisch Multihop, um %2$@ mit jedem Server zu aktivieren.</target>
+ <target state="translated">Nicht alle unsere Server sind %1$@-fähig. Daher verwenden wir automatisch Multihop, um %2$@ mit jedem Server zu aktivieren.</target>
<note/>
</trans-unit>
<trans-unit id="OUT OF TIME" xml:space="preserve">
<source>OUT OF TIME</source>
- <target state-qualifier="leveraged-tm">ZEIT ABGELAUFEN</target>
+ <target state="translated">ZEIT ABGELAUFEN</target>
<note/>
</trans-unit>
<trans-unit id="Obfuscation" xml:space="preserve">
<source>Obfuscation</source>
- <target state-qualifier="leveraged-tm">Verschleierung</target>
+ <target state="translated">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-tm">Bei der Verschleierung wird der WireGuard-Datenverkehr in einem anderen Protokoll versteckt. Sie kann dazu verwendet werden, Zensur und andere Arten von Filtern zu umgehen, bei denen eine reine WireGuard-Verbindung blockiert würde.</target>
+ <target state="translated">Bei der Verschleierung wird der WireGuard-Datenverkehr in einem anderen Protokoll versteckt. Sie kann dazu verwendet werden, Zensur und andere Arten von Filtern zu umgehen, bei denen eine reine WireGuard-Verbindung blockiert würde.</target>
<note/>
</trans-unit>
<trans-unit id="Obscured" xml:space="preserve">
@@ -1204,22 +1132,22 @@
</trans-unit>
<trans-unit id="Off" xml:space="preserve">
<source>Off</source>
- <target state-qualifier="leveraged-tm">Aus</target>
+ <target state="translated">Aus</target>
<note/>
</trans-unit>
<trans-unit id="On" xml:space="preserve">
<source>On</source>
- <target state-qualifier="leveraged-tm">Ein</target>
+ <target state="translated">Ein</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-tm">In einigen Netzwerken, in denen verschiedene Arten der Zensur eingesetzt werden, werden die IP-Adressen unserer Server manchmal blockiert.</target>
+ <target state="translated">In einigen Netzwerken, in denen verschiedene Arten der Zensur eingesetzt werden, werden die IP-Adressen unserer Server 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-tm">In einigen Netzwerken, in denen verschiedene Arten der Zensur eingesetzt werden, sind die API-Server möglicherweise nicht direkt erreichbar.</target>
+ <target state="translated">In einigen Netzwerken, in denen verschiedene Arten der Zensur eingesetzt werden, sind die API-Server möglicherweise nicht direkt erreichbar.</target>
<note/>
</trans-unit>
<trans-unit id="Open %@ settings" xml:space="preserve">
@@ -1244,32 +1172,32 @@
</trans-unit>
<trans-unit id="Out of time" xml:space="preserve">
<source>Out of time</source>
- <target state-qualifier="leveraged-tm">Zeit abgelaufen</target>
+ <target state="translated">Zeit abgelaufen</target>
<note/>
</trans-unit>
<trans-unit id="Overrides active" xml:space="preserve">
<source>Overrides active</source>
- <target state-qualifier="leveraged-tm">Überschreibungen aktiv</target>
+ <target state="translated">Überschreibungen aktiv</target>
<note/>
</trans-unit>
<trans-unit id="Owned" xml:space="preserve">
<source>Owned</source>
- <target state-qualifier="leveraged-tm">In Besitz</target>
+ <target state="translated">In Besitz</target>
<note/>
</trans-unit>
<trans-unit id="Ownership" xml:space="preserve">
<source>Ownership</source>
- <target state-qualifier="leveraged-tm">Eigentümerschaft</target>
+ <target state="translated">Eigentümerschaft</target>
<note/>
</trans-unit>
<trans-unit id="Paid until" xml:space="preserve">
<source>Paid until</source>
- <target state-qualifier="leveraged-tm">Bezahlt bis</target>
+ <target state="translated">Bezahlt bis</target>
<note/>
</trans-unit>
<trans-unit id="Password" xml:space="preserve">
<source>Password</source>
- <target state-qualifier="leveraged-tm">Passwort</target>
+ <target state="translated">Passwort</target>
<note/>
</trans-unit>
<trans-unit id="Performs a connection test to a Mullvad API server via this access method." xml:space="preserve">
@@ -1279,7 +1207,7 @@
</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-tm">Bitte geben Sie eine gültige IPv4- oder IPv6-Adresse ein.</target>
+ <target state="translated">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">
@@ -1289,7 +1217,7 @@
</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-qualifier="leveraged-tm">Bitte melden Sie sich von mindestens einem Gerät ab, indem Sie es aus der Liste unten entfernen. Sie finden den entsprechenden Gerätenamen unter den Kontoeinstellungen des Geräts.</target>
+ <target state="translated">Bitte melden Sie sich von mindestens einem Gerät ab, indem Sie es aus der Liste unten entfernen. Sie finden den entsprechenden Gerätenamen unter den Kontoeinstellungen des Geräts.</target>
<note/>
</trans-unit>
<trans-unit id="Please retry by using the &quot;Restore purchases&quot; button." xml:space="preserve">
@@ -1314,7 +1242,7 @@
</trans-unit>
<trans-unit id="Providers" xml:space="preserve">
<source>Providers</source>
- <target state-qualifier="leveraged-tm">Anbieter</target>
+ <target state="translated">Anbieter</target>
<note/>
</trans-unit>
<trans-unit id="Providers: %d" xml:space="preserve">
@@ -1329,27 +1257,17 @@
</trans-unit>
<trans-unit id="Quantum resistance" xml:space="preserve">
<source>Quantum resistance</source>
- <target state-qualifier="leveraged-tm">Quantenresistenz</target>
- <note/>
- </trans-unit>
- <trans-unit id="Quantum secure connection" xml:space="preserve">
- <source>Quantum secure connection</source>
- <target state="needs-translation">Quantum secure connection</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="needs-translation">Quantum secure connection. Connected to %1$@, %2$@</target>
+ <target state="translated">Quantenresistenz</target>
<note/>
</trans-unit>
<trans-unit id="Quantum-resistant tunnel" xml:space="preserve">
<source>Quantum-resistant tunnel</source>
- <target state-qualifier="leveraged-tm">Quantenresistenter Tunnel</target>
+ <target state="translated">Quantenresistenter Tunnel</target>
<note/>
</trans-unit>
<trans-unit id="Reconnecting" xml:space="preserve">
<source>Reconnecting</source>
- <target state-qualifier="leveraged-tm">Wiederherstellen der Verbindung</target>
+ <target state="translated">Wiederherstellen der Verbindung</target>
<note/>
</trans-unit>
<trans-unit id="Reconnecting to %@, %@" xml:space="preserve">
@@ -1359,12 +1277,12 @@
</trans-unit>
<trans-unit id="Redeem" xml:space="preserve">
<source>Redeem</source>
- <target state-qualifier="leveraged-tm">Einlösen</target>
+ <target state="translated">Einlösen</target>
<note/>
</trans-unit>
<trans-unit id="Redeem voucher" xml:space="preserve">
<source>Redeem voucher</source>
- <target state-qualifier="leveraged-tm">Gutschein einlösen</target>
+ <target state="translated">Gutschein einlösen</target>
<note/>
</trans-unit>
<trans-unit id="Refund last purchase with StoreKit2" xml:space="preserve">
@@ -1379,12 +1297,12 @@
</trans-unit>
<trans-unit id="Remove" xml:space="preserve">
<source>Remove</source>
- <target state-qualifier="leveraged-tm">Entfernen</target>
+ <target state="translated">Entfernen</target>
<note/>
</trans-unit>
<trans-unit id="Remove %@?" xml:space="preserve">
<source>Remove %@?</source>
- <target state-qualifier="leveraged-tm">%@ entfernen?</target>
+ <target state="translated">%@ entfernen?</target>
<note/>
</trans-unit>
<trans-unit id="Remove last used account" xml:space="preserve">
@@ -1401,17 +1319,17 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Rented" xml:space="preserve">
<source>Rented</source>
- <target state-qualifier="leveraged-tm">Gemietet</target>
+ <target state="translated">Gemietet</target>
<note/>
</trans-unit>
<trans-unit id="Report a problem" xml:space="preserve">
<source>Report a problem</source>
- <target state-qualifier="leveraged-tm">Problem melden</target>
+ <target state="translated">Problem melden</target>
<note/>
</trans-unit>
<trans-unit id="Required" xml:space="preserve">
<source>Required</source>
- <target state-qualifier="leveraged-tm">Erforderlich</target>
+ <target state="translated">Erforderlich</target>
<note/>
</trans-unit>
<trans-unit id="Restore purchases" xml:space="preserve">
@@ -1421,12 +1339,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
- <target state-qualifier="leveraged-tm">Speichern</target>
- <note/>
- </trans-unit>
- <trans-unit id="Save anyway" xml:space="preserve">
- <source>Save anyway</source>
- <target state="needs-translation">Save anyway</target>
+ <target state="translated">Speichern</target>
<note/>
</trans-unit>
<trans-unit id="Saving changes..." xml:space="preserve">
@@ -1436,17 +1349,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Search for..." xml:space="preserve">
<source>Search for...</source>
- <target state-qualifier="leveraged-tm">Suchen 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="needs-translation">Secure connection. Connected to %1$@, %2$@</target>
+ <target state="translated">Suchen nach …</target>
<note/>
</trans-unit>
<trans-unit id="Select location" xml:space="preserve">
<source>Select location</source>
- <target state-qualifier="leveraged-tm">Ort auswählen</target>
+ <target state="translated">Ort auswählen</target>
<note/>
</trans-unit>
<trans-unit id="Selected" xml:space="preserve">
@@ -1456,22 +1364,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Send" xml:space="preserve">
<source>Send</source>
- <target state-qualifier="leveraged-tm">Senden</target>
+ <target state="translated">Senden</target>
<note/>
</trans-unit>
<trans-unit id="Send anyway" xml:space="preserve">
<source>Send anyway</source>
- <target state-qualifier="leveraged-tm">Trotzdem senden</target>
+ <target state="translated">Trotzdem senden</target>
<note/>
</trans-unit>
<trans-unit id="Sending..." xml:space="preserve">
<source>Sending...</source>
- <target state-qualifier="leveraged-tm">Wird gesendet...</target>
+ <target state="translated">Wird gesendet...</target>
<note/>
</trans-unit>
<trans-unit id="Sent" xml:space="preserve">
<source>Sent</source>
- <target state-qualifier="leveraged-tm">Gesendet</target>
+ <target state="translated">Gesendet</target>
<note/>
</trans-unit>
<trans-unit id="Server" xml:space="preserve">
@@ -1479,19 +1387,14 @@ Do you want to remove the saved account number?</target>
<target state="needs-translation">Server</target>
<note/>
</trans-unit>
- <trans-unit id="Server IP Override" xml:space="preserve">
- <source>Server IP Override</source>
- <target state="needs-translation">Server IP Override</target>
- <note/>
- </trans-unit>
<trans-unit id="Server IP override" xml:space="preserve">
<source>Server IP override</source>
- <target state-qualifier="leveraged-tm">Server-IP überschreiben</target>
+ <target state="translated">Server-IP überschreiben</target>
<note/>
</trans-unit>
<trans-unit id="Server details" xml:space="preserve">
<source>Server details</source>
- <target state-qualifier="leveraged-tm">Serverdaten</target>
+ <target state="translated">Serverdaten</target>
<note/>
</trans-unit>
<trans-unit id="Setting: %@" xml:space="preserve">
@@ -1501,7 +1404,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Settings" xml:space="preserve">
<source>Settings</source>
- <target state-qualifier="leveraged-tm">Einstellungen</target>
+ <target state="translated">Einstellungen</target>
<note/>
</trans-unit>
<trans-unit id="Settings migration error" xml:space="preserve">
@@ -1516,12 +1419,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Show account number" xml:space="preserve">
<source>Show account number</source>
- <target state-qualifier="leveraged-tm">Kontonummer anzeigen</target>
+ <target state="translated">Kontonummer anzeigen</target>
<note/>
</trans-unit>
<trans-unit id="Social media" xml:space="preserve">
<source>Social media</source>
- <target state-qualifier="leveraged-tm">Social Media</target>
+ <target state="translated">Social Media</target>
<note/>
</trans-unit>
<trans-unit id="Socks5" xml:space="preserve">
@@ -1531,7 +1434,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Start using the app" xml:space="preserve">
<source>Start using the app</source>
- <target state-qualifier="leveraged-tm">Mit dem Benutzen der App anfangen</target>
+ <target state="translated">Mit dem Benutzen der App anfangen</target>
<note/>
</trans-unit>
<trans-unit id="Super!" xml:space="preserve">
@@ -1541,7 +1444,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Switch location" xml:space="preserve">
<source>Switch location</source>
- <target state-qualifier="leveraged-tm">Ort wechseln</target>
+ <target state="translated">Ort wechseln</target>
<note/>
</trans-unit>
<trans-unit id="TCP" xml:space="preserve">
@@ -1561,12 +1464,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Test method" xml:space="preserve">
<source>Test method</source>
- <target state-qualifier="leveraged-tm">Methode testen</target>
+ <target state="translated">Methode testen</target>
<note/>
</trans-unit>
<trans-unit id="Testing..." xml:space="preserve">
<source>Testing...</source>
- <target state-qualifier="leveraged-tm">Testen …</target>
+ <target state="translated">Testen …</target>
<note/>
</trans-unit>
<trans-unit id="Thanks for your purchase" xml:space="preserve">
@@ -1576,7 +1479,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Thanks!" xml:space="preserve">
<source>Thanks!</source>
- <target state-qualifier="leveraged-tm">Danke!</target>
+ <target state="translated">Danke!</target>
<note/>
</trans-unit>
<trans-unit id="The app communicates with a Mullvad API server directly." xml:space="preserve">
@@ -1596,7 +1499,7 @@ Do you want to remove the saved account number?</target>
</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-tm">Die App muss mit einem Mullvad API-Server kommunizieren, um Sie anzumelden, Serverlisten abzurufen und andere wichtige Vorgänge durchzuführen.</target>
+ <target state="translated">Die App muss mit einem Mullvad API-Server kommunizieren, um Sie anzumelden, Serverlisten abzurufen und andere wichtige Vorgänge durchzuführen.</target>
<note/>
</trans-unit>
<trans-unit id="The app will test the method before saving." xml:space="preserve">
@@ -1606,17 +1509,17 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="The automatic setting will randomly choose from the valid port ranges shown below." xml:space="preserve">
<source>The automatic setting will randomly choose from the valid port ranges shown below.</source>
- <target state-qualifier="leveraged-tm">Die automatische Einstellung wählt zufällig aus den unten gezeigten gültigen Portbereichen.</target>
+ <target state="translated">Die automatische Einstellung wählt zufällig aus den unten gezeigten gültigen Portbereichen.</target>
<note/>
</trans-unit>
<trans-unit id="The custom port can be any value inside the valid ranges: %@." xml:space="preserve">
<source>The custom port can be any value inside the valid ranges: %@.</source>
- <target state-qualifier="leveraged-tm">Der benutzerdefinierte Port kann ein beliebiger Wert innerhalb dieser gültigen Bereiche sein: %@.</target>
+ <target state="translated">Der benutzerdefinierte Port kann ein beliebiger Wert innerhalb dieser gültigen Bereiche sein: %@.</target>
<note/>
</trans-unit>
<trans-unit id="The device will be removed from the list and logged out." xml:space="preserve">
<source>The device will be removed from the list and logged out.</source>
- <target state-qualifier="leveraged-tm">Das Gerät wird aus der Liste entfernt und abgemeldet.</target>
+ <target state="translated">Das Gerät wird aus der Liste entfernt und abgemeldet.</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">
@@ -1646,12 +1549,12 @@ Do you want to remove the saved account number?</target>
</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-tm">Dies kann nützlich sein, wenn die API zensiert ist, die Brückenserver von Mullvad aber nicht.</target>
+ <target state="translated">Dies kann nützlich sein, wenn die API zensiert ist, die Brückenserver von Mullvad aber 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-tm">Dies kann nützlich sein, wenn Sie nicht von Zensur betroffen sind.</target>
+ <target state="translated">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">
@@ -1661,22 +1564,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc." xml:space="preserve">
<source>This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.</source>
- <target state-qualifier="leveraged-tm">Diese Funktion ermöglicht den Zugriff auf andere Geräte im lokalen Netzwerk, z. B. zum Teilen, Drucken, Streamen usw.</target>
+ <target state="translated">Diese Funktion ermöglicht den Zugriff auf andere Geräte im lokalen Netzwerk, z. B. zum Teilen, Drucken, Streamen usw.</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-tm">Mit dieser Funktion können Sie diese Zensur umgehen, indem Sie benutzerdefinierte Wege zum Zugriff auf die API über Proxys und ähnliche Methoden hinzufügen.</target>
+ <target state="translated">Mit dieser Funktion können Sie diese Zensur umgehen, indem Sie benutzerdefinierte Wege zum Zugriff auf die API über Proxys 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." xml:space="preserve">
<source>This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.</source>
- <target state-qualifier="leveraged-tm">Diese Funktion macht den WireGuard-Tunnel resistent gegen mögliche Angriffe von Quantencomputern.</target>
+ <target state="translated">Diese Funktion macht den WireGuard-Tunnel resistent gegen mögliche Angriffe von Quantencomputern.</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." 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.</source>
- <target state-qualifier="leveraged-tm">Dies ist der dem Gerät zugewiesene Name. Jedes Gerät, das in einem Mullvad-Konto angemeldet ist, erhält einen eindeutigen Namen, mit dem Sie es identifizieren können, wenn Sie Ihre Geräte in der App oder auf der Website verwalten.</target>
+ <target state="translated">Dies ist der dem Gerät zugewiesene Name. Jedes Gerät, das in einem Mullvad-Konto angemeldet ist, erhält einen eindeutigen Namen, mit dem Sie es identifizieren können, wenn Sie Ihre Geräte in der App oder auf der Website verwalten.</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">
@@ -1686,7 +1589,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="This might cause issues on certain websites, services, and apps." xml:space="preserve">
<source>This might cause issues on certain websites, services, and apps.</source>
- <target state-qualifier="leveraged-tm">Dies kann bei bestimmten Websites, Diensten und Apps zu Problemen führen.</target>
+ <target state="translated">Dies kann bei bestimmten Websites, Diensten und Apps zu Problemen führen.</target>
<note/>
</trans-unit>
<trans-unit id="This voucher code has already been used." xml:space="preserve">
@@ -1701,22 +1604,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="To add more, you will need to disconnect and access the Internet with an unsecure connection." xml:space="preserve">
<source>To add more, you will need to disconnect and access the Internet with an unsecure connection.</source>
- <target state-qualifier="leveraged-tm">Um mehr hinzuzufügen, müssen Sie Ihre Verbindung trennen und mit einer unsicheren Verbindung auf das Internet zugreifen.</target>
+ <target state="translated">Um mehr hinzuzufügen, müssen Sie Ihre Verbindung trennen und mit einer unsicheren Verbindung auf das Internet zugreifen.</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-tm">Um Ihnen besser weiterhelfen zu können, schreiben Sie uns bitte auf Englisch oder Schwedisch und geben Sie an, aus welchem Land Sie die Verbindung herstellen.</target>
+ <target state="translated">Um Ihnen besser weiterhelfen zu können, schreiben Sie uns bitte auf Englisch oder Schwedisch und geben Sie an, aus welchem Land Sie die Verbindung herstellen.</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-tm">Um dies zu umgehen, können Sie eine Datei oder einen von unserem Support-Team bereitgestellten Text mit neuen IP-Adressen importieren, die die Standardadressen der Server in der Ortsauswahl außer Kraft setzen.</target>
+ <target state="translated">Um dies zu umgehen, können Sie eine Datei oder einen von unserem Support-Team bereitgestellten Text mit neuen IP-Adressen importieren, die die Standardadressen der Server in der Ortsauswahl außer Kraft setzen.</target>
<note/>
</trans-unit>
<trans-unit id="To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools." xml:space="preserve">
<source>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-tm">Besuchen Sie unsere Website, um mehr über datenschutzfreundliche Gewohnheiten &amp; Tools zu erfahren und Ihre Reise als Datenschutz-Ninja fortzufahren.</target>
+ <target state="translated">Besuchen Sie unsere Website, um mehr über datenschutzfreundliche Gewohnheiten &amp; Tools zu erfahren und Ihre Reise als Datenschutz-Ninja fortzufahren.</target>
<note/>
</trans-unit>
<trans-unit id="To create a custom list, tap on &quot;...&quot; " xml:space="preserve">
@@ -1731,32 +1634,27 @@ Do you want to remove the saved account number?</target>
</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-tm">Damit wir Ihnen besser helfen können, wird die Protokolldatei Ihrer App an diese Nachricht angehängt. Ihre Daten bleiben sicher und privat, da sie vor dem Senden über einen verschlüsselten Kanal anonymisiert werden.</target>
+ <target state="translated">Damit wir Ihnen besser helfen können, wird die Protokolldatei Ihrer App an diese Nachricht angehängt. Ihre Daten bleiben sicher und privat, da sie vor dem Senden über einen verschlüsselten Kanal anonymisiert werden.</target>
<note/>
</trans-unit>
<trans-unit id="To start using the app, you first need to add time to your account." xml:space="preserve">
<source>To start using the app, you first need to add time to your account.</source>
- <target state-qualifier="leveraged-tm">Um mit der Nutzung dieser App zu beginnen, müssen Sie erst einmal Zeit zu Ihrem Konto hinzufügen.</target>
+ <target state="translated">Um mit der Nutzung dieser App zu beginnen, müssen Sie erst einmal Zeit zu Ihrem Konto hinzufügen.</target>
<note/>
</trans-unit>
<trans-unit id="Too many devices" xml:space="preserve">
<source>Too many devices</source>
- <target state-qualifier="leveraged-tm">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="needs-translation">Too many devices registered with account</target>
+ <target state="translated">Zu viele Geräte</target>
<note/>
</trans-unit>
<trans-unit id="Trackers" xml:space="preserve">
<source>Trackers</source>
- <target state-qualifier="leveraged-tm">Tracker</target>
+ <target state="translated">Tracker</target>
<note/>
</trans-unit>
<trans-unit id="Try again" xml:space="preserve">
<source>Try again</source>
- <target state-qualifier="leveraged-tm">Erneut versuchen</target>
+ <target state="translated">Erneut versuchen</target>
<note/>
</trans-unit>
<trans-unit id="Tunnel is unset." xml:space="preserve">
@@ -1766,7 +1664,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Type" xml:space="preserve">
<source>Type</source>
- <target state-qualifier="leveraged-tm">Typ</target>
+ <target state="translated">Typ</target>
<note/>
</trans-unit>
<trans-unit id="UDP" xml:space="preserve">
@@ -1776,7 +1674,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="UDP-over-TCP" xml:space="preserve">
<source>UDP-over-TCP</source>
- <target state-qualifier="leveraged-tm">UDP über TCP</target>
+ <target state="translated">UDP über TCP</target>
<note/>
</trans-unit>
<trans-unit id="Unable to authenticate account. Please log out and log back in." xml:space="preserve">
@@ -1791,7 +1689,7 @@ Do you want to remove the saved account number?</target>
</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-tm">Die Tunnelverbindung konnte nicht gestartet werden. Bitte senden Sie einen Problembericht.</target>
+ <target state="translated">Die Tunnelverbindung konnte nicht gestartet werden. Bitte senden Sie einen Problembericht.</target>
<note/>
</trans-unit>
<trans-unit id="Unexpected server response: %1$@ (HTTP status: %2$d)" xml:space="preserve">
@@ -1806,62 +1704,57 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Unknown error." xml:space="preserve">
<source>Unknown error.</source>
- <target state-qualifier="leveraged-tm">Unbekannter Fehler.</target>
- <note/>
- </trans-unit>
- <trans-unit id="Unsecured connection" xml:space="preserve">
- <source>Unsecured connection</source>
- <target state="needs-translation">Unsecured connection</target>
+ <target state="translated">Unbekannter Fehler.</target>
<note/>
</trans-unit>
<trans-unit id="Use custom DNS server" xml:space="preserve">
<source>Use custom DNS server</source>
- <target state-qualifier="leveraged-tm">Benutzerdefinierten DNS-Server verwenden</target>
+ <target state="translated">Benutzerdefinierten DNS-Server verwenden</target>
<note/>
</trans-unit>
<trans-unit id="Username" xml:space="preserve">
<source>Username</source>
- <target state-qualifier="leveraged-tm">Benutzername</target>
+ <target state="translated">Benutzername</target>
<note/>
</trans-unit>
<trans-unit id="VPN settings" xml:space="preserve">
<source>VPN settings</source>
- <target state-qualifier="leveraged-tm">VPN-Einstellungen</target>
+ <target state="translated">VPN-Einstellungen</target>
<note/>
</trans-unit>
<trans-unit id="Valid range: %d - %d" xml:space="preserve">
<source>Valid range: %1$d - %2$d</source>
- <target state-qualifier="leveraged-tm">Gültiger Bereich: %1$d–%2$d</target>
+ <target state="translated">Gültiger Bereich: %1$d–%2$d</target>
<note/>
</trans-unit>
<trans-unit id="Verifying voucher..." xml:space="preserve">
<source>Verifying voucher...</source>
- <target state-qualifier="leveraged-tm">Gutschein wird verifiziert ...</target>
+ <target state="translated">Gutschein wird verifiziert ...</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-qualifier="leveraged-tm">Lassen Sie all Ihre angemeldeten Geräte anzeigen und verwalten Sie sie. Sie können bis zu fünf Geräte gleichzeitig bei einem Konto haben. Jedes Gerät bekommt beim Anmelden einen Namen, damit Sie sie leicht unterscheiden können.</target>
+ <target state="translated">Lassen Sie all Ihre angemeldeten Geräte anzeigen und verwalten Sie sie. Sie können bis zu fünf Geräte gleichzeitig bei einem Konto haben. Jedes Gerät bekommt beim Anmelden einen Namen, damit Sie sie leicht unterscheiden können.</target>
<note/>
</trans-unit>
<trans-unit id="View app logs" xml:space="preserve">
<source>View app logs</source>
- <target state-qualifier="leveraged-tm">App-Protokolle anzeigen</target>
+ <target state="translated">App-Protokolle 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-tm">Der Gutscheincode ist ungültig.</target>
+ <target state="translated">Der 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-tm">Der Gutschein wurde erfolgreich eingelöst.</target>
+ <target state="translated">Der 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-tm">Der Malware-Blocker ist kein Antivirusprogramm und sollte auch nicht als solches behandelt werden. Es dient lediglich als zusätzliche Schutzschicht.</target>
+ <target state="translated">Der Malware-Blocker ist kein Antivirusprogramm und sollte auch nicht als solches behandelt werden. Es dient lediglich als zusätzliche Schutzschicht.</target>
<note/>
</trans-unit>
<trans-unit id="We are having some issues, please try again later" xml:space="preserve">
@@ -1871,7 +1764,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="We will look into this." xml:space="preserve">
<source>We will look into this.</source>
- <target state-qualifier="leveraged-tm">Wir werden uns das anschauen.</target>
+ <target state="translated">Wir werden uns das anschauen.</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">
@@ -1881,12 +1774,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="What’s new" xml:space="preserve">
<source>What’s new</source>
- <target state-qualifier="leveraged-tm">Was ist neu?</target>
+ <target state="translated">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." 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.</source>
- <target state-qualifier="leveraged-tm">Wenn diese Funktion aktiviert ist, wird das Gerät daran gehindert, bestimmte Domains oder Websites zu kontaktieren, die für die Verbreitung von Werbung, Malware, Trackern und mehr bekannt sind.</target>
+ <target state="translated">Wenn diese Funktion aktiviert ist, wird das Gerät daran gehindert, bestimmte Domains oder Websites zu kontaktieren, die für die Verbreitung von Werbung, Malware, Trackern und mehr bekannt sind.</target>
<note/>
</trans-unit>
<trans-unit id="When using DAITA, one provider with DAITA-enabled servers is required." xml:space="preserve">
@@ -1896,32 +1789,32 @@ Do you want to remove the saved account number?</target>
</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-tm">Mit welchem TCP-Port sich das UDP-über-TCP-Verschleierungsprotokoll auf dem VPN-Server verbinden soll.</target>
+ <target state="translated">Mit welchem TCP-Port sich das UDP-über-TCP-Verschleierungsprotokoll 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-tm">WireGuard-Verschleierung</target>
+ <target state="translated">WireGuard-Verschleierung</target>
<note/>
</trans-unit>
<trans-unit id="WireGuard port" xml:space="preserve">
<source>WireGuard port</source>
- <target state-qualifier="leveraged-tm">WireGuard-Port</target>
+ <target state="translated">WireGuard-Port</target>
<note/>
</trans-unit>
<trans-unit id="With the “Direct” 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-tm">Mit der Methode „Direkt“ kommuniziert die App direkt mit einem Mullvad API-Server ohne zwischengeschaltete Proxys.</target>
+ <target state="translated">Mit der Methode „Direkt“ kommuniziert die App direkt mit einem Mullvad API-Server ohne zwischengeschaltete Proxys.</target>
<note/>
</trans-unit>
<trans-unit id="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." 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-tm">Mit der Methode „Verschlüsseltes-DNS-Proxy“ kommuniziert die App mit unserer Mullvad-API über eine Proxy-Adresse. Sie tut dies, indem sie eine Adresse von einem DNS-over-HTTPS-Server (DoH) abruft und dann diese verwendet, um unsere API-Server zu erreichen.</target>
+ <target state="translated">Mit der Methode „Verschlüsseltes-DNS-Proxy“ kommuniziert die App mit unserer Mullvad-API über eine Proxy-Adresse. Sie tut dies, indem sie eine Adresse von einem DNS-over-HTTPS-Server (DoH) abruft und dann diese verwendet, um unsere API-Server zu erreichen.</target>
<note/>
</trans-unit>
<trans-unit id="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." 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-tm">Mit „Mullvad-Brücken“ kommuniziert die App mit einem Mullvad API-Server über einen Mullvad Brücken-Server. Dazu sendet sie den von Shadowsocks verschleierten Traffic.</target>
+ <target state="translated">Mit „Mullvad-Brücken“ kommuniziert die App mit einem Mullvad API-Server über einen Mullvad Brücken-Server. Dazu sendet sie den von Shadowsocks verschleierten Traffic.</target>
<note/>
</trans-unit>
<trans-unit id="Yes, continue" xml:space="preserve">
@@ -1931,22 +1824,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Yes, log out device" xml:space="preserve">
<source>Yes, log out device</source>
- <target state-qualifier="leveraged-tm">Ja, von Gerät abmelden</target>
+ <target state="translated">Ja, von Gerät abmelden</target>
<note/>
</trans-unit>
<trans-unit id="You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone." xml:space="preserve">
<source>You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone.</source>
- <target state="needs-translation">You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone.</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Sie haben bereits eine gespeicherte Kontonummer. Wenn Sie ein neues Konto erstellen, wird die gespeicherte Kontonummer von diesem Gerät entfernt. Dies kann nicht rückgängig gemacht werden.</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-tm">Sie wollen einen Problembericht senden, ohne uns die Möglichkeit zu geben, Sie zu erreichen. Wenn Sie sich eine Antwort zu Ihrem Problem wünschen, müssen Sie eine E-Mail-Adresse eingeben.</target>
+ <target state="translated">Sie wollen einen Problembericht senden, ohne uns die Möglichkeit zu geben, Sie zu erreichen. Wenn Sie sich eine Antwort zu Ihrem Problem 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-tm">Sie sind mit einer ungültigen Kontonummer angemeldet. Bitte melden Sie sich ab und versuchen Sie es mit einer anderen.</target>
+ <target state="translated">Sie sind mit einer ungültigen Kontonummer angemeldet. Bitte melden Sie sich ab und versuchen Sie es mit einer anderen.</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">
@@ -1956,12 +1849,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="You can have up to 5 devices logged in on one Mullvad account." xml:space="preserve">
<source>You can have up to 5 devices logged in on one Mullvad account.</source>
- <target state-qualifier="leveraged-tm">Es sind pro Mullvad-Konto bis zu 5 angemeldete Geräte möglich.</target>
+ <target state="translated">Es sind pro Mullvad-Konto bis zu 5 angemeldete Geräte möglich.</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-qualifier="leveraged-tm">Sie können jetzt mit der Anmeldung auf diesem Gerät fortfahren.</target>
+ <target state="translated">Sie können jetzt mit der Anmeldung auf diesem Gerät fortfahren.</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">
@@ -1989,7 +1882,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="You have no more VPN time left on this account. " xml:space="preserve">
<source>You have no more VPN time left on this account. </source>
- <target state-qualifier="leveraged-tm">Sie haben keine VPN-Zeit mehr auf diesem Konto. </target>
+ <target state="translated">Sie haben keine VPN-Zeit mehr auf diesem Konto. </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">
@@ -1999,7 +1892,7 @@ We strongly believe in retaining as little data as possible because we want you
</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-tm">Sie haben dieses Gerät entfernt. Um sich erneut zu verbinden, müssen Sie sich erneut anmelden.</target>
+ <target state="translated">Sie haben dieses Gerät entfernt. Um sich erneut zu verbinden, müssen Sie sich erneut anmelden.</target>
<note/>
</trans-unit>
<trans-unit id="You have unsaved changes." xml:space="preserve">
@@ -2009,7 +1902,7 @@ We strongly believe in retaining as little data as possible because we want you
</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-tm">Ihr Gerät ist offline. Der Tunnel wird automatisch verbunden, sobald Ihr Gerät wieder online ist.</target>
+ <target state="translated">Ihr Gerät ist offline. Der Tunnel wird automatisch verbunden, 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">
@@ -2019,7 +1912,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="Your email (optional)" xml:space="preserve">
<source>Your email (optional)</source>
- <target state-qualifier="leveraged-tm">Ihre E-Mail-Adresse (optional)</target>
+ <target state="translated">Ihre E-Mail-Adresse (optional)</target>
<note/>
</trans-unit>
<trans-unit id="Your previous purchases have already been added to this account." xml:space="preserve">
@@ -2034,12 +1927,12 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="You’re all set!!" xml:space="preserve">
<source>You’re all set!!</source>
- <target state-qualifier="leveraged-tm">Sie sind startklar!!</target>
+ <target state="translated">Sie sind startklar!!</target>
<note/>
</trans-unit>
<trans-unit id="file" xml:space="preserve">
<source>file</source>
- <target state-qualifier="leveraged-tm">datei</target>
+ <target state="translated">datei</target>
<note/>
</trans-unit>
<trans-unit id="method" xml:space="preserve">
@@ -2073,7 +1966,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2085,7 +1978,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2097,7 +1990,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2109,7 +2002,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="MullvadMockData/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2121,7 +2014,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="MullvadREST/InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2133,7 +2026,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Operations-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2145,19 +2038,19 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
- <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
- <target state="needs-translation">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
- <note>Copyright (human-readable)</note>
+ <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
+ <source>The app needs this to connect and test a new method.</source>
+ <target state="needs-translation">The app needs this to connect and test a new method.</target>
+ <note>Privacy - Local Network Usage Description</note>
</trans-unit>
</body>
</file>
- <file original="Assets/Resources/InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="Operations/Operations-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2169,7 +2062,51 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Routing-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="PacketTunnel/InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ </body>
+ </file>
+ <file original="PacketTunnel/Localizable.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">%@ wurde zu Ihrem Konto hinzugefügt.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot complete the purchase" xml:space="preserve">
+ <source>Cannot complete the purchase</source>
+ <target state="needs-translation">Cannot complete the purchase</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot restore purchases" xml:space="preserve">
+ <source>Cannot restore purchases</source>
+ <target state="needs-translation">Cannot restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Restore purchases" xml:space="preserve">
+ <source>Restore purchases</source>
+ <target state="needs-translation">Restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks for your purchase" xml:space="preserve">
+ <source>Thanks for your purchase</source>
+ <target state="needs-translation">Thanks for your purchase</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="needs-translation">Your previous purchases have already been added to this account.</target>
+ <note/>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="PacketTunnelCore/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2181,15 +2118,15 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
+ <file original="Routing/Routing-InfoPlist.xcstrings" source-language="en" target-language="de" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
- <source>The app needs this to connect and test a new method.</source>
- <target state="needs-translation">The app needs this to connect and test a new method.</target>
- <note>Privacy - Local Network Usage Description</note>
+ <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
+ <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
+ <target state="needs-translation">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
+ <note>Copyright (human-readable)</note>
</trans-unit>
</body>
</file>
diff --git a/ios/translation/locales/en.xliff b/ios/translation/locales/en.xliff
index c8c2cacaf6..d87f1a08e9 100644
--- a/ios/translation/locales/en.xliff
+++ b/ios/translation/locales/en.xliff
@@ -1,12 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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/InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
- <header>
- <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
- </header>
- <body>
- </body>
- </file>
<file original="Assets/Localizable.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
@@ -32,11 +25,6 @@
<target state="new">%@ does this by carefully adding network noise and making all network packets the same size.</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>
- <note/>
- </trans-unit>
<trans-unit id="%@ left on this account" xml:space="preserve">
<source>%@ left on this account</source>
<target state="new">%@ left on this account</target>
@@ -47,9 +35,9 @@
<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>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="new">%@ was added to your account.</target>
<note/>
</trans-unit>
<trans-unit id="%@, %@" xml:space="preserve">
@@ -82,11 +70,6 @@
<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>
@@ -102,9 +85,9 @@
<target state="new">API unreachable</target>
<note/>
</trans-unit>
- <trans-unit id="API unreachable, save anyway?" xml:space="preserve">
- <source>API unreachable, save anyway?</source>
- <target state="new">API unreachable, save anyway?</target>
+ <trans-unit id="API unreachable, save method anyway?" xml:space="preserve">
+ <source>API unreachable, save method anyway?</source>
+ <target state="new">API unreachable, save method anyway?</target>
<note/>
</trans-unit>
<trans-unit id="About API access…" xml:space="preserve">
@@ -182,26 +165,21 @@
<target state="new">Add 90 days</target>
<note/>
</trans-unit>
- <trans-unit id="Add Time" xml:space="preserve">
- <source>Add Time</source>
- <target state="new">Add Time</target>
- <note/>
- </trans-unit>
<trans-unit id="Add a server" xml:space="preserve">
<source>Add a server</source>
<target state="new">Add a server</target>
<note/>
</trans-unit>
- <trans-unit id="Add access method" xml:space="preserve">
- <source>Add access method</source>
- <target state="new">Add access method</target>
- <note/>
- </trans-unit>
<trans-unit id="Add locations" xml:space="preserve">
<source>Add locations</source>
<target state="new">Add locations</target>
<note/>
</trans-unit>
+ <trans-unit id="Add method" xml:space="preserve">
+ <source>Add method</source>
+ <target state="new">Add method</target>
+ <note/>
+ </trans-unit>
<trans-unit id="Add new list" xml:space="preserve">
<source>Add new list</source>
<target state="new">Add new list</target>
@@ -232,16 +210,16 @@
<target state="new">All</target>
<note/>
</trans-unit>
- <trans-unit id="All Providers" xml:space="preserve">
- <source>All Providers</source>
- <target state="new">All Providers</target>
- <note/>
- </trans-unit>
<trans-unit id="All locations" xml:space="preserve">
<source>All locations</source>
<target state="new">All locations</target>
<note/>
</trans-unit>
+ <trans-unit id="All providers" xml:space="preserve">
+ <source>All providers</source>
+ <target state="new">All providers</target>
+ <note/>
+ </trans-unit>
<trans-unit id="Any" xml:space="preserve">
<source>Any</source>
<target state="new">Any</target>
@@ -292,11 +270,6 @@
<target state="new">BLOCKING INTERNET</target>
<note/>
</trans-unit>
- <trans-unit id="Back to editing" xml:space="preserve">
- <source>Back to editing</source>
- <target state="new">Back to editing</target>
- <note/>
- </trans-unit>
<trans-unit id="Blocked connection" xml:space="preserve">
<source>Blocked connection</source>
<target state="new">Blocked connection</target>
@@ -427,9 +400,9 @@
<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>
+ <trans-unit id="Copied Mullvad account number to pasteboard" xml:space="preserve">
+ <source>Copied Mullvad account number to pasteboard</source>
+ <target state="new">Copied Mullvad account number to pasteboard</target>
<note/>
</trans-unit>
<trans-unit id="Correct account number" xml:space="preserve">
@@ -462,16 +435,6 @@
<target state="new">Creating new account</target>
<note/>
</trans-unit>
- <trans-unit id="Creating quantum secure connection" xml:space="preserve">
- <source>Creating quantum secure connection</source>
- <target state="new">Creating quantum secure connection</target>
- <note/>
- </trans-unit>
- <trans-unit id="Creating secure connection" xml:space="preserve">
- <source>Creating secure connection</source>
- <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>
@@ -512,11 +475,6 @@
<target state="new">DAITA-enabled</target>
<note/>
</trans-unit>
- <trans-unit id="DAITA: Multihop" xml:space="preserve">
- <source>DAITA: Multihop</source>
- <target state="new">DAITA: Multihop</target>
- <note/>
- </trans-unit>
<trans-unit id="DNS content blockers" xml:space="preserve">
<source>DNS content blockers</source>
<target state="new">DNS content blockers</target>
@@ -542,11 +500,6 @@
<target state="new">Delete %@?</target>
<note/>
</trans-unit>
- <trans-unit id="Delete Account" xml:space="preserve">
- <source>Delete Account</source>
- <target state="new">Delete Account</target>
- <note/>
- </trans-unit>
<trans-unit id="Delete account" xml:space="preserve">
<source>Delete account</source>
<target state="new">Delete account</target>
@@ -582,11 +535,6 @@
<target state="new">Device name: %@</target>
<note/>
</trans-unit>
- <trans-unit id="Direct" xml:space="preserve">
- <source>Direct</source>
- <target state="new">Direct</target>
- <note/>
- </trans-unit>
<trans-unit id="Direct only" xml:space="preserve">
<source>Direct only</source>
<target state="new">Direct only</target>
@@ -622,11 +570,6 @@
<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>
@@ -707,11 +650,6 @@
<target state="new">Enabling</target>
<note/>
</trans-unit>
- <trans-unit id="Encrypted DNS proxy" xml:space="preserve">
- <source>Encrypted DNS proxy</source>
- <target state="new">Encrypted DNS proxy</target>
- <note/>
- </trans-unit>
<trans-unit id="Enter IP" xml:space="preserve">
<source>Enter IP</source>
<target state="new">Enter IP</target>
@@ -752,9 +690,9 @@
<target state="new">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="new">Failed to connect to App store, please try again later.</target>
+ <trans-unit id="Failed to load products, please try again" xml:space="preserve">
+ <source>Failed to load products, please try again</source>
+ <target state="new">Failed to load products, please try again</target>
<note/>
</trans-unit>
<trans-unit id="Failed to send" xml:space="preserve">
@@ -852,11 +790,6 @@
<target state="new">If needed we will contact you at %@</target>
<note/>
</trans-unit>
- <trans-unit id="If so, click log out below to log in with the other account number." xml:space="preserve">
- <source>If so, click log out below to log in with the other account number.</source>
- <target state="new">If so, click log out below to log in with the other account number.</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="new">If you are having issues connecting to VPN servers, please contact support.</target>
@@ -952,9 +885,9 @@
<target state="new">Internal error.</target>
<note/>
</trans-unit>
- <trans-unit id="Invalid account" xml:space="preserve">
- <source>Invalid account</source>
- <target state="new">Invalid account</target>
+ <trans-unit id="Invalid account number" xml:space="preserve">
+ <source>Invalid account number</source>
+ <target state="new">Invalid account number</target>
<note/>
</trans-unit>
<trans-unit id="Invalid device state." xml:space="preserve">
@@ -1052,14 +985,9 @@
<target state="new">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="new">Manage default and setup custom methods to access the Mullvad 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="new">Manage default and setup custom methods to access the Mullvad API. </target>
+ <trans-unit id="Manage and add custom methods to access the Mullvad API." xml:space="preserve">
+ <source>Manage and add custom methods to access the Mullvad API.</source>
+ <target state="new">Manage and add custom methods to access the Mullvad API.</target>
<note/>
</trans-unit>
<trans-unit id="Manage devices" xml:space="preserve">
@@ -1072,11 +1000,6 @@
<target state="new">Method settings</target>
<note/>
</trans-unit>
- <trans-unit id="Mullvad bridges" xml:space="preserve">
- <source>Mullvad bridges</source>
- <target state="new">Mullvad bridges</target>
- <note/>
- </trans-unit>
<trans-unit id="Multihop" xml:space="preserve">
<source>Multihop</source>
<target state="new">Multihop</target>
@@ -1117,6 +1040,11 @@
<target state="new">Name</target>
<note/>
</trans-unit>
+ <trans-unit id="Name is already taken." xml:space="preserve">
+ <source>Name is already taken.</source>
+ <target state="new">Name is already taken.</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="new">Name should be no longer than %i characters.</target>
@@ -1332,16 +1260,6 @@
<target state="new">Quantum resistance</target>
<note/>
</trans-unit>
- <trans-unit id="Quantum secure connection" xml:space="preserve">
- <source>Quantum secure connection</source>
- <target state="new">Quantum secure connection</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="new">Quantum secure connection. Connected to %1$@, %2$@</target>
- <note/>
- </trans-unit>
<trans-unit id="Quantum-resistant tunnel" xml:space="preserve">
<source>Quantum-resistant tunnel</source>
<target state="new">Quantum-resistant tunnel</target>
@@ -1424,11 +1342,6 @@ Do you want to remove the saved account number?</target>
<target state="new">Save</target>
<note/>
</trans-unit>
- <trans-unit id="Save anyway" xml:space="preserve">
- <source>Save anyway</source>
- <target state="new">Save anyway</target>
- <note/>
- </trans-unit>
<trans-unit id="Saving changes..." xml:space="preserve">
<source>Saving changes...</source>
<target state="new">Saving changes...</target>
@@ -1439,11 +1352,6 @@ Do you want to remove the saved account number?</target>
<target state="new">Search for...</target>
<note/>
</trans-unit>
- <trans-unit id="Secure connection. Connected to %@, %@" xml:space="preserve">
- <source>Secure connection. Connected to %1$@, %2$@</source>
- <target state="new">Secure connection. Connected to %1$@, %2$@</target>
- <note/>
- </trans-unit>
<trans-unit id="Select location" xml:space="preserve">
<source>Select location</source>
<target state="new">Select location</target>
@@ -1479,11 +1387,6 @@ Do you want to remove the saved account number?</target>
<target state="new">Server</target>
<note/>
</trans-unit>
- <trans-unit id="Server IP Override" xml:space="preserve">
- <source>Server IP Override</source>
- <target state="new">Server IP Override</target>
- <note/>
- </trans-unit>
<trans-unit id="Server IP override" xml:space="preserve">
<source>Server IP override</source>
<target state="new">Server IP override</target>
@@ -1744,11 +1647,6 @@ Do you want to remove the saved account number?</target>
<target state="new">Too many devices</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="new">Too many devices registered with account</target>
- <note/>
- </trans-unit>
<trans-unit id="Trackers" xml:space="preserve">
<source>Trackers</source>
<target state="new">Trackers</target>
@@ -1809,11 +1707,6 @@ Do you want to remove the saved account number?</target>
<target state="new">Unknown error.</target>
<note/>
</trans-unit>
- <trans-unit id="Unsecured connection" xml:space="preserve">
- <source>Unsecured connection</source>
- <target state="new">Unsecured connection</target>
- <note/>
- </trans-unit>
<trans-unit id="Use custom DNS server" xml:space="preserve">
<source>Use custom DNS server</source>
<target state="new">Use custom DNS server</target>
@@ -2073,7 +1966,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2085,7 +1978,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2097,7 +1990,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2109,7 +2002,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="MullvadMockData/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2121,7 +2014,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="MullvadREST/InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2133,7 +2026,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Operations-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2145,19 +2038,19 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
- <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
- <target state="new">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
- <note>Copyright (human-readable)</note>
+ <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
+ <source>The app needs this to connect and test a new method.</source>
+ <target state="new">The app needs this to connect and test a new method.</target>
+ <note>Privacy - Local Network Usage Description</note>
</trans-unit>
</body>
</file>
- <file original="Assets/Resources/InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="Operations/Operations-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2169,7 +2062,51 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Routing-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="PacketTunnel/InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ </body>
+ </file>
+ <file original="PacketTunnel/Localizable.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="new">%@ was added to your account.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot complete the purchase" xml:space="preserve">
+ <source>Cannot complete the purchase</source>
+ <target state="new">Cannot complete the purchase</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot restore purchases" xml:space="preserve">
+ <source>Cannot restore purchases</source>
+ <target state="new">Cannot restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Restore purchases" xml:space="preserve">
+ <source>Restore purchases</source>
+ <target state="new">Restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks for your purchase" xml:space="preserve">
+ <source>Thanks for your purchase</source>
+ <target state="new">Thanks for your purchase</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="new">Your previous purchases have already been added to this account.</target>
+ <note/>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="PacketTunnelCore/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2181,15 +2118,15 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
+ <file original="Routing/Routing-InfoPlist.xcstrings" source-language="en" target-language="en" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
- <source>The app needs this to connect and test a new method.</source>
- <target state="new">The app needs this to connect and test a new method.</target>
- <note>Privacy - Local Network Usage Description</note>
+ <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
+ <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
+ <target state="new">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
+ <note>Copyright (human-readable)</note>
</trans-unit>
</body>
</file>
diff --git a/ios/translation/locales/fr.xliff b/ios/translation/locales/fr.xliff
index 42ea5c73ec..f1d31d7bba 100644
--- a/ios/translation/locales/fr.xliff
+++ b/ios/translation/locales/fr.xliff
@@ -1,12 +1,5 @@
<?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/InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
- <header>
- <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
- </header>
- <body>
- </body>
- </file>
<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.4" build-num="16F6"/>
@@ -19,22 +12,17 @@
</trans-unit>
<trans-unit id="%@ (%@) hides patterns in your encrypted VPN traffic." xml:space="preserve">
<source>%1$@ (%2$@) hides patterns in your encrypted VPN traffic.</source>
- <target state-qualifier="leveraged-tm">%1$@ (%2$@) masque les schémas de votre trafic VPN chiffré.</target>
+ <target state="translated">%1$@ (%2$@) masque les schémas de votre trafic VPN chiffré.</target>
<note/>
</trans-unit>
<trans-unit id="%@ cannot be empty." xml:space="preserve">
<source>%@ cannot be empty.</source>
- <target state-qualifier="leveraged-tm">%@ ne peut pas être vide.</target>
+ <target state="translated">%@ ne peut pas être vide.</target>
<note/>
</trans-unit>
<trans-unit id="%@ does this by carefully adding network noise and making all network packets the same size." xml:space="preserve">
<source>%@ does this by carefully adding network noise and making all network packets the same size.</source>
- <target state-qualifier="leveraged-tm">%@ y parvient en ajoutant soigneusement du bruit au réseau et en faisant en sorte que tous les paquets du réseau aient la même taille.</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="needs-translation">%@ have been added to your account</target>
+ <target state="translated">%@ y parvient en ajoutant soigneusement du bruit au réseau et en faisant en sorte que tous les paquets du réseau aient la même taille.</target>
<note/>
</trans-unit>
<trans-unit id="%@ left on this account" xml:space="preserve">
@@ -47,9 +35,9 @@
<target state="needs-translation">%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="needs-translation">%@ were added to your account.</target>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">%@ a été ajouté à votre compte.</target>
<note/>
</trans-unit>
<trans-unit id="%@, %@" xml:space="preserve">
@@ -64,17 +52,17 @@
</trans-unit>
<trans-unit id="%d more..." xml:space="preserve">
<source>%d more...</source>
- <target state-qualifier="leveraged-tm">%d de plus…</target>
+ <target state="translated">%d de plus…</target>
<note/>
</trans-unit>
<trans-unit id="%lld more..." xml:space="preserve">
<source>%lld more...</source>
- <target state-qualifier="leveraged-tm">%lld de plus…</target>
+ <target state="translated">%lld 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.**" 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.**</source>
- <target state-qualifier="leveraged-tm">**Attention : cette option augmente le trafic sur le réseau et peut avoir un impact négatif sur la vitesse, la latence et l'utilisation de la batterie. À utiliser avec précaution pour les forfaits limités.**</target>
+ <target state="translated">**Attention : cette option augmente le trafic sur le réseau et peut avoir un impact négatif sur la vitesse, la latence et l'utilisation de la batterie. À utiliser avec précaution pour les forfaits limités.**</target>
<note/>
</trans-unit>
<trans-unit id="**Tap here** to see what’s new" xml:space="preserve">
@@ -82,29 +70,24 @@
<target state="needs-translation">**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="needs-translation">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-qualifier="leveraged-tm">Accès à l'API</target>
+ <target state="translated">Accès à l'API</target>
<note/>
</trans-unit>
<trans-unit id="API reachable" xml:space="preserve">
<source>API reachable</source>
- <target state-qualifier="leveraged-tm">API joignable</target>
+ <target state="translated">API joignable</target>
<note/>
</trans-unit>
<trans-unit id="API unreachable" xml:space="preserve">
<source>API unreachable</source>
- <target state-qualifier="leveraged-tm">API injoignable</target>
+ <target state="translated">API injoignable</target>
<note/>
</trans-unit>
- <trans-unit id="API unreachable, save anyway?" xml:space="preserve">
- <source>API unreachable, save anyway?</source>
- <target state-qualifier="leveraged-tm">API injoignable, l'enregistrer quand même ?</target>
+ <trans-unit id="API unreachable, save method anyway?" xml:space="preserve">
+ <source>API unreachable, save method anyway?</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">API injoignable, enregistrer quand même la méthode ?</target>
<note/>
</trans-unit>
<trans-unit id="About API access…" xml:space="preserve">
@@ -134,17 +117,17 @@
</trans-unit>
<trans-unit id="Account" xml:space="preserve">
<source>Account</source>
- <target state-qualifier="leveraged-tm">Compte</target>
+ <target state="translated">Compte</target>
<note/>
</trans-unit>
<trans-unit id="Account created" xml:space="preserve">
<source>Account created</source>
- <target state-qualifier="leveraged-tm">Compte créé</target>
+ <target state="translated">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-tm">Les crédits du compte expirent bientôt</target>
+ <target state="translated">Les crédits du compte expirent bientôt</target>
<note/>
</trans-unit>
<trans-unit id="Account credit has expired" xml:space="preserve">
@@ -159,17 +142,17 @@
</trans-unit>
<trans-unit id="Account number" xml:space="preserve">
<source>Account number</source>
- <target state-qualifier="leveraged-tm">Numéro de compte</target>
+ <target state="translated">Numéro de compte</target>
<note/>
</trans-unit>
<trans-unit id="Active features" xml:space="preserve">
<source>Active features</source>
- <target state-qualifier="leveraged-tm">Fonctionnalités activées</target>
+ <target state="translated">Fonctionnalités activées</target>
<note/>
</trans-unit>
<trans-unit id="Add" xml:space="preserve">
<source>Add</source>
- <target state-qualifier="leveraged-tm">Ajouter</target>
+ <target state="translated">Ajouter</target>
<note/>
</trans-unit>
<trans-unit id="Add 30 days" xml:space="preserve">
@@ -182,24 +165,19 @@
<target state="needs-translation">Add 90 days</target>
<note/>
</trans-unit>
- <trans-unit id="Add Time" xml:space="preserve">
- <source>Add Time</source>
- <target state="needs-translation">Add Time</target>
- <note/>
- </trans-unit>
<trans-unit id="Add a server" xml:space="preserve">
<source>Add a server</source>
- <target state-qualifier="leveraged-tm">Ajouter un serveur</target>
- <note/>
- </trans-unit>
- <trans-unit id="Add access method" xml:space="preserve">
- <source>Add access method</source>
- <target state="needs-translation">Add access method</target>
+ <target state="translated">Ajouter un serveur</target>
<note/>
</trans-unit>
<trans-unit id="Add locations" xml:space="preserve">
<source>Add locations</source>
- <target state-qualifier="leveraged-tm">Ajouter des localisations</target>
+ <target state="translated">Ajouter des localisations</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add method" xml:space="preserve">
+ <source>Add method</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Ajouter un mode</target>
<note/>
</trans-unit>
<trans-unit id="Add new list" xml:space="preserve">
@@ -209,22 +187,22 @@
</trans-unit>
<trans-unit id="Add time" xml:space="preserve">
<source>Add time</source>
- <target state-qualifier="leveraged-tm">Ajouter du temps</target>
+ <target state="translated">Ajouter du temps</target>
<note/>
</trans-unit>
<trans-unit id="Ads" xml:space="preserve">
<source>Ads</source>
- <target state-qualifier="leveraged-tm">Publicités</target>
+ <target state="translated">Publicités</target>
<note/>
</trans-unit>
<trans-unit id="Adult content" xml:space="preserve">
<source>Adult content</source>
- <target state-qualifier="leveraged-tm">Contenu pour adultes</target>
+ <target state="translated">Contenu pour adultes</target>
<note/>
</trans-unit>
<trans-unit id="Agree and continue" xml:space="preserve">
<source>Agree and continue</source>
- <target state-qualifier="leveraged-tm">Accepter et continuer</target>
+ <target state="translated">Accepter et continuer</target>
<note/>
</trans-unit>
<trans-unit id="All" xml:space="preserve">
@@ -232,19 +210,19 @@
<target state="needs-translation">All</target>
<note/>
</trans-unit>
- <trans-unit id="All Providers" xml:space="preserve">
- <source>All Providers</source>
- <target state="needs-translation">All Providers</target>
- <note/>
- </trans-unit>
<trans-unit id="All locations" xml:space="preserve">
<source>All locations</source>
- <target state-qualifier="leveraged-tm">Toutes les localisations</target>
+ <target state="translated">Toutes les localisations</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All providers" xml:space="preserve">
+ <source>All providers</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Tous les fournisseurs</target>
<note/>
</trans-unit>
<trans-unit id="Any" xml:space="preserve">
<source>Any</source>
- <target state-qualifier="leveraged-tm">N'importe lequel</target>
+ <target state="translated">N'importe lequel</target>
<note/>
</trans-unit>
<trans-unit id="App logs" xml:space="preserve">
@@ -264,7 +242,7 @@
</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-tm">Au moins une méthode doit être activée.</target>
+ <target state="translated">Au moins une méthode doit être activée.</target>
<note/>
</trans-unit>
<trans-unit id="Attention: this setting cannot be used in combination with **“%@“**." xml:space="preserve">
@@ -279,22 +257,17 @@
</trans-unit>
<trans-unit id="Authentication" xml:space="preserve">
<source>Authentication</source>
- <target state-qualifier="leveraged-tm">Authentification</target>
+ <target state="translated">Authentification</target>
<note/>
</trans-unit>
<trans-unit id="Automatic" xml:space="preserve">
<source>Automatic</source>
- <target state-qualifier="leveraged-tm">Automatique</target>
+ <target state="translated">Automatique</target>
<note/>
</trans-unit>
<trans-unit id="BLOCKING INTERNET" xml:space="preserve">
<source>BLOCKING INTERNET</source>
- <target state-qualifier="leveraged-tm">BLOCAGE D'INTERNET</target>
- <note/>
- </trans-unit>
- <trans-unit id="Back to editing" xml:space="preserve">
- <source>Back to editing</source>
- <target state="needs-translation">Back to editing</target>
+ <target state="translated">BLOCAGE D'INTERNET</target>
<note/>
</trans-unit>
<trans-unit id="Blocked connection" xml:space="preserve">
@@ -314,12 +287,12 @@
</trans-unit>
<trans-unit id="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>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-tm">Utiliser une IA sophistiquée peut permettre d'analyser le trafic des paquets de données entrant et sortant de votre appareil (même si le trafic est chiffré).</target>
+ <target state="translated">Utiliser une IA sophistiquée peut permettre d'analyser le trafic des paquets de données entrant et sortant de votre appareil (même si le trafic est chiffré).</target>
<note/>
</trans-unit>
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
- <target state-qualifier="leveraged-tm">Annuler</target>
+ <target state="translated">Annuler</target>
<note/>
</trans-unit>
<trans-unit id="Cannot complete the purchase" xml:space="preserve">
@@ -344,32 +317,32 @@
</trans-unit>
<trans-unit id="Checking account number" xml:space="preserve">
<source>Checking account number</source>
- <target state-qualifier="leveraged-tm">Vérification du numéro de compte</target>
+ <target state="translated">Vérification du numéro de compte</target>
<note/>
</trans-unit>
<trans-unit id="Cipher" xml:space="preserve">
<source>Cipher</source>
- <target state-qualifier="leveraged-tm">Chiffre</target>
+ <target state="translated">Chiffre</target>
<note/>
</trans-unit>
<trans-unit id="Clear" xml:space="preserve">
<source>Clear</source>
- <target state-qualifier="leveraged-tm">Effacer</target>
+ <target state="translated">Effacer</target>
<note/>
</trans-unit>
<trans-unit id="Clear all overrides" xml:space="preserve">
<source>Clear all overrides</source>
- <target state-qualifier="leveraged-tm">Effacer toutes les substitutions</target>
+ <target state="translated">Effacer toutes les substitutions</target>
<note/>
</trans-unit>
<trans-unit id="Clear all overrides?" xml:space="preserve">
<source>Clear all overrides?</source>
- <target state-qualifier="leveraged-tm">Effacer toutes les substitutions ?</target>
+ <target state="translated">Effacer toutes les substitutions ?</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-tm">L'effacement des substitutions importées rétablit la valeur par défaut des adresses IP des serveurs dans la vue Sélection d'un emplacement.</target>
+ <target state="translated">L'effacement des substitutions importées rétablit la valeur par défaut des adresses IP des serveurs dans la vue Sélection d'un emplacement.</target>
<note/>
</trans-unit>
<trans-unit id="Client is not allowed to issue the request." xml:space="preserve">
@@ -389,17 +362,17 @@
</trans-unit>
<trans-unit id="Congrats!" xml:space="preserve">
<source>Congrats!</source>
- <target state-qualifier="leveraged-tm">Félicitations !</target>
+ <target state="translated">Félicitations !</target>
<note/>
</trans-unit>
<trans-unit id="Connect" xml:space="preserve">
<source>Connect</source>
- <target state-qualifier="leveraged-tm">Connexion</target>
+ <target state="translated">Connexion</target>
<note/>
</trans-unit>
<trans-unit id="Connected" xml:space="preserve">
<source>Connected</source>
- <target state-qualifier="leveraged-tm">Connecté</target>
+ <target state="translated">Connecté</target>
<note/>
</trans-unit>
<trans-unit id="Connected to %@, %@" xml:space="preserve">
@@ -414,22 +387,22 @@
</trans-unit>
<trans-unit id="Connecting..." xml:space="preserve">
<source>Connecting...</source>
- <target state-qualifier="leveraged-tm">Connexion...</target>
+ <target state="translated">Connexion...</target>
<note/>
</trans-unit>
<trans-unit id="Connection details" xml:space="preserve">
<source>Connection details</source>
- <target state-qualifier="leveraged-tm">Détails de la connexion</target>
+ <target state="translated">Détails de la connexion</target>
<note/>
</trans-unit>
<trans-unit id="Continue with login" xml:space="preserve">
<source>Continue with login</source>
- <target state-qualifier="leveraged-tm">Continuer avec la connexion</target>
+ <target state="translated">Continuer avec la connexion</target>
<note/>
</trans-unit>
- <trans-unit id="Copy to pasteboard" xml:space="preserve">
- <source>Copy to pasteboard</source>
- <target state="needs-translation">Copy to pasteboard</target>
+ <trans-unit id="Copied Mullvad account number to pasteboard" xml:space="preserve">
+ <source>Copied Mullvad account number to pasteboard</source>
+ <target state="needs-translation">Copied Mullvad account number to pasteboard</target>
<note/>
</trans-unit>
<trans-unit id="Correct account number" xml:space="preserve">
@@ -439,17 +412,17 @@
</trans-unit>
<trans-unit id="Create" xml:space="preserve">
<source>Create</source>
- <target state-qualifier="leveraged-tm">Créer</target>
+ <target state="translated">Créer</target>
<note/>
</trans-unit>
<trans-unit id="Create account" xml:space="preserve">
<source>Create account</source>
- <target state-qualifier="leveraged-tm">Créer un compte</target>
+ <target state="translated">Créer un compte</target>
<note/>
</trans-unit>
<trans-unit id="Create new account" xml:space="preserve">
<source>Create new account</source>
- <target state="needs-translation">Create new account</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Créer un nouveau compte</target>
<note/>
</trans-unit>
<trans-unit id="Created: %@" xml:space="preserve">
@@ -462,34 +435,24 @@
<target state="needs-translation">Creating new account</target>
<note/>
</trans-unit>
- <trans-unit id="Creating quantum secure connection" xml:space="preserve">
- <source>Creating quantum secure connection</source>
- <target state="needs-translation">Creating quantum secure connection</target>
- <note/>
- </trans-unit>
- <trans-unit id="Creating secure connection" xml:space="preserve">
- <source>Creating secure connection</source>
- <target state="needs-translation">Creating secure connection</target>
- <note/>
- </trans-unit>
<trans-unit id="Current device" xml:space="preserve">
<source>Current device</source>
- <target state-qualifier="leveraged-tm">Appareil actuel</target>
+ <target state="translated">Appareil actuel</target>
<note/>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
- <target state-qualifier="leveraged-tm">Personnalisé</target>
+ <target state="translated">Personnalisé</target>
<note/>
</trans-unit>
<trans-unit id="Custom DNS" xml:space="preserve">
<source>Custom DNS</source>
- <target state-qualifier="leveraged-tm">DNS personnalisé</target>
+ <target state="translated">DNS personnalisé</target>
<note/>
</trans-unit>
<trans-unit id="Custom lists" xml:space="preserve">
<source>Custom lists</source>
- <target state-qualifier="leveraged-tm">Listes personnalisées</target>
+ <target state="translated">Listes personnalisées</target>
<note/>
</trans-unit>
<trans-unit id="DAITA" xml:space="preserve">
@@ -512,14 +475,9 @@
<target state="needs-translation">DAITA-enabled</target>
<note/>
</trans-unit>
- <trans-unit id="DAITA: Multihop" xml:space="preserve">
- <source>DAITA: Multihop</source>
- <target state="needs-translation">DAITA: Multihop</target>
- <note/>
- </trans-unit>
<trans-unit id="DNS content blockers" xml:space="preserve">
<source>DNS content blockers</source>
- <target state-qualifier="leveraged-tm">Bloqueurs de contenu DNS</target>
+ <target state="translated">Bloqueurs de contenu DNS</target>
<note/>
</trans-unit>
<trans-unit id="DNS settings" xml:space="preserve">
@@ -534,7 +492,7 @@
</trans-unit>
<trans-unit id="Delete" xml:space="preserve">
<source>Delete</source>
- <target state-qualifier="leveraged-tm">Supprimer</target>
+ <target state="translated">Supprimer</target>
<note/>
</trans-unit>
<trans-unit id="Delete %@?" xml:space="preserve">
@@ -542,11 +500,6 @@
<target state="needs-translation">Delete %@?</target>
<note/>
</trans-unit>
- <trans-unit id="Delete Account" xml:space="preserve">
- <source>Delete Account</source>
- <target state="needs-translation">Delete Account</target>
- <note/>
- </trans-unit>
<trans-unit id="Delete account" xml:space="preserve">
<source>Delete account</source>
<target state="needs-translation">Delete account</target>
@@ -554,12 +507,12 @@
</trans-unit>
<trans-unit id="Delete list" xml:space="preserve">
<source>Delete list</source>
- <target state-qualifier="leveraged-tm">Supprimer la liste</target>
+ <target state="translated">Supprimer la liste</target>
<note/>
</trans-unit>
<trans-unit id="Delete method" xml:space="preserve">
<source>Delete method</source>
- <target state-qualifier="leveraged-tm">Supprimer la méthode</target>
+ <target state="translated">Supprimer la méthode</target>
<note/>
</trans-unit>
<trans-unit id="Deleting account..." xml:space="preserve">
@@ -569,12 +522,12 @@
</trans-unit>
<trans-unit id="Device is inactive" xml:space="preserve">
<source>Device is inactive</source>
- <target state-qualifier="leveraged-tm">L'appareil est inactif</target>
+ <target state="translated">L'appareil est inactif</target>
<note/>
</trans-unit>
<trans-unit id="Device name" xml:space="preserve">
<source>Device name</source>
- <target state-qualifier="leveraged-tm">Nom de l'appareil</target>
+ <target state="translated">Nom de l'appareil</target>
<note/>
</trans-unit>
<trans-unit id="Device name: %@" xml:space="preserve">
@@ -582,19 +535,14 @@
<target state="needs-translation">Device name: %@</target>
<note/>
</trans-unit>
- <trans-unit id="Direct" xml:space="preserve">
- <source>Direct</source>
- <target state="needs-translation">Direct</target>
- <note/>
- </trans-unit>
<trans-unit id="Direct only" xml:space="preserve">
<source>Direct only</source>
- <target state-qualifier="leveraged-tm">Directe uniquement</target>
+ <target state="translated">Directe uniquement</target>
<note/>
</trans-unit>
<trans-unit id="Disable all &quot;%@&quot; above to activate this setting." xml:space="preserve">
<source>Disable all "%@" above to activate this setting.</source>
- <target state-qualifier="leveraged-tm">Désactivez tous les « %@ » ci-dessus pour activer ce paramètre.</target>
+ <target state="translated">Désactivez tous les « %@ » ci-dessus pour activer ce paramètre.</target>
<note/>
</trans-unit>
<trans-unit id="Disabled" xml:space="preserve">
@@ -609,27 +557,22 @@
</trans-unit>
<trans-unit id="Discard changes" xml:space="preserve">
<source>Discard changes</source>
- <target state-qualifier="leveraged-tm">Annuler les modifications </target>
+ <target state="translated">Annuler les modifications </target>
<note/>
</trans-unit>
<trans-unit id="Disconnect" xml:space="preserve">
<source>Disconnect</source>
- <target state-qualifier="leveraged-tm">Déconnexion</target>
+ <target state="translated">Déconnexion</target>
<note/>
</trans-unit>
<trans-unit id="Disconnected" xml:space="preserve">
<source>Disconnected</source>
- <target state-qualifier="leveraged-tm">Déconnecté</target>
- <note/>
- </trans-unit>
- <trans-unit id="Disconnecting" xml:space="preserve">
- <source>Disconnecting</source>
- <target state-qualifier="leveraged-tm">Déconnexion en cours</target>
+ <target state="translated">Déconnecté</target>
<note/>
</trans-unit>
<trans-unit id="Disconnecting..." xml:space="preserve">
<source>Disconnecting...</source>
- <target state-qualifier="leveraged-tm">Déconnexion en cours...</target>
+ <target state="translated">Déconnexion en cours...</target>
<note/>
</trans-unit>
<trans-unit id="Do you agree to remaining anonymous?" xml:space="preserve">
@@ -639,7 +582,7 @@
</trans-unit>
<trans-unit id="Do you want to create a new account?" xml:space="preserve">
<source>Do you want to create a new account?</source>
- <target state="needs-translation">Do you want to create a new account?</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Voulez-vous créer un nouveau compte ?</target>
<note/>
</trans-unit>
<trans-unit id="Do you want to delete the list **%@**?" xml:space="preserve">
@@ -654,7 +597,7 @@
</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-tm">Vous n'avez pas de numéro de compte ?</target>
+ <target state="translated">Vous n'avez pas de numéro de compte ?</target>
<note/>
</trans-unit>
<trans-unit id="Edit custom list" xml:space="preserve">
@@ -664,17 +607,17 @@
</trans-unit>
<trans-unit id="Edit lists" xml:space="preserve">
<source>Edit lists</source>
- <target state-qualifier="leveraged-tm">Modifier les listes</target>
+ <target state="translated">Modifier les listes</target>
<note/>
</trans-unit>
<trans-unit id="Edit locations" xml:space="preserve">
<source>Edit locations</source>
- <target state-qualifier="leveraged-tm">Modifier les localisations</target>
+ <target state="translated">Modifier les localisations</target>
<note/>
</trans-unit>
<trans-unit id="Edit message" xml:space="preserve">
<source>Edit message</source>
- <target state-qualifier="leveraged-tm">Modifier le message</target>
+ <target state="translated">Modifier le message</target>
<note/>
</trans-unit>
<trans-unit id="Either buy credit on our website or make an in-app purchase via the **Add time** button below." xml:space="preserve">
@@ -684,12 +627,12 @@
</trans-unit>
<trans-unit id="Either buy credit on our website or redeem a voucher." xml:space="preserve">
<source>Either buy credit on our website or redeem a voucher.</source>
- <target state-qualifier="leveraged-tm">Achetez du crédit sur notre site web ou échangez un bon.</target>
+ <target state="translated">Achetez du crédit sur notre site web ou échangez un bon.</target>
<note/>
</trans-unit>
<trans-unit id="Enable" xml:space="preserve">
<source>Enable</source>
- <target state-qualifier="leveraged-tm">Activer</target>
+ <target state="translated">Activer</target>
<note/>
</trans-unit>
<trans-unit id="Enable &quot;%@&quot;" xml:space="preserve">
@@ -699,7 +642,7 @@
</trans-unit>
<trans-unit id="Enable method" xml:space="preserve">
<source>Enable method</source>
- <target state-qualifier="leveraged-tm">Activer la méthode</target>
+ <target state="translated">Activer la méthode</target>
<note/>
</trans-unit>
<trans-unit id="Enabling" xml:space="preserve">
@@ -707,34 +650,29 @@
<target state="needs-translation">Enabling</target>
<note/>
</trans-unit>
- <trans-unit id="Encrypted DNS proxy" xml:space="preserve">
- <source>Encrypted DNS proxy</source>
- <target state="needs-translation">Encrypted DNS proxy</target>
- <note/>
- </trans-unit>
<trans-unit id="Enter IP" xml:space="preserve">
<source>Enter IP</source>
- <target state-qualifier="leveraged-tm">Saisir l'IP</target>
+ <target state="translated">Saisir l'IP</target>
<note/>
</trans-unit>
<trans-unit id="Enter voucher code" xml:space="preserve">
<source>Enter voucher code</source>
- <target state-qualifier="leveraged-tm">Saisissez un code de bon</target>
+ <target state="translated">Saisissez un code de bon</target>
<note/>
</trans-unit>
<trans-unit id="Enter your account number" xml:space="preserve">
<source>Enter your account number</source>
- <target state-qualifier="leveraged-tm">Saisissez votre numéro de compte</target>
+ <target state="translated">Saisissez votre numéro de compte</target>
<note/>
</trans-unit>
<trans-unit id="Entry" xml:space="preserve">
<source>Entry</source>
- <target state-qualifier="leveraged-tm">Entrée</target>
+ <target state="translated">Entrée</target>
<note/>
</trans-unit>
<trans-unit id="Exit" xml:space="preserve">
<source>Exit</source>
- <target state-qualifier="leveraged-tm">Sortie</target>
+ <target state="translated">Sortie</target>
<note/>
</trans-unit>
<trans-unit id="Expand %@" xml:space="preserve">
@@ -752,14 +690,14 @@
<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="needs-translation">Failed to connect to App store, please try again later.</target>
+ <trans-unit id="Failed to load products, please try again" xml:space="preserve">
+ <source>Failed to load products, please try again</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Échec du chargement des produits. Veuillez réessayer</target>
<note/>
</trans-unit>
<trans-unit id="Failed to send" xml:space="preserve">
<source>Failed to send</source>
- <target state-qualifier="leveraged-tm">Échec de l'envoi</target>
+ <target state="translated">Échec de l'envoi</target>
<note/>
</trans-unit>
<trans-unit id="Failed to send the receipt to server: %@" xml:space="preserve">
@@ -799,67 +737,62 @@
</trans-unit>
<trans-unit id="Filter" xml:space="preserve">
<source>Filter</source>
- <target state-qualifier="leveraged-tm">Filtrer</target>
+ <target state="translated">Filtrer</target>
<note/>
</trans-unit>
<trans-unit id="Filtered:" xml:space="preserve">
<source>Filtered:</source>
- <target state-qualifier="leveraged-tm">Filtré :</target>
+ <target state="translated">Filtré :</target>
<note/>
</trans-unit>
<trans-unit id="Gambling" xml:space="preserve">
<source>Gambling</source>
- <target state-qualifier="leveraged-tm">Jeux d'argent</target>
+ <target state="translated">Jeux d'argent</target>
<note/>
</trans-unit>
<trans-unit id="Go ahead and start using the app to begin reclaiming your online privacy." xml:space="preserve">
<source>Go ahead and start using the app to begin reclaiming your online privacy.</source>
- <target state-qualifier="leveraged-tm">Commencez à utiliser l'application pour reprendre votre confidentialité en ligne en main.</target>
+ <target state="translated">Commencez à utiliser l'application pour reprendre votre confidentialité en ligne en main.</target>
<note/>
</trans-unit>
<trans-unit id="Go to login" xml:space="preserve">
<source>Go to login</source>
- <target state-qualifier="leveraged-tm">Aller à la connexion</target>
+ <target state="translated">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-tm">Aller à la connexion débloquera la connexion Internet sur cet appareil.</target>
+ <target state="translated">Aller à la connexion débloquera la connexion Internet sur cet appareil.</target>
<note/>
</trans-unit>
<trans-unit id="Got it!" xml:space="preserve">
<source>Got it!</source>
- <target state-qualifier="leveraged-tm">Compris !</target>
+ <target state="translated">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-tm">Voici votre numéro de compte. Gardez-le !</target>
+ <target state="translated">Voici votre numéro de compte. Gardez-le !</target>
<note/>
</trans-unit>
<trans-unit id="Hide account number" xml:space="preserve">
<source>Hide account number</source>
- <target state-qualifier="leveraged-tm">Masquer le numéro de compte</target>
+ <target state="translated">Masquer le numéro de compte</target>
<note/>
</trans-unit>
<trans-unit id="If an observer monitors these data packets, %@ makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating." xml:space="preserve">
<source>If an observer monitors these data packets, %@ makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.</source>
- <target state-qualifier="leveraged-tm">Si un observateur surveille ces paquets de données, %@ rend beaucoup plus difficile l'identification des sites web que vous visitez ou des personnes avec lesquelles vous communiquez.</target>
+ <target state="translated">Si un observateur surveille ces paquets de données, %@ rend beaucoup plus difficile l'identification des sites web que vous visitez ou des personnes avec lesquelles vous communiquez.</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-tm">Si nécessaire, nous vous contacterons à l'adresse %@</target>
- <note/>
- </trans-unit>
- <trans-unit id="If so, click log out below to log in with the other account number." xml:space="preserve">
- <source>If so, click log out below to log in with the other account number.</source>
- <target state="needs-translation">If so, click log out below to log in with the other account number.</target>
+ <target state="translated">Si nécessaire, nous vous contacterons à l'adresse %@</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-tm">Si vous rencontrez des problèmes de connexion aux serveurs VPN, veuillez contacter l'assistance.</target>
+ <target state="translated">Si vous rencontrez des problèmes de connexion aux serveurs VPN, veuillez contacter l'assistance.</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. The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare." xml:space="preserve">
@@ -874,7 +807,7 @@
</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-tm">Si vous quittez le formulaire et réessayez plus tard, les informations que vous avez déjà saisies seront toujours là.</target>
+ <target state="translated">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">
@@ -884,7 +817,7 @@
</trans-unit>
<trans-unit id="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>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-tm">Si vous vous déconnectez, l'appareil et son nom sont supprimés. Lorsque vous vous reconnectez, l'appareil reçoit un nouveau nom.</target>
+ <target state="translated">Si vous vous déconnectez, l'appareil et son nom sont supprimés. Lorsque vous vous reconnectez, l'appareil reçoit un nouveau nom.</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">
@@ -894,17 +827,17 @@
</trans-unit>
<trans-unit id="Import" xml:space="preserve">
<source>Import</source>
- <target state-qualifier="leveraged-tm">Importer</target>
+ <target state="translated">Importer</target>
<note/>
</trans-unit>
<trans-unit id="Import file" xml:space="preserve">
<source>Import file</source>
- <target state-qualifier="leveraged-tm">Importer un fichier</target>
+ <target state="translated">Importer un fichier</target>
<note/>
</trans-unit>
<trans-unit id="Import files or text with new IP addresses for the servers in the Select location view." xml:space="preserve">
<source>Import files or text with new IP addresses for the servers in the Select location view.</source>
- <target state-qualifier="leveraged-tm">Importez des fichiers ou du texte contenant les nouvelles adresses IP des serveurs dans la vue Sélectionner un emplacement.</target>
+ <target state="translated">Importez des fichiers ou du texte contenant les nouvelles adresses IP des serveurs dans la vue Sélectionner un emplacement.</target>
<note/>
</trans-unit>
<trans-unit id="Import of %@ was successful, overrides are now active." xml:space="preserve">
@@ -924,17 +857,17 @@
</trans-unit>
<trans-unit id="Import via text" xml:space="preserve">
<source>Import via text</source>
- <target state-qualifier="leveraged-tm">Importer par texte</target>
+ <target state="translated">Importer par texte</target>
<note/>
</trans-unit>
<trans-unit id="In" xml:space="preserve">
<source>In</source>
- <target state-qualifier="leveraged-tm">Entrante</target>
+ <target state="translated">Entrante</target>
<note/>
</trans-unit>
<trans-unit id="In use" xml:space="preserve">
<source>In use</source>
- <target state-qualifier="leveraged-tm">En cours d'utilisation</target>
+ <target state="translated">En cours d'utilisation</target>
<note/>
</trans-unit>
<trans-unit id="Include all networks" xml:space="preserve">
@@ -952,9 +885,9 @@
<target state="needs-translation">Internal error.</target>
<note/>
</trans-unit>
- <trans-unit id="Invalid account" xml:space="preserve">
- <source>Invalid account</source>
- <target state="needs-translation">Invalid account</target>
+ <trans-unit id="Invalid account number" xml:space="preserve">
+ <source>Invalid account number</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Numéro de compte non valide</target>
<note/>
</trans-unit>
<trans-unit id="Invalid device state." xml:space="preserve">
@@ -969,17 +902,17 @@
</trans-unit>
<trans-unit id="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." xml:space="preserve">
<source>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-tm">Pour ce faire, il effectue un échange de clés supplémentaire à l'aide d'un algorithme à sécurité quantique et mélange le résultat au chiffrement habituel de WireGuard. Cette étape supplémentaire utilise environ 500 kiB de trafic chaque fois qu'un nouveau tunnel est établi.</target>
+ <target state="translated">Pour ce faire, il effectue un échange de clés supplémentaire à l'aide d'un algorithme à sécurité quantique et mélange le résultat au chiffrement habituel de WireGuard. Cette étape supplémentaire utilise environ 500 kiB de trafic chaque fois qu'un nouveau tunnel est établi.</target>
<note/>
</trans-unit>
<trans-unit id="It looks like you’ve entered an account number instead of a voucher code. If you would like to change the active account, please log out first." xml:space="preserve">
<source>It looks like you’ve entered an account number instead of a voucher code. If you would like to change the active account, please log out first.</source>
- <target state-qualifier="leveraged-tm">Vous semblez avoir saisi un numéro de compte plutôt qu'un code de bon. Si vous souhaitez modifier le compte actif, veuillez d'abord vous déconnecter.</target>
+ <target state="translated">Vous semblez avoir saisi un numéro de compte plutôt qu'un code de bon. Si vous souhaitez modifier le compte actif, veuillez d'abord vous déconnecter.</target>
<note/>
</trans-unit>
<trans-unit id="Language" xml:space="preserve">
<source>Language</source>
- <target state-qualifier="leveraged-tm">Langue</target>
+ <target state="translated">Langue</target>
<note/>
</trans-unit>
<trans-unit id="Last four digits of the account number are incorrect" xml:space="preserve">
@@ -994,7 +927,7 @@
</trans-unit>
<trans-unit id="Learn about privacy" xml:space="preserve">
<source>Learn about privacy</source>
- <target state-qualifier="leveraged-tm">Plus d'informations sur la confidentialité</target>
+ <target state="translated">Plus d'informations sur la confidentialité</target>
<note/>
</trans-unit>
<trans-unit id="Less than a day" xml:space="preserve">
@@ -1004,7 +937,7 @@
</trans-unit>
<trans-unit id="Local network sharing" xml:space="preserve">
<source>Local network sharing</source>
- <target state-qualifier="leveraged-tm">Partage réseau local</target>
+ <target state="translated">Partage réseau local</target>
<note/>
</trans-unit>
<trans-unit id="Log in" xml:space="preserve">
@@ -1014,17 +947,17 @@
</trans-unit>
<trans-unit id="Log out" xml:space="preserve">
<source>Log out</source>
- <target state-qualifier="leveraged-tm">Déconnexion</target>
+ <target state="translated">Déconnexion</target>
<note/>
</trans-unit>
<trans-unit id="Logged in" xml:space="preserve">
<source>Logged in</source>
- <target state-qualifier="leveraged-tm">Connecté</target>
+ <target state="translated">Connecté</target>
<note/>
</trans-unit>
<trans-unit id="Logging in..." xml:space="preserve">
<source>Logging in...</source>
- <target state-qualifier="leveraged-tm">Connexion...</target>
+ <target state="translated">Connexion...</target>
<note/>
</trans-unit>
<trans-unit id="Logging out..." xml:space="preserve">
@@ -1034,12 +967,12 @@
</trans-unit>
<trans-unit id="Login" xml:space="preserve">
<source>Login</source>
- <target state-qualifier="leveraged-tm">Connexion</target>
+ <target state="translated">Connexion</target>
<note/>
</trans-unit>
<trans-unit id="Login failed" xml:space="preserve">
<source>Login failed</source>
- <target state-qualifier="leveraged-tm">Échec de la connexion</target>
+ <target state="translated">Échec de la connexion</target>
<note/>
</trans-unit>
<trans-unit id="Make a purchase with StoreKit2" xml:space="preserve">
@@ -1052,19 +985,14 @@
<target state="needs-translation">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="needs-translation">Manage default and setup custom methods to access the Mullvad 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="needs-translation">Manage default and setup custom methods to access the Mullvad API. </target>
+ <trans-unit id="Manage and add custom methods to access the Mullvad API." xml:space="preserve">
+ <source>Manage and add custom methods to access the Mullvad API.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Gérez et ajoutez des modes d'accès personnalisés à l'API Mullvad.</target>
<note/>
</trans-unit>
<trans-unit id="Manage devices" xml:space="preserve">
<source>Manage devices</source>
- <target state-qualifier="leveraged-tm">Gérer les appareils</target>
+ <target state="translated">Gérer les appareils</target>
<note/>
</trans-unit>
<trans-unit id="Method settings" xml:space="preserve">
@@ -1072,11 +1000,6 @@
<target state="needs-translation">Method settings</target>
<note/>
</trans-unit>
- <trans-unit id="Mullvad bridges" xml:space="preserve">
- <source>Mullvad bridges</source>
- <target state="needs-translation">Mullvad bridges</target>
- <note/>
- </trans-unit>
<trans-unit id="Multihop" xml:space="preserve">
<source>Multihop</source>
<target state="needs-translation">Multihop</target>
@@ -1089,7 +1012,7 @@
</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-tm">Le multihop fait passer votre trafic par un serveur WireGuard et le fait sortir par un autre, ce qui le rend plus difficile à tracer. Cela se traduit par une latence accrue, mais plus d'anonymat en ligne.</target>
+ <target state="translated">Le multihop fait passer votre trafic par un serveur WireGuard et le fait sortir par un autre, ce qui le rend plus difficile à tracer. Cela se traduit par une latence accrue, mais plus d'anonymat en ligne.</target>
<note/>
</trans-unit>
<trans-unit id="Multiple validation errors occurred." xml:space="preserve">
@@ -1104,17 +1027,22 @@
</trans-unit>
<trans-unit id="NEW DEVICE CREATED" xml:space="preserve">
<source>NEW DEVICE CREATED</source>
- <target state-qualifier="leveraged-tm">NOUVEL APPAREIL CRÉÉ</target>
+ <target state="translated">NOUVEL APPAREIL CRÉÉ</target>
<note/>
</trans-unit>
<trans-unit id="NEW VERSION INSTALLED" xml:space="preserve">
<source>NEW VERSION INSTALLED</source>
- <target state-qualifier="leveraged-tm">NOUVELLE VERSION INSTALLÉE</target>
+ <target state="translated">NOUVELLE VERSION INSTALLÉE</target>
<note/>
</trans-unit>
<trans-unit id="Name" xml:space="preserve">
<source>Name</source>
- <target state-qualifier="leveraged-tm">Nom</target>
+ <target state="translated">Nom</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name is already taken." xml:space="preserve">
+ <source>Name is already taken.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Le nom est déjà pris.</target>
<note/>
</trans-unit>
<trans-unit id="Name should be no longer than %i characters." xml:space="preserve">
@@ -1134,7 +1062,7 @@
</trans-unit>
<trans-unit id="Next" xml:space="preserve">
<source>Next</source>
- <target state-qualifier="leveraged-tm">Suivant</target>
+ <target state="translated">Suivant</target>
<note/>
</trans-unit>
<trans-unit id="No DAITA compatible servers match your location settings. Try changing location." xml:space="preserve">
@@ -1174,27 +1102,27 @@
</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-tm">Aucun serveur ne correspond à vos paramètres, essayez de modifier les paramètres du serveur ou d'autres paramètres.</target>
+ <target state="translated">Aucun serveur ne correspond à vos paramètres, essayez de modifier les paramètres du serveur ou d'autres paramètres.</target>
<note/>
</trans-unit>
<trans-unit id="Not all our servers are %@-enabled. Therefore, we use multihop automatically to enable %@ with any server." xml:space="preserve">
<source>Not all our servers are %1$@-enabled. Therefore, we use multihop automatically to enable %2$@ with any server.</source>
- <target state-qualifier="leveraged-tm">Tous nos serveurs ne sont pas compatibles %1$@. C'est pourquoi nous utilisons automatiquement le multihop pour activer %2$@ avec n'importe quel serveur.</target>
+ <target state="translated">Tous nos serveurs ne sont pas compatibles %1$@. C'est pourquoi nous utilisons automatiquement le multihop pour activer %2$@ avec n'importe quel serveur.</target>
<note/>
</trans-unit>
<trans-unit id="OUT OF TIME" xml:space="preserve">
<source>OUT OF TIME</source>
- <target state-qualifier="leveraged-tm">PLUS DE TEMPS</target>
+ <target state="translated">PLUS DE TEMPS</target>
<note/>
</trans-unit>
<trans-unit id="Obfuscation" xml:space="preserve">
<source>Obfuscation</source>
- <target state-qualifier="leveraged-tm">Dissimulation</target>
+ <target state="translated">Dissimulation</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-tm">La dissimulation cache le trafic WireGuard à l'intérieur d'un autre protocole. Elle peut être utilisée pour aider à contourner la censure et d'autres types de filtrage, où une connexion WireGuard simple serait bloquée.</target>
+ <target state="translated">La dissimulation cache le trafic WireGuard à l'intérieur d'un autre protocole. Elle peut être utilisée pour aider à contourner la censure et d'autres types de filtrage, où une connexion WireGuard simple serait bloquée.</target>
<note/>
</trans-unit>
<trans-unit id="Obscured" xml:space="preserve">
@@ -1204,22 +1132,22 @@
</trans-unit>
<trans-unit id="Off" xml:space="preserve">
<source>Off</source>
- <target state-qualifier="leveraged-tm">Désactivé</target>
+ <target state="translated">Désactivé</target>
<note/>
</trans-unit>
<trans-unit id="On" xml:space="preserve">
<source>On</source>
- <target state-qualifier="leveraged-tm">Activé</target>
+ <target state="translated">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-tm">Sur certains réseaux, où divers types de censure sont utilisés, les adresses IP de notre serveur sont parfois bloquées.</target>
+ <target state="translated">Sur certains réseaux, où divers 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-tm">Sur certains réseaux, où divers types de censure sont utilisés, les serveurs API peuvent ne pas être directement accessibles.</target>
+ <target state="translated">Sur certains réseaux, où divers types de censure sont utilisés, les serveurs API peuvent ne pas être directement accessibles.</target>
<note/>
</trans-unit>
<trans-unit id="Open %@ settings" xml:space="preserve">
@@ -1229,7 +1157,7 @@
</trans-unit>
<trans-unit id="Optional" xml:space="preserve">
<source>Optional</source>
- <target state-qualifier="leveraged-tm">Facultatif</target>
+ <target state="translated">Facultatif</target>
<note/>
</trans-unit>
<trans-unit id="Out IPv4" xml:space="preserve">
@@ -1244,32 +1172,32 @@
</trans-unit>
<trans-unit id="Out of time" xml:space="preserve">
<source>Out of time</source>
- <target state-qualifier="leveraged-tm">Plus de temps</target>
+ <target state="translated">Plus de temps</target>
<note/>
</trans-unit>
<trans-unit id="Overrides active" xml:space="preserve">
<source>Overrides active</source>
- <target state-qualifier="leveraged-tm">Substitutions actives</target>
+ <target state="translated">Substitutions actives</target>
<note/>
</trans-unit>
<trans-unit id="Owned" xml:space="preserve">
<source>Owned</source>
- <target state-qualifier="leveraged-tm">Possédé</target>
+ <target state="translated">Possédé</target>
<note/>
</trans-unit>
<trans-unit id="Ownership" xml:space="preserve">
<source>Ownership</source>
- <target state-qualifier="leveraged-tm">Propriété</target>
+ <target state="translated">Propriété</target>
<note/>
</trans-unit>
<trans-unit id="Paid until" xml:space="preserve">
<source>Paid until</source>
- <target state-qualifier="leveraged-tm">Payé jusqu'au</target>
+ <target state="translated">Payé jusqu'au</target>
<note/>
</trans-unit>
<trans-unit id="Password" xml:space="preserve">
<source>Password</source>
- <target state-qualifier="leveraged-tm">Mot de passe</target>
+ <target state="translated">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">
@@ -1279,7 +1207,7 @@
</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-tm">Merci de saisir une adresse IPv4 ou IPv6 valide.</target>
+ <target state="translated">Merci de saisir une adresse IPv4 ou IPv6 valide.</target>
<note/>
</trans-unit>
<trans-unit id="Please enter a valid port." xml:space="preserve">
@@ -1289,7 +1217,7 @@
</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-qualifier="leveraged-tm">Merci de vous déconnecter d'au moins un appareil en le supprimant de la liste ci-dessous. Vous trouverez le nom de l'appareil correspondant dans les paramètres du compte de l'appareil.</target>
+ <target state="translated">Merci de vous déconnecter d'au moins un appareil en le supprimant de la liste ci-dessous. Vous trouverez le nom de l'appareil correspondant dans les paramètres du compte de l'appareil.</target>
<note/>
</trans-unit>
<trans-unit id="Please retry by using the &quot;Restore purchases&quot; button." xml:space="preserve">
@@ -1314,7 +1242,7 @@
</trans-unit>
<trans-unit id="Providers" xml:space="preserve">
<source>Providers</source>
- <target state-qualifier="leveraged-tm">Fournisseurs</target>
+ <target state="translated">Fournisseurs</target>
<note/>
</trans-unit>
<trans-unit id="Providers: %d" xml:space="preserve">
@@ -1329,27 +1257,17 @@
</trans-unit>
<trans-unit id="Quantum resistance" xml:space="preserve">
<source>Quantum resistance</source>
- <target state-qualifier="leveraged-tm">Résistance quantique</target>
- <note/>
- </trans-unit>
- <trans-unit id="Quantum secure connection" xml:space="preserve">
- <source>Quantum secure connection</source>
- <target state="needs-translation">Quantum secure connection</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="needs-translation">Quantum secure connection. Connected to %1$@, %2$@</target>
+ <target state="translated">Résistance quantique</target>
<note/>
</trans-unit>
<trans-unit id="Quantum-resistant tunnel" xml:space="preserve">
<source>Quantum-resistant tunnel</source>
- <target state-qualifier="leveraged-tm">Tunnel résistant aux attaques quantiques</target>
+ <target state="translated">Tunnel résistant aux attaques quantiques</target>
<note/>
</trans-unit>
<trans-unit id="Reconnecting" xml:space="preserve">
<source>Reconnecting</source>
- <target state-qualifier="leveraged-tm">Reconnexion</target>
+ <target state="translated">Reconnexion</target>
<note/>
</trans-unit>
<trans-unit id="Reconnecting to %@, %@" xml:space="preserve">
@@ -1359,12 +1277,12 @@
</trans-unit>
<trans-unit id="Redeem" xml:space="preserve">
<source>Redeem</source>
- <target state-qualifier="leveraged-tm">Échanger</target>
+ <target state="translated">Échanger</target>
<note/>
</trans-unit>
<trans-unit id="Redeem voucher" xml:space="preserve">
<source>Redeem voucher</source>
- <target state-qualifier="leveraged-tm">Échangez un bon</target>
+ <target state="translated">Échangez un bon</target>
<note/>
</trans-unit>
<trans-unit id="Refund last purchase with StoreKit2" xml:space="preserve">
@@ -1379,12 +1297,12 @@
</trans-unit>
<trans-unit id="Remove" xml:space="preserve">
<source>Remove</source>
- <target state-qualifier="leveraged-tm">Supprimer</target>
+ <target state="translated">Supprimer</target>
<note/>
</trans-unit>
<trans-unit id="Remove %@?" xml:space="preserve">
<source>Remove %@?</source>
- <target state-qualifier="leveraged-tm">Supprimer %@ ?</target>
+ <target state="translated">Supprimer %@ ?</target>
<note/>
</trans-unit>
<trans-unit id="Remove last used account" xml:space="preserve">
@@ -1401,17 +1319,17 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Rented" xml:space="preserve">
<source>Rented</source>
- <target state-qualifier="leveraged-tm">Loué</target>
+ <target state="translated">Loué</target>
<note/>
</trans-unit>
<trans-unit id="Report a problem" xml:space="preserve">
<source>Report a problem</source>
- <target state-qualifier="leveraged-tm">Signaler un problème</target>
+ <target state="translated">Signaler un problème</target>
<note/>
</trans-unit>
<trans-unit id="Required" xml:space="preserve">
<source>Required</source>
- <target state-qualifier="leveraged-tm">Requis</target>
+ <target state="translated">Requis</target>
<note/>
</trans-unit>
<trans-unit id="Restore purchases" xml:space="preserve">
@@ -1421,12 +1339,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
- <target state-qualifier="leveraged-tm">Enregistrer</target>
- <note/>
- </trans-unit>
- <trans-unit id="Save anyway" xml:space="preserve">
- <source>Save anyway</source>
- <target state="needs-translation">Save anyway</target>
+ <target state="translated">Enregistrer</target>
<note/>
</trans-unit>
<trans-unit id="Saving changes..." xml:space="preserve">
@@ -1436,17 +1349,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Search for..." xml:space="preserve">
<source>Search for...</source>
- <target state-qualifier="leveraged-tm">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="needs-translation">Secure connection. Connected to %1$@, %2$@</target>
+ <target state="translated">Rechercher...</target>
<note/>
</trans-unit>
<trans-unit id="Select location" xml:space="preserve">
<source>Select location</source>
- <target state-qualifier="leveraged-tm">Sélectionner une localisation</target>
+ <target state="translated">Sélectionner une localisation</target>
<note/>
</trans-unit>
<trans-unit id="Selected" xml:space="preserve">
@@ -1456,42 +1364,37 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Send" xml:space="preserve">
<source>Send</source>
- <target state-qualifier="leveraged-tm">Envoyer</target>
+ <target state="translated">Envoyer</target>
<note/>
</trans-unit>
<trans-unit id="Send anyway" xml:space="preserve">
<source>Send anyway</source>
- <target state-qualifier="leveraged-tm">Envoyer quand même</target>
+ <target state="translated">Envoyer quand même</target>
<note/>
</trans-unit>
<trans-unit id="Sending..." xml:space="preserve">
<source>Sending...</source>
- <target state-qualifier="leveraged-tm">Envoi...</target>
+ <target state="translated">Envoi...</target>
<note/>
</trans-unit>
<trans-unit id="Sent" xml:space="preserve">
<source>Sent</source>
- <target state-qualifier="leveraged-tm">Envoyé</target>
+ <target state="translated">Envoyé</target>
<note/>
</trans-unit>
<trans-unit id="Server" xml:space="preserve">
<source>Server</source>
- <target state-qualifier="leveraged-tm">Serveur</target>
- <note/>
- </trans-unit>
- <trans-unit id="Server IP Override" xml:space="preserve">
- <source>Server IP Override</source>
- <target state="needs-translation">Server IP Override</target>
+ <target state="translated">Serveur</target>
<note/>
</trans-unit>
<trans-unit id="Server IP override" xml:space="preserve">
<source>Server IP override</source>
- <target state-qualifier="leveraged-tm">Substitution d'IP de serveur</target>
+ <target state="translated">Substitution d'IP de serveur</target>
<note/>
</trans-unit>
<trans-unit id="Server details" xml:space="preserve">
<source>Server details</source>
- <target state-qualifier="leveraged-tm">Détails du serveur</target>
+ <target state="translated">Détails du serveur</target>
<note/>
</trans-unit>
<trans-unit id="Setting: %@" xml:space="preserve">
@@ -1501,7 +1404,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Settings" xml:space="preserve">
<source>Settings</source>
- <target state-qualifier="leveraged-tm">Paramètres</target>
+ <target state="translated">Paramètres</target>
<note/>
</trans-unit>
<trans-unit id="Settings migration error" xml:space="preserve">
@@ -1516,12 +1419,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Show account number" xml:space="preserve">
<source>Show account number</source>
- <target state-qualifier="leveraged-tm">Afficher le numéro de compte</target>
+ <target state="translated">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-tm">Réseaux sociaux</target>
+ <target state="translated">Réseaux sociaux</target>
<note/>
</trans-unit>
<trans-unit id="Socks5" xml:space="preserve">
@@ -1531,17 +1434,17 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Start using the app" xml:space="preserve">
<source>Start using the app</source>
- <target state-qualifier="leveraged-tm">Commencer à utiliser l'application</target>
+ <target state="translated">Commencer à utiliser l'application</target>
<note/>
</trans-unit>
<trans-unit id="Super!" xml:space="preserve">
<source>Super!</source>
- <target state-qualifier="leveraged-tm">Super !</target>
+ <target state="translated">Super !</target>
<note/>
</trans-unit>
<trans-unit id="Switch location" xml:space="preserve">
<source>Switch location</source>
- <target state-qualifier="leveraged-tm">Changer de localisation</target>
+ <target state="translated">Changer de localisation</target>
<note/>
</trans-unit>
<trans-unit id="TCP" xml:space="preserve">
@@ -1561,12 +1464,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Test method" xml:space="preserve">
<source>Test method</source>
- <target state-qualifier="leveraged-tm">Tester la méthode</target>
+ <target state="translated">Tester la méthode</target>
<note/>
</trans-unit>
<trans-unit id="Testing..." xml:space="preserve">
<source>Testing...</source>
- <target state-qualifier="leveraged-tm">Test...</target>
+ <target state="translated">Test...</target>
<note/>
</trans-unit>
<trans-unit id="Thanks for your purchase" xml:space="preserve">
@@ -1576,7 +1479,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Thanks!" xml:space="preserve">
<source>Thanks!</source>
- <target state-qualifier="leveraged-tm">Merci !</target>
+ <target state="translated">Merci !</target>
<note/>
</trans-unit>
<trans-unit id="The app communicates with a Mullvad API server directly." xml:space="preserve">
@@ -1596,7 +1499,7 @@ Do you want to remove the saved account number?</target>
</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-tm">L'application doit communiquer avec un serveur d'API Mullvad pour vous connecter, récupérer des listes de serveurs et effectuer d'autres opérations critiques.</target>
+ <target state="translated">L'application doit communiquer avec un serveur d'API Mullvad pour vous connecter, récupérer des listes de serveurs et effectuer d'autres opérations critiques.</target>
<note/>
</trans-unit>
<trans-unit id="The app will test the method before saving." xml:space="preserve">
@@ -1606,17 +1509,17 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="The automatic setting will randomly choose from the valid port ranges shown below." xml:space="preserve">
<source>The automatic setting will randomly choose from the valid port ranges shown below.</source>
- <target state-qualifier="leveraged-tm">Le réglage automatique choisira au hasard parmi la plage de ports valide affichée ci-dessous.</target>
+ <target state="translated">Le réglage automatique choisira au hasard parmi la plage de ports valide affichée ci-dessous.</target>
<note/>
</trans-unit>
<trans-unit id="The custom port can be any value inside the valid ranges: %@." xml:space="preserve">
<source>The custom port can be any value inside the valid ranges: %@.</source>
- <target state-qualifier="leveraged-tm">Le port personnalisé peut prendre n'importe quelle valeur dans les plages valides : %@.</target>
+ <target state="translated">Le port personnalisé peut prendre n'importe quelle valeur dans les plages valides : %@.</target>
<note/>
</trans-unit>
<trans-unit id="The device will be removed from the list and logged out." xml:space="preserve">
<source>The device will be removed from the list and logged out.</source>
- <target state-qualifier="leveraged-tm">L'appareil sera supprimé de la liste et déconnecté.</target>
+ <target state="translated">L'appareil sera supprimé de la liste et déconnecté.</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">
@@ -1646,12 +1549,12 @@ Do you want to remove the saved account number?</target>
</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-tm">Cela peut être utile si l'API est censurée, mais que les serveurs de pont Mullvad ne le sont pas.</target>
+ <target state="translated">Cela peut être utile si l'API est censurée, mais que les serveurs de pont 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-tm">Cela peut être utile lorsque vous n'êtes pas concerné par la censure.</target>
+ <target state="translated">Cela peut être utile lorsque vous n'êtes pas concerné par la censure.</target>
<note/>
</trans-unit>
<trans-unit id="This device is not allowed to make the payment." xml:space="preserve">
@@ -1661,22 +1564,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc." xml:space="preserve">
<source>This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.</source>
- <target state-qualifier="leveraged-tm">Cette fonctionnalité permet d'accéder à d'autres appareils sur le réseau local, par exemple pour le partage, l'impression, le streaming, etc.</target>
+ <target state="translated">Cette fonctionnalité permet d'accéder à d'autres appareils sur le réseau local, par exemple pour le partage, l'impression, le streaming, etc.</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-tm">Cette fonctionnalité vous permet de contourner cette censure en ajoutant des moyens personnalisés d'accéder à l'API via des proxys et des méthodes similaires.</target>
+ <target state="translated">Cette fonctionnalité vous permet de contourner cette censure en ajoutant des moyens personnalisés d'accéder à l'API via des proxys 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." xml:space="preserve">
<source>This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.</source>
- <target state-qualifier="leveraged-tm">Cette fonctionnalité rend le tunnel WireGuard résistant aux attaques potentielles des ordinateurs quantiques.</target>
+ <target state="translated">Cette fonctionnalité rend le tunnel WireGuard résistant aux attaques potentielles des ordinateurs quantiques.</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." 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.</source>
- <target state-qualifier="leveraged-tm">Il s'agit du nom attribué à l'appareil. Chaque appareil connecté à un compte Mullvad reçoit un nom unique qui vous aide à l'identifier lorsque vous gérez vos appareils dans l'application ou sur le site Web.</target>
+ <target state="translated">Il s'agit du nom attribué à l'appareil. Chaque appareil connecté à un compte Mullvad reçoit un nom unique qui vous aide à l'identifier lorsque vous gérez vos appareils dans l'application ou sur le site Web.</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">
@@ -1686,7 +1589,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="This might cause issues on certain websites, services, and apps." xml:space="preserve">
<source>This might cause issues on certain websites, services, and apps.</source>
- <target state-qualifier="leveraged-tm">Cela peut causer des problèmes sur certains sites Web, services et applications.</target>
+ <target state="translated">Cela peut causer des problèmes sur certains sites Web, services et applications.</target>
<note/>
</trans-unit>
<trans-unit id="This voucher code has already been used." xml:space="preserve">
@@ -1701,22 +1604,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="To add more, you will need to disconnect and access the Internet with an unsecure connection." xml:space="preserve">
<source>To add more, you will need to disconnect and access the Internet with an unsecure connection.</source>
- <target state-qualifier="leveraged-tm">Pour en ajouter d'autres, vous devrez vous déconnecter et accéder à internet avec une connexion non sécurisée.</target>
+ <target state="translated">Pour en ajouter d'autres, vous devrez vous déconnecter et accéder à internet avec une connexion non sécurisée.</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-tm">Pour nous permettre de mieux vous assister, merci d'écrire en anglais ou en suédois et d'indiquer le pays à partir duquel vous vous connectez.</target>
+ <target state="translated">Pour nous permettre de mieux vous assister, merci d'écrire en anglais ou en suédois et d'indiquer le pays à partir duquel 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-tm">Pour contourner ce problème, vous pouvez importer un fichier ou du texte fourni par notre équipe d'assistance, avec de nouvelles adresses IP qui remplacent les adresses par défaut des serveurs dans la vue Sélectionner un emplacement.</target>
+ <target state="translated">Pour contourner ce problème, vous pouvez importer un fichier ou du texte fourni par notre équipe d'assistance, avec de nouvelles adresses IP qui remplacent les adresses par défaut des serveurs dans la vue Sélectionner un emplacement.</target>
<note/>
</trans-unit>
<trans-unit id="To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools." xml:space="preserve">
<source>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-tm">Pour continuer votre voyage de ninja de la confidentialité, visitez notre site Web pour découvrir d'autres outils et habitudes pour protéger votre vie privée.</target>
+ <target state="translated">Pour continuer votre voyage de ninja de la confidentialité, visitez notre site Web pour découvrir d'autres outils et habitudes pour protéger votre vie privée.</target>
<note/>
</trans-unit>
<trans-unit id="To create a custom list, tap on &quot;...&quot; " xml:space="preserve">
@@ -1731,22 +1634,17 @@ Do you want to remove the saved account number?</target>
</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-tm">Pour mieux vous aider, le fichier journal de l'application est joint à ce message. Vos données restent privées et en sécurité dans la mesure où elles sont rendues anonymes avant d'être envoyées via un canal chiffré.</target>
+ <target state="translated">Pour mieux vous aider, le fichier journal de l'application est joint à ce message. Vos données restent privées et en sécurité dans la mesure où elles sont rendues anonymes avant d'être envoyées via un canal chiffré.</target>
<note/>
</trans-unit>
<trans-unit id="To start using the app, you first need to add time to your account." xml:space="preserve">
<source>To start using the app, you first need to add time to your account.</source>
- <target state-qualifier="leveraged-tm">Pour commencer à utiliser l'application, vous devez d'abord ajouter du temps à votre compte.</target>
+ <target state="translated">Pour commencer à utiliser l'application, vous devez d'abord ajouter du temps à votre compte.</target>
<note/>
</trans-unit>
<trans-unit id="Too many devices" xml:space="preserve">
<source>Too many devices</source>
- <target state-qualifier="leveraged-tm">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="needs-translation">Too many devices registered with account</target>
+ <target state="translated">Trop d'appareils</target>
<note/>
</trans-unit>
<trans-unit id="Trackers" xml:space="preserve">
@@ -1756,7 +1654,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Try again" xml:space="preserve">
<source>Try again</source>
- <target state-qualifier="leveraged-tm">Réessayer</target>
+ <target state="translated">Réessayer</target>
<note/>
</trans-unit>
<trans-unit id="Tunnel is unset." xml:space="preserve">
@@ -1791,7 +1689,7 @@ Do you want to remove the saved account number?</target>
</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-tm">Impossible de démarrer la connexion au tunnel. Veuillez envoyer un rapport de problème.</target>
+ <target state="translated">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">
@@ -1806,62 +1704,57 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Unknown error." xml:space="preserve">
<source>Unknown error.</source>
- <target state-qualifier="leveraged-tm">Erreur inconnue.</target>
- <note/>
- </trans-unit>
- <trans-unit id="Unsecured connection" xml:space="preserve">
- <source>Unsecured connection</source>
- <target state="needs-translation">Unsecured connection</target>
+ <target state="translated">Erreur inconnue.</target>
<note/>
</trans-unit>
<trans-unit id="Use custom DNS server" xml:space="preserve">
<source>Use custom DNS server</source>
- <target state-qualifier="leveraged-tm">Utiliser un serveur DNS personnalisé</target>
+ <target state="translated">Utiliser un serveur DNS personnalisé</target>
<note/>
</trans-unit>
<trans-unit id="Username" xml:space="preserve">
<source>Username</source>
- <target state-qualifier="leveraged-tm">Nom d'utilisateur</target>
+ <target state="translated">Nom d'utilisateur</target>
<note/>
</trans-unit>
<trans-unit id="VPN settings" xml:space="preserve">
<source>VPN settings</source>
- <target state-qualifier="leveraged-tm">Paramètres VPN</target>
+ <target state="translated">Paramètres VPN</target>
<note/>
</trans-unit>
<trans-unit id="Valid range: %d - %d" xml:space="preserve">
<source>Valid range: %1$d - %2$d</source>
- <target state-qualifier="leveraged-tm">Plage valide : %1$d - %2$d</target>
+ <target state="translated">Plage valide : %1$d - %2$d</target>
<note/>
</trans-unit>
<trans-unit id="Verifying voucher..." xml:space="preserve">
<source>Verifying voucher...</source>
- <target state-qualifier="leveraged-tm">Vérification du bon…</target>
+ <target state="translated">Vérification du bon…</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-qualifier="leveraged-tm">Affichez et gérez tous vos appareils connectés. Vous pouvez avoir jusqu'à 5 appareils sur un même compte. Chaque appareil reçoit un nom lorsqu'il est connecté, ce qui vous permet de le distinguer facilement.</target>
+ <target state="translated">Affichez et gérez tous vos appareils connectés. Vous pouvez avoir jusqu'à 5 appareils sur un même compte. Chaque appareil reçoit un nom lorsqu'il est connecté, ce qui vous permet de le distinguer facilement.</target>
<note/>
</trans-unit>
<trans-unit id="View app logs" xml:space="preserve">
<source>View app logs</source>
- <target state-qualifier="leveraged-tm">Afficher les journaux de l'application</target>
+ <target state="translated">Afficher les journaux de l'application</target>
<note/>
</trans-unit>
<trans-unit id="Voucher code is invalid." xml:space="preserve">
<source>Voucher code is invalid.</source>
- <target state-qualifier="leveraged-tm">Le code du bon n'est pas valide.</target>
+ <target state="translated">Le code du bon n'est pas valide.</target>
<note/>
</trans-unit>
<trans-unit id="Voucher was successfully redeemed." xml:space="preserve">
<source>Voucher was successfully redeemed.</source>
- <target state-qualifier="leveraged-tm">Le bon a bien été échangé.</target>
+ <target state="translated">Le bon a bien été échangé.</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-tm">Avertissement : le bloqueur de malware n'est pas un anti-virus et ne doit pas être traité comme tel, il s'agit juste d'une couche de protection supplémentaire.</target>
+ <target state="translated">Avertissement : le bloqueur de malware n'est pas un anti-virus et ne doit pas être traité comme tel, il s'agit juste d'une couche de protection supplémentaire.</target>
<note/>
</trans-unit>
<trans-unit id="We are having some issues, please try again later" xml:space="preserve">
@@ -1871,7 +1764,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="We will look into this." xml:space="preserve">
<source>We will look into this.</source>
- <target state-qualifier="leveraged-tm">Nous allons nous pencher dessus.</target>
+ <target state="translated">Nous allons nous pencher dessus.</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">
@@ -1881,12 +1774,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="What’s new" xml:space="preserve">
<source>What’s new</source>
- <target state-qualifier="leveraged-tm">Quoi de neuf</target>
+ <target state="translated">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." 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.</source>
- <target state-qualifier="leveraged-tm">Lorsque cette fonctionnalité est activée, elle empêche l'appareil de contacter certains domaines ou sites Web connus pour distribuer des publicités, des logiciels malveillants, des trackers et plus.</target>
+ <target state="translated">Lorsque cette fonctionnalité est activée, elle empêche l'appareil de contacter certains domaines ou sites Web connus pour distribuer des publicités, des logiciels malveillants, des trackers et plus.</target>
<note/>
</trans-unit>
<trans-unit id="When using DAITA, one provider with DAITA-enabled servers is required." xml:space="preserve">
@@ -1896,32 +1789,32 @@ Do you want to remove the saved account number?</target>
</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-tm">Le port TCP auquel le protocole de dissimulation UDP sur TCP doit se connecter sur le serveur VPN.</target>
+ <target state="translated">Le port TCP auquel le protocole de dissimulation UDP sur 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-tm">Obfuscation WireGuard</target>
+ <target state="translated">Obfuscation WireGuard</target>
<note/>
</trans-unit>
<trans-unit id="WireGuard port" xml:space="preserve">
<source>WireGuard port</source>
- <target state-qualifier="leveraged-tm">Port WireGuard</target>
+ <target state="translated">Port WireGuard</target>
<note/>
</trans-unit>
<trans-unit id="With the “Direct” 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-tm">Avec le mode « Direct », l'application communique directement avec un serveur d'API Mullvad, sans passer par des proxys intermédiaires.</target>
+ <target state="translated">Avec le mode « Direct », l'application communique directement avec un serveur d'API Mullvad, sans passer par des proxys intermédiaires.</target>
<note/>
</trans-unit>
<trans-unit id="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." 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-tm">Avec la méthode « proxy DNS chiffré », l'application communiquera avec notre API Mullvad par le biais d'une adresse proxy. Pour ce faire, elle récupère une adresse auprès d'un serveur DNS over HTTPS (DoH) et l'utilise pour atteindre nos serveurs API.</target>
+ <target state="translated">Avec la méthode « proxy DNS chiffré », l'application communiquera avec notre API Mullvad par le biais d'une adresse proxy. Pour ce faire, elle récupère une adresse auprès d'un serveur DNS over HTTPS (DoH) et l'utilise pour atteindre nos serveurs API.</target>
<note/>
</trans-unit>
<trans-unit id="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." 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-tm">Dans la méthode « Ponts Mullvad », l'application communique avec un serveur d'API Mullvad via un serveur pont Mullvad. Pour ce faire, elle envoie le trafic obscurci par Shadowsocks.</target>
+ <target state="translated">Dans la méthode « Ponts Mullvad », l'application communique avec un serveur d'API Mullvad via un serveur pont Mullvad. Pour ce faire, elle envoie le trafic obscurci par Shadowsocks.</target>
<note/>
</trans-unit>
<trans-unit id="Yes, continue" xml:space="preserve">
@@ -1931,22 +1824,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Yes, log out device" xml:space="preserve">
<source>Yes, log out device</source>
- <target state-qualifier="leveraged-tm">Oui, déconnecter l'appareil</target>
+ <target state="translated">Oui, déconnecter l'appareil</target>
<note/>
</trans-unit>
<trans-unit id="You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone." xml:space="preserve">
<source>You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone.</source>
- <target state="needs-translation">You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone.</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Vous avez déjà un numéro de compte enregistré. Si vous créez un nouveau compte, le numéro de compte enregistré sera supprimé de cet appareil. Cette action est irréversible.</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-tm">Vous êtes sur le point d'envoyer un signalement de problème sans nous fournir un moyen de vous contacter. Si vous désirez une réponse à votre signalement, vous devez saisir une adresse e-mail.</target>
+ <target state="translated">Vous êtes sur le point d'envoyer un signalement de problème sans nous fournir un moyen de vous contacter. Si vous désirez une réponse à votre signalement, vous devez saisir 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-tm">Vous vous êtes connecté(e) avec un numéro de compte non valide. Veuillez vous déconnecter et en essayer un autre.</target>
+ <target state="translated">Vous vous êtes connecté(e) avec un numéro de compte non valide. Veuillez vous déconnecter et en 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">
@@ -1956,12 +1849,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="You can have up to 5 devices logged in on one Mullvad account." xml:space="preserve">
<source>You can have up to 5 devices logged in on one Mullvad account.</source>
- <target state-qualifier="leveraged-tm">Vous pouvez connecter jusqu'à 5 appareils au même compte Mullvad.</target>
+ <target state="translated">Vous pouvez connecter jusqu'à 5 appareils au même compte Mullvad.</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-qualifier="leveraged-tm">Vous pouvez maintenant continuer la connexion sur cet appareil.</target>
+ <target state="translated">Vous pouvez maintenant continuer la connexion sur cet appareil.</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">
@@ -1989,7 +1882,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="You have no more VPN time left on this account. " xml:space="preserve">
<source>You have no more VPN time left on this account. </source>
- <target state-qualifier="leveraged-tm">Vous n'avez plus de temps de VPN sur ce compte. </target>
+ <target state="translated">Vous n'avez plus de temps de VPN sur ce compte. </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">
@@ -1999,7 +1892,7 @@ We strongly believe in retaining as little data as possible because we want you
</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-tm">Vous avez supprimé cet appareil. Vous devrez vous reconnecter pour connecter cet appareil à nouveau.</target>
+ <target state="translated">Vous avez supprimé cet appareil. Vous devrez vous reconnecter pour connecter cet appareil à nouveau.</target>
<note/>
</trans-unit>
<trans-unit id="You have unsaved changes." xml:space="preserve">
@@ -2009,7 +1902,7 @@ We strongly believe in retaining as little data as possible because we want you
</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-tm">Votre appareil est hors ligne. Le tunnel se connectera automatiquement une fois votre appareil à nouveau en ligne.</target>
+ <target state="translated">Votre appareil est hors ligne. Le tunnel se connectera automatiquement une fois votre appareil à nouveau en ligne.</target>
<note/>
</trans-unit>
<trans-unit id="Your device is offline. Try connecting again when the device has access to Internet." xml:space="preserve">
@@ -2019,7 +1912,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="Your email (optional)" xml:space="preserve">
<source>Your email (optional)</source>
- <target state-qualifier="leveraged-tm">Votre e-mail (facultatif)</target>
+ <target state="translated">Votre e-mail (facultatif)</target>
<note/>
</trans-unit>
<trans-unit id="Your previous purchases have already been added to this account." xml:space="preserve">
@@ -2039,7 +1932,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="file" xml:space="preserve">
<source>file</source>
- <target state-qualifier="leveraged-tm">fichier</target>
+ <target state="translated">fichier</target>
<note/>
</trans-unit>
<trans-unit id="method" xml:space="preserve">
@@ -2054,7 +1947,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="text" xml:space="preserve">
<source>text</source>
- <target state-qualifier="leveraged-tm">texte</target>
+ <target state="translated">texte</target>
<note/>
</trans-unit>
<trans-unit id="value" xml:space="preserve">
@@ -2073,7 +1966,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2085,7 +1978,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2097,7 +1990,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2109,7 +2002,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="MullvadMockData/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2121,7 +2014,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="MullvadREST/InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2133,7 +2026,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Operations-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2145,19 +2038,19 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
- <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
- <target state="needs-translation">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
- <note>Copyright (human-readable)</note>
+ <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
+ <source>The app needs this to connect and test a new method.</source>
+ <target state="needs-translation">The app needs this to connect and test a new method.</target>
+ <note>Privacy - Local Network Usage Description</note>
</trans-unit>
</body>
</file>
- <file original="Assets/Resources/InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="Operations/Operations-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2169,7 +2062,51 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Routing-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="PacketTunnel/InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ </body>
+ </file>
+ <file original="PacketTunnel/Localizable.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">%@ a été ajouté à votre compte.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot complete the purchase" xml:space="preserve">
+ <source>Cannot complete the purchase</source>
+ <target state="needs-translation">Cannot complete the purchase</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot restore purchases" xml:space="preserve">
+ <source>Cannot restore purchases</source>
+ <target state="needs-translation">Cannot restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Restore purchases" xml:space="preserve">
+ <source>Restore purchases</source>
+ <target state="needs-translation">Restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks for your purchase" xml:space="preserve">
+ <source>Thanks for your purchase</source>
+ <target state="needs-translation">Thanks for your purchase</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="needs-translation">Your previous purchases have already been added to this account.</target>
+ <note/>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="PacketTunnelCore/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2181,15 +2118,15 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
+ <file original="Routing/Routing-InfoPlist.xcstrings" source-language="en" target-language="fr" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
- <source>The app needs this to connect and test a new method.</source>
- <target state="needs-translation">The app needs this to connect and test a new method.</target>
- <note>Privacy - Local Network Usage Description</note>
+ <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
+ <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
+ <target state="needs-translation">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
+ <note>Copyright (human-readable)</note>
</trans-unit>
</body>
</file>
diff --git a/ios/translation/locales/sv.xliff b/ios/translation/locales/sv.xliff
index 9fffbb4bac..06f4987dd7 100644
--- a/ios/translation/locales/sv.xliff
+++ b/ios/translation/locales/sv.xliff
@@ -1,12 +1,5 @@
<?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/InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
- <header>
- <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
- </header>
- <body>
- </body>
- </file>
<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.4" build-num="16F6"/>
@@ -19,7 +12,7 @@
</trans-unit>
<trans-unit id="%@ (%@) hides patterns in your encrypted VPN traffic." xml:space="preserve">
<source>%1$@ (%2$@) hides patterns in your encrypted VPN traffic.</source>
- <target state-qualifier="leveraged-tm">%1$@ (%2$@) döljer mönster i din krypterade VPN-trafik.</target>
+ <target state="translated">%1$@ (%2$@) döljer mönster i din krypterade VPN-trafik.</target>
<note/>
</trans-unit>
<trans-unit id="%@ cannot be empty." xml:space="preserve">
@@ -29,12 +22,7 @@
</trans-unit>
<trans-unit id="%@ does this by carefully adding network noise and making all network packets the same size." xml:space="preserve">
<source>%@ does this by carefully adding network noise and making all network packets the same size.</source>
- <target state-qualifier="leveraged-tm">%@ gör det genom att noggrant lägga till nätverksbrus och se till så att alla nätverkspaket har samma storlek.</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="needs-translation">%@ have been added to your account</target>
+ <target state="translated">%@ gör det genom att noggrant lägga till nätverksbrus och se till så att alla nätverkspaket har samma storlek.</target>
<note/>
</trans-unit>
<trans-unit id="%@ left on this account" xml:space="preserve">
@@ -47,9 +35,9 @@
<target state="needs-translation">%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="needs-translation">%@ were added to your account.</target>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">%@ har lagts till i ditt konto.</target>
<note/>
</trans-unit>
<trans-unit id="%@, %@" xml:space="preserve">
@@ -64,17 +52,17 @@
</trans-unit>
<trans-unit id="%d more..." xml:space="preserve">
<source>%d more...</source>
- <target state-qualifier="leveraged-tm">%d till ...</target>
+ <target state="translated">%d till ...</target>
<note/>
</trans-unit>
<trans-unit id="%lld more..." xml:space="preserve">
<source>%lld more...</source>
- <target state-qualifier="leveraged-tm">%lld till ...</target>
+ <target state="translated">%lld till ...</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.**" 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.**</source>
- <target state-qualifier="leveraged-tm">**Obs! Detta ökar nätverkstrafiken men påverkar också hastighet, fördröjning och batterianvändning negativt. Var försiktig om du har ett abonnemang med begränsad datamängd.**</target>
+ <target state="translated">**Obs! Detta ökar nätverkstrafiken men påverkar också hastighet, fördröjning och batterianvändning negativt. Var försiktig om du har ett abonnemang med begränsad datamängd.**</target>
<note/>
</trans-unit>
<trans-unit id="**Tap here** to see what’s new" xml:space="preserve">
@@ -82,29 +70,24 @@
<target state="needs-translation">**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="needs-translation">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-qualifier="leveraged-tm">API-åtkomst</target>
+ <target state="translated">API-åtkomst</target>
<note/>
</trans-unit>
<trans-unit id="API reachable" xml:space="preserve">
<source>API reachable</source>
- <target state-qualifier="leveraged-tm">API kan nås</target>
+ <target state="translated">API kan nås</target>
<note/>
</trans-unit>
<trans-unit id="API unreachable" xml:space="preserve">
<source>API unreachable</source>
- <target state-qualifier="leveraged-tm">API kan inte nås</target>
+ <target state="translated">API kan inte nås</target>
<note/>
</trans-unit>
- <trans-unit id="API unreachable, save anyway?" xml:space="preserve">
- <source>API unreachable, save anyway?</source>
- <target state-qualifier="leveraged-tm">API kan inte nås, spara ändå?</target>
+ <trans-unit id="API unreachable, save method anyway?" xml:space="preserve">
+ <source>API unreachable, save method anyway?</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">API kan inte nås, spara metod ändå?</target>
<note/>
</trans-unit>
<trans-unit id="About API access…" xml:space="preserve">
@@ -134,17 +117,17 @@
</trans-unit>
<trans-unit id="Account" xml:space="preserve">
<source>Account</source>
- <target state-qualifier="leveraged-tm">Konto</target>
+ <target state="translated">Konto</target>
<note/>
</trans-unit>
<trans-unit id="Account created" xml:space="preserve">
<source>Account created</source>
- <target state-qualifier="leveraged-tm">Kontot har skapats</target>
+ <target state="translated">Kontot har skapats</target>
<note/>
</trans-unit>
<trans-unit id="Account credit expires soon" xml:space="preserve">
<source>Account credit expires soon</source>
- <target state-qualifier="leveraged-tm">Kontokrediten slutar snart gälla</target>
+ <target state="translated">Kontokrediten slutar snart gälla</target>
<note/>
</trans-unit>
<trans-unit id="Account credit has expired" xml:space="preserve">
@@ -159,17 +142,17 @@
</trans-unit>
<trans-unit id="Account number" xml:space="preserve">
<source>Account number</source>
- <target state-qualifier="leveraged-tm">Kontonummer</target>
+ <target state="translated">Kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="Active features" xml:space="preserve">
<source>Active features</source>
- <target state-qualifier="leveraged-tm">Aktiva funktioner</target>
+ <target state="translated">Aktiva funktioner</target>
<note/>
</trans-unit>
<trans-unit id="Add" xml:space="preserve">
<source>Add</source>
- <target state-qualifier="leveraged-tm">Lägg till</target>
+ <target state="translated">Lägg till</target>
<note/>
</trans-unit>
<trans-unit id="Add 30 days" xml:space="preserve">
@@ -182,24 +165,19 @@
<target state="needs-translation">Add 90 days</target>
<note/>
</trans-unit>
- <trans-unit id="Add Time" xml:space="preserve">
- <source>Add Time</source>
- <target state="needs-translation">Add Time</target>
- <note/>
- </trans-unit>
<trans-unit id="Add a server" xml:space="preserve">
<source>Add a server</source>
- <target state-qualifier="leveraged-tm">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="needs-translation">Add access method</target>
+ <target state="translated">Lägg till en server</target>
<note/>
</trans-unit>
<trans-unit id="Add locations" xml:space="preserve">
<source>Add locations</source>
- <target state-qualifier="leveraged-tm">Lägg till platser</target>
+ <target state="translated">Lägg till platser</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Add method" xml:space="preserve">
+ <source>Add method</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Lägg till metod</target>
<note/>
</trans-unit>
<trans-unit id="Add new list" xml:space="preserve">
@@ -209,22 +187,22 @@
</trans-unit>
<trans-unit id="Add time" xml:space="preserve">
<source>Add time</source>
- <target state-qualifier="leveraged-tm">Lägg till tid</target>
+ <target state="translated">Lägg till tid</target>
<note/>
</trans-unit>
<trans-unit id="Ads" xml:space="preserve">
<source>Ads</source>
- <target state-qualifier="leveraged-tm">Annonser</target>
+ <target state="translated">Annonser</target>
<note/>
</trans-unit>
<trans-unit id="Adult content" xml:space="preserve">
<source>Adult content</source>
- <target state-qualifier="leveraged-tm">Vuxet innehåll</target>
+ <target state="translated">Vuxet innehåll</target>
<note/>
</trans-unit>
<trans-unit id="Agree and continue" xml:space="preserve">
<source>Agree and continue</source>
- <target state-qualifier="leveraged-tm">Godkänn och fortsätt</target>
+ <target state="translated">Godkänn och fortsätt</target>
<note/>
</trans-unit>
<trans-unit id="All" xml:space="preserve">
@@ -232,19 +210,19 @@
<target state="needs-translation">All</target>
<note/>
</trans-unit>
- <trans-unit id="All Providers" xml:space="preserve">
- <source>All Providers</source>
- <target state="needs-translation">All Providers</target>
- <note/>
- </trans-unit>
<trans-unit id="All locations" xml:space="preserve">
<source>All locations</source>
- <target state-qualifier="leveraged-tm">Alla platser</target>
+ <target state="translated">Alla platser</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="All providers" xml:space="preserve">
+ <source>All providers</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Alla leverantörer</target>
<note/>
</trans-unit>
<trans-unit id="Any" xml:space="preserve">
<source>Any</source>
- <target state-qualifier="leveraged-tm">Valfri</target>
+ <target state="translated">Valfri</target>
<note/>
</trans-unit>
<trans-unit id="App logs" xml:space="preserve">
@@ -264,7 +242,7 @@
</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-tm">Minst en metod måste vara aktiverad.</target>
+ <target state="translated">Minst en metod måste vara aktiverad.</target>
<note/>
</trans-unit>
<trans-unit id="Attention: this setting cannot be used in combination with **“%@“**." xml:space="preserve">
@@ -279,22 +257,17 @@
</trans-unit>
<trans-unit id="Authentication" xml:space="preserve">
<source>Authentication</source>
- <target state-qualifier="leveraged-tm">Autentisering</target>
+ <target state="translated">Autentisering</target>
<note/>
</trans-unit>
<trans-unit id="Automatic" xml:space="preserve">
<source>Automatic</source>
- <target state-qualifier="leveraged-tm">Automatisk</target>
+ <target state="translated">Automatisk</target>
<note/>
</trans-unit>
<trans-unit id="BLOCKING INTERNET" xml:space="preserve">
<source>BLOCKING INTERNET</source>
- <target state-qualifier="leveraged-tm">BLOCKERAR INTERNET</target>
- <note/>
- </trans-unit>
- <trans-unit id="Back to editing" xml:space="preserve">
- <source>Back to editing</source>
- <target state="needs-translation">Back to editing</target>
+ <target state="translated">BLOCKERAR INTERNET</target>
<note/>
</trans-unit>
<trans-unit id="Blocked connection" xml:space="preserve">
@@ -314,12 +287,12 @@
</trans-unit>
<trans-unit id="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>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-tm">Med sofistikerad AI är det möjligt att analysera trafiken för datapaket som går in och ut från din enhet (även om trafiken är krypterad).</target>
+ <target state="translated">Med sofistikerad AI är det möjligt att analysera trafiken för datapaket som går in och ut från din enhet (även om trafiken är krypterad).</target>
<note/>
</trans-unit>
<trans-unit id="Cancel" xml:space="preserve">
<source>Cancel</source>
- <target state-qualifier="leveraged-tm">Avbryt</target>
+ <target state="translated">Avbryt</target>
<note/>
</trans-unit>
<trans-unit id="Cannot complete the purchase" xml:space="preserve">
@@ -344,32 +317,32 @@
</trans-unit>
<trans-unit id="Checking account number" xml:space="preserve">
<source>Checking account number</source>
- <target state-qualifier="leveraged-tm">Kontrollerar kontonummer</target>
+ <target state="translated">Kontrollerar kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="Cipher" xml:space="preserve">
<source>Cipher</source>
- <target state-qualifier="leveraged-tm">Chiffrering</target>
+ <target state="translated">Chiffrering</target>
<note/>
</trans-unit>
<trans-unit id="Clear" xml:space="preserve">
<source>Clear</source>
- <target state-qualifier="leveraged-tm">Rensa</target>
+ <target state="translated">Rensa</target>
<note/>
</trans-unit>
<trans-unit id="Clear all overrides" xml:space="preserve">
<source>Clear all overrides</source>
- <target state-qualifier="leveraged-tm">Rensa alla åsidosättningar</target>
+ <target state="translated">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-tm">Rensa alla åsidosättningar?</target>
+ <target state="translated">Rensa alla åsidosättningar?</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-tm">Om du rensar de importerade åsidosättningarna ändras servrarnas IP:adresser tillbaka till standard i Välj platsvy.</target>
+ <target state="translated">Om du rensar de importerade åsidosättningarna ändras servrarnas IP:adresser tillbaka till standard i Välj platsvy.</target>
<note/>
</trans-unit>
<trans-unit id="Client is not allowed to issue the request." xml:space="preserve">
@@ -389,17 +362,17 @@
</trans-unit>
<trans-unit id="Congrats!" xml:space="preserve">
<source>Congrats!</source>
- <target state-qualifier="leveraged-tm">Grattis!</target>
+ <target state="translated">Grattis!</target>
<note/>
</trans-unit>
<trans-unit id="Connect" xml:space="preserve">
<source>Connect</source>
- <target state-qualifier="leveraged-tm">Anslut</target>
+ <target state="translated">Anslut</target>
<note/>
</trans-unit>
<trans-unit id="Connected" xml:space="preserve">
<source>Connected</source>
- <target state-qualifier="leveraged-tm">Ansluten</target>
+ <target state="translated">Ansluten</target>
<note/>
</trans-unit>
<trans-unit id="Connected to %@, %@" xml:space="preserve">
@@ -414,22 +387,22 @@
</trans-unit>
<trans-unit id="Connecting..." xml:space="preserve">
<source>Connecting...</source>
- <target state-qualifier="leveraged-tm">Ansluter ...</target>
+ <target state="translated">Ansluter ...</target>
<note/>
</trans-unit>
<trans-unit id="Connection details" xml:space="preserve">
<source>Connection details</source>
- <target state-qualifier="leveraged-tm">Anslutningsinformation</target>
+ <target state="translated">Anslutningsinformation</target>
<note/>
</trans-unit>
<trans-unit id="Continue with login" xml:space="preserve">
<source>Continue with login</source>
- <target state-qualifier="leveraged-tm">Fortsätt med inloggning</target>
+ <target state="translated">Fortsätt med inloggning</target>
<note/>
</trans-unit>
- <trans-unit id="Copy to pasteboard" xml:space="preserve">
- <source>Copy to pasteboard</source>
- <target state="needs-translation">Copy to pasteboard</target>
+ <trans-unit id="Copied Mullvad account number to pasteboard" xml:space="preserve">
+ <source>Copied Mullvad account number to pasteboard</source>
+ <target state="needs-translation">Copied Mullvad account number to pasteboard</target>
<note/>
</trans-unit>
<trans-unit id="Correct account number" xml:space="preserve">
@@ -439,17 +412,17 @@
</trans-unit>
<trans-unit id="Create" xml:space="preserve">
<source>Create</source>
- <target state-qualifier="leveraged-tm">Skapa</target>
+ <target state="translated">Skapa</target>
<note/>
</trans-unit>
<trans-unit id="Create account" xml:space="preserve">
<source>Create account</source>
- <target state-qualifier="leveraged-tm">Skapa konto</target>
+ <target state="translated">Skapa konto</target>
<note/>
</trans-unit>
<trans-unit id="Create new account" xml:space="preserve">
<source>Create new account</source>
- <target state="needs-translation">Create new account</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Skapa nytt konto</target>
<note/>
</trans-unit>
<trans-unit id="Created: %@" xml:space="preserve">
@@ -462,34 +435,24 @@
<target state="needs-translation">Creating new account</target>
<note/>
</trans-unit>
- <trans-unit id="Creating quantum secure connection" xml:space="preserve">
- <source>Creating quantum secure connection</source>
- <target state="needs-translation">Creating quantum secure connection</target>
- <note/>
- </trans-unit>
- <trans-unit id="Creating secure connection" xml:space="preserve">
- <source>Creating secure connection</source>
- <target state="needs-translation">Creating secure connection</target>
- <note/>
- </trans-unit>
<trans-unit id="Current device" xml:space="preserve">
<source>Current device</source>
- <target state-qualifier="leveraged-tm">Aktuell enhet</target>
+ <target state="translated">Aktuell enhet</target>
<note/>
</trans-unit>
<trans-unit id="Custom" xml:space="preserve">
<source>Custom</source>
- <target state-qualifier="leveraged-tm">Anpassad</target>
+ <target state="translated">Anpassad</target>
<note/>
</trans-unit>
<trans-unit id="Custom DNS" xml:space="preserve">
<source>Custom DNS</source>
- <target state-qualifier="leveraged-tm">Anpassad DNS</target>
+ <target state="translated">Anpassad DNS</target>
<note/>
</trans-unit>
<trans-unit id="Custom lists" xml:space="preserve">
<source>Custom lists</source>
- <target state-qualifier="leveraged-tm">Anpassade listor</target>
+ <target state="translated">Anpassade listor</target>
<note/>
</trans-unit>
<trans-unit id="DAITA" xml:space="preserve">
@@ -512,14 +475,9 @@
<target state="needs-translation">DAITA-enabled</target>
<note/>
</trans-unit>
- <trans-unit id="DAITA: Multihop" xml:space="preserve">
- <source>DAITA: Multihop</source>
- <target state="needs-translation">DAITA: Multihop</target>
- <note/>
- </trans-unit>
<trans-unit id="DNS content blockers" xml:space="preserve">
<source>DNS content blockers</source>
- <target state-qualifier="leveraged-tm">DNS-innehållsblockerare</target>
+ <target state="translated">DNS-innehållsblockerare</target>
<note/>
</trans-unit>
<trans-unit id="DNS settings" xml:space="preserve">
@@ -534,7 +492,7 @@
</trans-unit>
<trans-unit id="Delete" xml:space="preserve">
<source>Delete</source>
- <target state-qualifier="leveraged-tm">Ta bort</target>
+ <target state="translated">Ta bort</target>
<note/>
</trans-unit>
<trans-unit id="Delete %@?" xml:space="preserve">
@@ -542,11 +500,6 @@
<target state="needs-translation">Delete %@?</target>
<note/>
</trans-unit>
- <trans-unit id="Delete Account" xml:space="preserve">
- <source>Delete Account</source>
- <target state="needs-translation">Delete Account</target>
- <note/>
- </trans-unit>
<trans-unit id="Delete account" xml:space="preserve">
<source>Delete account</source>
<target state="needs-translation">Delete account</target>
@@ -554,12 +507,12 @@
</trans-unit>
<trans-unit id="Delete list" xml:space="preserve">
<source>Delete list</source>
- <target state-qualifier="leveraged-tm">Ta bort lista</target>
+ <target state="translated">Ta bort lista</target>
<note/>
</trans-unit>
<trans-unit id="Delete method" xml:space="preserve">
<source>Delete method</source>
- <target state-qualifier="leveraged-tm">Radera metod</target>
+ <target state="translated">Radera metod</target>
<note/>
</trans-unit>
<trans-unit id="Deleting account..." xml:space="preserve">
@@ -569,12 +522,12 @@
</trans-unit>
<trans-unit id="Device is inactive" xml:space="preserve">
<source>Device is inactive</source>
- <target state-qualifier="leveraged-tm">Enheten är inaktiv</target>
+ <target state="translated">Enheten är inaktiv</target>
<note/>
</trans-unit>
<trans-unit id="Device name" xml:space="preserve">
<source>Device name</source>
- <target state-qualifier="leveraged-tm">Enhetens namn</target>
+ <target state="translated">Enhetens namn</target>
<note/>
</trans-unit>
<trans-unit id="Device name: %@" xml:space="preserve">
@@ -582,19 +535,14 @@
<target state="needs-translation">Device name: %@</target>
<note/>
</trans-unit>
- <trans-unit id="Direct" xml:space="preserve">
- <source>Direct</source>
- <target state="needs-translation">Direct</target>
- <note/>
- </trans-unit>
<trans-unit id="Direct only" xml:space="preserve">
<source>Direct only</source>
- <target state-qualifier="leveraged-tm">Endast direkt</target>
+ <target state="translated">Endast direkt</target>
<note/>
</trans-unit>
<trans-unit id="Disable all &quot;%@&quot; above to activate this setting." xml:space="preserve">
<source>Disable all "%@" above to activate this setting.</source>
- <target state-qualifier="leveraged-tm">Inaktivera alla "%@" ovan för att aktivera inställningen.</target>
+ <target state="translated">Inaktivera alla "%@" ovan för att aktivera inställningen.</target>
<note/>
</trans-unit>
<trans-unit id="Disabled" xml:space="preserve">
@@ -609,27 +557,22 @@
</trans-unit>
<trans-unit id="Discard changes" xml:space="preserve">
<source>Discard changes</source>
- <target state-qualifier="leveraged-tm">Ignorera ändringarna</target>
+ <target state="translated">Ignorera ändringarna</target>
<note/>
</trans-unit>
<trans-unit id="Disconnect" xml:space="preserve">
<source>Disconnect</source>
- <target state-qualifier="leveraged-tm">Koppla från</target>
+ <target state="translated">Koppla från</target>
<note/>
</trans-unit>
<trans-unit id="Disconnected" xml:space="preserve">
<source>Disconnected</source>
- <target state-qualifier="leveraged-tm">Frånkopplad</target>
- <note/>
- </trans-unit>
- <trans-unit id="Disconnecting" xml:space="preserve">
- <source>Disconnecting</source>
- <target state-qualifier="leveraged-tm">Kopplar från</target>
+ <target state="translated">Frånkopplad</target>
<note/>
</trans-unit>
<trans-unit id="Disconnecting..." xml:space="preserve">
<source>Disconnecting...</source>
- <target state-qualifier="leveraged-tm">Kopplar från ...</target>
+ <target state="translated">Kopplar från ...</target>
<note/>
</trans-unit>
<trans-unit id="Do you agree to remaining anonymous?" xml:space="preserve">
@@ -639,7 +582,7 @@
</trans-unit>
<trans-unit id="Do you want to create a new account?" xml:space="preserve">
<source>Do you want to create a new account?</source>
- <target state="needs-translation">Do you want to create a new account?</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Vill du skapa ett nytt konto?</target>
<note/>
</trans-unit>
<trans-unit id="Do you want to delete the list **%@**?" xml:space="preserve">
@@ -654,7 +597,7 @@
</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-tm">Har du inget kontonummer?</target>
+ <target state="translated">Har du inget kontonummer?</target>
<note/>
</trans-unit>
<trans-unit id="Edit custom list" xml:space="preserve">
@@ -664,17 +607,17 @@
</trans-unit>
<trans-unit id="Edit lists" xml:space="preserve">
<source>Edit lists</source>
- <target state-qualifier="leveraged-tm">Redigera listor</target>
+ <target state="translated">Redigera listor</target>
<note/>
</trans-unit>
<trans-unit id="Edit locations" xml:space="preserve">
<source>Edit locations</source>
- <target state-qualifier="leveraged-tm">Redigera platser</target>
+ <target state="translated">Redigera platser</target>
<note/>
</trans-unit>
<trans-unit id="Edit message" xml:space="preserve">
<source>Edit message</source>
- <target state-qualifier="leveraged-tm">Redigera meddelande</target>
+ <target state="translated">Redigera meddelande</target>
<note/>
</trans-unit>
<trans-unit id="Either buy credit on our website or make an in-app purchase via the **Add time** button below." xml:space="preserve">
@@ -684,12 +627,12 @@
</trans-unit>
<trans-unit id="Either buy credit on our website or redeem a voucher." xml:space="preserve">
<source>Either buy credit on our website or redeem a voucher.</source>
- <target state-qualifier="leveraged-tm">Du kan antingen köpa kredit på vår webbplats eller lösa in en kupong.</target>
+ <target state="translated">Du kan antingen köpa kredit på vår webbplats eller lösa in en kupong.</target>
<note/>
</trans-unit>
<trans-unit id="Enable" xml:space="preserve">
<source>Enable</source>
- <target state-qualifier="leveraged-tm">Aktivera</target>
+ <target state="translated">Aktivera</target>
<note/>
</trans-unit>
<trans-unit id="Enable &quot;%@&quot;" xml:space="preserve">
@@ -699,7 +642,7 @@
</trans-unit>
<trans-unit id="Enable method" xml:space="preserve">
<source>Enable method</source>
- <target state-qualifier="leveraged-tm">Aktivera metod</target>
+ <target state="translated">Aktivera metod</target>
<note/>
</trans-unit>
<trans-unit id="Enabling" xml:space="preserve">
@@ -707,34 +650,29 @@
<target state="needs-translation">Enabling</target>
<note/>
</trans-unit>
- <trans-unit id="Encrypted DNS proxy" xml:space="preserve">
- <source>Encrypted DNS proxy</source>
- <target state="needs-translation">Encrypted DNS proxy</target>
- <note/>
- </trans-unit>
<trans-unit id="Enter IP" xml:space="preserve">
<source>Enter IP</source>
- <target state-qualifier="leveraged-tm">Ange IP</target>
+ <target state="translated">Ange IP</target>
<note/>
</trans-unit>
<trans-unit id="Enter voucher code" xml:space="preserve">
<source>Enter voucher code</source>
- <target state-qualifier="leveraged-tm">Ange kupongkod</target>
+ <target state="translated">Ange kupongkod</target>
<note/>
</trans-unit>
<trans-unit id="Enter your account number" xml:space="preserve">
<source>Enter your account number</source>
- <target state-qualifier="leveraged-tm">Ange ditt kontonummer</target>
+ <target state="translated">Ange ditt kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="Entry" xml:space="preserve">
<source>Entry</source>
- <target state-qualifier="leveraged-tm">Ingång</target>
+ <target state="translated">Ingång</target>
<note/>
</trans-unit>
<trans-unit id="Exit" xml:space="preserve">
<source>Exit</source>
- <target state-qualifier="leveraged-tm">Utgång</target>
+ <target state="translated">Utgång</target>
<note/>
</trans-unit>
<trans-unit id="Expand %@" xml:space="preserve">
@@ -752,14 +690,14 @@
<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="needs-translation">Failed to connect to App store, please try again later.</target>
+ <trans-unit id="Failed to load products, please try again" xml:space="preserve">
+ <source>Failed to load products, please try again</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Det gick inte att läsa in produkterna, försök igen</target>
<note/>
</trans-unit>
<trans-unit id="Failed to send" xml:space="preserve">
<source>Failed to send</source>
- <target state-qualifier="leveraged-tm">Det gick inte att skicka</target>
+ <target state="translated">Det gick inte att skicka</target>
<note/>
</trans-unit>
<trans-unit id="Failed to send the receipt to server: %@" xml:space="preserve">
@@ -799,67 +737,62 @@
</trans-unit>
<trans-unit id="Filter" xml:space="preserve">
<source>Filter</source>
- <target state-qualifier="leveraged-tm">Filtrera</target>
+ <target state="translated">Filtrera</target>
<note/>
</trans-unit>
<trans-unit id="Filtered:" xml:space="preserve">
<source>Filtered:</source>
- <target state-qualifier="leveraged-tm">Filtrerat:</target>
+ <target state="translated">Filtrerat:</target>
<note/>
</trans-unit>
<trans-unit id="Gambling" xml:space="preserve">
<source>Gambling</source>
- <target state-qualifier="leveraged-tm">Hasardspel</target>
+ <target state="translated">Hasardspel</target>
<note/>
</trans-unit>
<trans-unit id="Go ahead and start using the app to begin reclaiming your online privacy." xml:space="preserve">
<source>Go ahead and start using the app to begin reclaiming your online privacy.</source>
- <target state-qualifier="leveraged-tm">Sätt igång och börja använda appen för att ta tillbaka din onlinesekretess.</target>
+ <target state="translated">Sätt igång och börja använda appen för att ta tillbaka din onlinesekretess.</target>
<note/>
</trans-unit>
<trans-unit id="Go to login" xml:space="preserve">
<source>Go to login</source>
- <target state-qualifier="leveraged-tm">Gå till inloggning</target>
+ <target state="translated">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-tm">Om du loggar in avblockeras internet på den här enheten.</target>
+ <target state="translated">Om du loggar in avblockeras 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-tm">Jag förstår!</target>
+ <target state="translated">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-tm">Här är ditt kontonummer. Spara det!</target>
+ <target state="translated">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-tm">Dölj kontonummer</target>
+ <target state="translated">Dölj kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="If an observer monitors these data packets, %@ makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating." xml:space="preserve">
<source>If an observer monitors these data packets, %@ makes it significantly harder for them to identify which websites you are visiting or with whom you are communicating.</source>
- <target state-qualifier="leveraged-tm">Om dessa datapaket övervakas av en observatör, gör %@ det svårare för dem att identifiera vilka webbplatser du besöker eller vem du kommunicerar med.</target>
+ <target state="translated">Om dessa datapaket övervakas av en observatör, gör %@ det svårare för dem att identifiera vilka webbplatser du besöker eller vem du kommunicerar med.</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-tm">Om det behövs kontaktar vi dig på %@</target>
- <note/>
- </trans-unit>
- <trans-unit id="If so, click log out below to log in with the other account number." xml:space="preserve">
- <source>If so, click log out below to log in with the other account number.</source>
- <target state="needs-translation">If so, click log out below to log in with the other account number.</target>
+ <target state="translated">Om det behövs kontaktar vi 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-tm">Kontakta supporten om du har problem med att ansluta till VPN-servrar.</target>
+ <target state="translated">Kontakta supporten om du har problem med att ansluta till VPN-servrar.</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. The DoH servers are hosted by one of the following providers: Quad9 or Cloudflare." xml:space="preserve">
@@ -874,7 +807,7 @@
</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-tm">Om du lämnar formuläret och försöker igen senare kommer informationen du anger att finnas kvar.</target>
+ <target state="translated">Om du lämnar formuläret och försöker igen senare kommer informationen du anger att finnas kvar.</target>
<note/>
</trans-unit>
<trans-unit id="If you haven’t received additional VPN time after purchasing" xml:space="preserve">
@@ -884,7 +817,7 @@
</trans-unit>
<trans-unit id="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>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-tm">Om du loggar ut tas enheten och enhetsnamnet bort. När du loggar in igen får enheten ett nytt namn.</target>
+ <target state="translated">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="If you still experience issues you can email our support directly at **%@**. Please attach your app log to your email." xml:space="preserve">
@@ -894,17 +827,17 @@
</trans-unit>
<trans-unit id="Import" xml:space="preserve">
<source>Import</source>
- <target state-qualifier="leveraged-tm">Importera</target>
+ <target state="translated">Importera</target>
<note/>
</trans-unit>
<trans-unit id="Import file" xml:space="preserve">
<source>Import file</source>
- <target state-qualifier="leveraged-tm">Importera fil</target>
+ <target state="translated">Importera fil</target>
<note/>
</trans-unit>
<trans-unit id="Import files or text with new IP addresses for the servers in the Select location view." xml:space="preserve">
<source>Import files or text with new IP addresses for the servers in the Select location view.</source>
- <target state-qualifier="leveraged-tm">Importera filer eller text med nya IP-adresser för servrarna i Välj platsvy.</target>
+ <target state="translated">Importera filer eller text med nya IP-adresser för servrarna i Välj platsvy.</target>
<note/>
</trans-unit>
<trans-unit id="Import of %@ was successful, overrides are now active." xml:space="preserve">
@@ -924,7 +857,7 @@
</trans-unit>
<trans-unit id="Import via text" xml:space="preserve">
<source>Import via text</source>
- <target state-qualifier="leveraged-tm">Importera via text</target>
+ <target state="translated">Importera via text</target>
<note/>
</trans-unit>
<trans-unit id="In" xml:space="preserve">
@@ -934,7 +867,7 @@
</trans-unit>
<trans-unit id="In use" xml:space="preserve">
<source>In use</source>
- <target state-qualifier="leveraged-tm">Används</target>
+ <target state="translated">Används</target>
<note/>
</trans-unit>
<trans-unit id="Include all networks" xml:space="preserve">
@@ -952,9 +885,9 @@
<target state="needs-translation">Internal error.</target>
<note/>
</trans-unit>
- <trans-unit id="Invalid account" xml:space="preserve">
- <source>Invalid account</source>
- <target state="needs-translation">Invalid account</target>
+ <trans-unit id="Invalid account number" xml:space="preserve">
+ <source>Invalid account number</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Ogiltigt kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="Invalid device state." xml:space="preserve">
@@ -969,17 +902,17 @@
</trans-unit>
<trans-unit id="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." xml:space="preserve">
<source>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-tm">Den gör det genom att göra ett extra nyckelutbyte med en kvantsäker algoritm och kombinera resultatet med WireGuards vanliga kryptering. Det här extra steget använder ungefär 500 KiB i trafik varje gång en ny tunnel upprättas.</target>
+ <target state="translated">Den gör det genom att göra ett extra nyckelutbyte med en kvantsäker algoritm och kombinera resultatet med WireGuards vanliga kryptering. Det här extra steget använder ungefär 500 KiB i trafik varje gång en ny tunnel upprättas.</target>
<note/>
</trans-unit>
<trans-unit id="It looks like you’ve entered an account number instead of a voucher code. If you would like to change the active account, please log out first." xml:space="preserve">
<source>It looks like you’ve entered an account number instead of a voucher code. If you would like to change the active account, please log out first.</source>
- <target state-qualifier="leveraged-tm">Det verkar som om du angett ett kontonummer istället för en kupongkod. Logga först ut om du vill ändra den aktiva koden.</target>
+ <target state="translated">Det verkar som om du angett ett kontonummer istället för en kupongkod. Logga först ut om du vill ändra den aktiva koden.</target>
<note/>
</trans-unit>
<trans-unit id="Language" xml:space="preserve">
<source>Language</source>
- <target state-qualifier="leveraged-tm">Språk</target>
+ <target state="translated">Språk</target>
<note/>
</trans-unit>
<trans-unit id="Last four digits of the account number are incorrect" xml:space="preserve">
@@ -994,7 +927,7 @@
</trans-unit>
<trans-unit id="Learn about privacy" xml:space="preserve">
<source>Learn about privacy</source>
- <target state-qualifier="leveraged-tm">Läs mer om sekretess</target>
+ <target state="translated">Läs mer om sekretess</target>
<note/>
</trans-unit>
<trans-unit id="Less than a day" xml:space="preserve">
@@ -1004,7 +937,7 @@
</trans-unit>
<trans-unit id="Local network sharing" xml:space="preserve">
<source>Local network sharing</source>
- <target state-qualifier="leveraged-tm">Lokal nätverksdelning</target>
+ <target state="translated">Lokal nätverksdelning</target>
<note/>
</trans-unit>
<trans-unit id="Log in" xml:space="preserve">
@@ -1014,17 +947,17 @@
</trans-unit>
<trans-unit id="Log out" xml:space="preserve">
<source>Log out</source>
- <target state-qualifier="leveraged-tm">Logga ut</target>
+ <target state="translated">Logga ut</target>
<note/>
</trans-unit>
<trans-unit id="Logged in" xml:space="preserve">
<source>Logged in</source>
- <target state-qualifier="leveraged-tm">Inloggad</target>
+ <target state="translated">Inloggad</target>
<note/>
</trans-unit>
<trans-unit id="Logging in..." xml:space="preserve">
<source>Logging in...</source>
- <target state-qualifier="leveraged-tm">Loggar in...</target>
+ <target state="translated">Loggar in...</target>
<note/>
</trans-unit>
<trans-unit id="Logging out..." xml:space="preserve">
@@ -1034,12 +967,12 @@
</trans-unit>
<trans-unit id="Login" xml:space="preserve">
<source>Login</source>
- <target state-qualifier="leveraged-tm">Logga in</target>
+ <target state="translated">Logga in</target>
<note/>
</trans-unit>
<trans-unit id="Login failed" xml:space="preserve">
<source>Login failed</source>
- <target state-qualifier="leveraged-tm">Inloggningen misslyckades</target>
+ <target state="translated">Inloggningen misslyckades</target>
<note/>
</trans-unit>
<trans-unit id="Make a purchase with StoreKit2" xml:space="preserve">
@@ -1049,22 +982,17 @@
</trans-unit>
<trans-unit id="Malware" xml:space="preserve">
<source>Malware</source>
- <target state-qualifier="leveraged-tm">Skadlig kod</target>
+ <target state="translated">Skadlig kod</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="needs-translation">Manage default and setup custom methods to access the Mullvad 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="needs-translation">Manage default and setup custom methods to access the Mullvad API. </target>
+ <trans-unit id="Manage and add custom methods to access the Mullvad API." xml:space="preserve">
+ <source>Manage and add custom methods to access the Mullvad API.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Hantera och lägg till anpassade metoder för att komma åt Mullvad API.</target>
<note/>
</trans-unit>
<trans-unit id="Manage devices" xml:space="preserve">
<source>Manage devices</source>
- <target state-qualifier="leveraged-tm">Hantera enheter</target>
+ <target state="translated">Hantera enheter</target>
<note/>
</trans-unit>
<trans-unit id="Method settings" xml:space="preserve">
@@ -1072,14 +1000,9 @@
<target state="needs-translation">Method settings</target>
<note/>
</trans-unit>
- <trans-unit id="Mullvad bridges" xml:space="preserve">
- <source>Mullvad bridges</source>
- <target state="needs-translation">Mullvad bridges</target>
- <note/>
- </trans-unit>
<trans-unit id="Multihop" xml:space="preserve">
<source>Multihop</source>
- <target state-qualifier="leveraged-tm">Multihopp</target>
+ <target state="translated">Multihopp</target>
<note/>
</trans-unit>
<trans-unit id="Multihop is being used to enable DAITA for your selected location." xml:space="preserve">
@@ -1089,7 +1012,7 @@
</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-tm">Multihopp dirigerar din trafik till en WireGuard-server och ut genom en annan, vilket gör det svårare att spåra. Detta leder till ökad fördröjning men bättre anonymitet online.</target>
+ <target state="translated">Multihopp dirigerar din trafik till en WireGuard-server och ut genom en annan, vilket gör det svårare att spåra. Detta leder till ökad fördröjning men bättre anonymitet online.</target>
<note/>
</trans-unit>
<trans-unit id="Multiple validation errors occurred." xml:space="preserve">
@@ -1104,17 +1027,22 @@
</trans-unit>
<trans-unit id="NEW DEVICE CREATED" xml:space="preserve">
<source>NEW DEVICE CREATED</source>
- <target state-qualifier="leveraged-tm">NY ENHET HAR SKAPATS</target>
+ <target state="translated">NY ENHET HAR SKAPATS</target>
<note/>
</trans-unit>
<trans-unit id="NEW VERSION INSTALLED" xml:space="preserve">
<source>NEW VERSION INSTALLED</source>
- <target state-qualifier="leveraged-tm">NY VERSION INSTALLERAD</target>
+ <target state="translated">NY VERSION INSTALLERAD</target>
<note/>
</trans-unit>
<trans-unit id="Name" xml:space="preserve">
<source>Name</source>
- <target state-qualifier="leveraged-tm">Namn</target>
+ <target state="translated">Namn</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Name is already taken." xml:space="preserve">
+ <source>Name is already taken.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Namnet används redan.</target>
<note/>
</trans-unit>
<trans-unit id="Name should be no longer than %i characters." xml:space="preserve">
@@ -1134,7 +1062,7 @@
</trans-unit>
<trans-unit id="Next" xml:space="preserve">
<source>Next</source>
- <target state-qualifier="leveraged-tm">Nästa</target>
+ <target state="translated">Nästa</target>
<note/>
</trans-unit>
<trans-unit id="No DAITA compatible servers match your location settings. Try changing location." xml:space="preserve">
@@ -1174,27 +1102,27 @@
</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-tm">Inga servrar matchar dina inställningar. Försök att byta server eller ändra inställningarna.</target>
+ <target state="translated">Inga servrar matchar dina inställningar. Försök att byta server eller ändra inställningarna.</target>
<note/>
</trans-unit>
<trans-unit id="Not all our servers are %@-enabled. Therefore, we use multihop automatically to enable %@ with any server." xml:space="preserve">
<source>Not all our servers are %1$@-enabled. Therefore, we use multihop automatically to enable %2$@ with any server.</source>
- <target state-qualifier="leveraged-tm">Det är inte alla våra servrar som är %1$@-aktiverade. Därför använder vi multihopp automatiskt för att aktivera %2$@ med alla servrar.</target>
+ <target state="translated">Det är inte alla våra servrar som är %1$@-aktiverade. Därför använder vi multihopp automatiskt för att aktivera %2$@ med alla servrar.</target>
<note/>
</trans-unit>
<trans-unit id="OUT OF TIME" xml:space="preserve">
<source>OUT OF TIME</source>
- <target state-qualifier="leveraged-tm">INGEN TID KVAR</target>
+ <target state="translated">INGEN TID KVAR</target>
<note/>
</trans-unit>
<trans-unit id="Obfuscation" xml:space="preserve">
<source>Obfuscation</source>
- <target state-qualifier="leveraged-tm">Obfuskering</target>
+ <target state="translated">Obfuskering</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-tm">Obfuskering döljer WireGuard-trafik inne i ett annat protokoll. Det kan användas för att kringgå censur och andra filtertyper där en vanlig WireGuard-anslutning skulle blockeras.</target>
+ <target state="translated">Obfuskering döljer WireGuard-trafik inne i ett annat protokoll. Det kan användas för att kringgå censur och andra filtertyper där en vanlig WireGuard-anslutning skulle blockeras.</target>
<note/>
</trans-unit>
<trans-unit id="Obscured" xml:space="preserve">
@@ -1204,22 +1132,22 @@
</trans-unit>
<trans-unit id="Off" xml:space="preserve">
<source>Off</source>
- <target state-qualifier="leveraged-tm">Av</target>
+ <target state="translated">Av</target>
<note/>
</trans-unit>
<trans-unit id="On" xml:space="preserve">
<source>On</source>
- <target state-qualifier="leveraged-tm">På</target>
+ <target state="translated">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-tm">På vissa nätverk där olika typer av censureringar används blockeras blir ibland vår servers IP-adresser blockerade.</target>
+ <target state="translated">På vissa nätverk där olika typer av censureringar används blockeras blir ibland vår servers IP-adresser blockerade.</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-tm">Det kanske inte går att nå API-servrarna direkt på nätverk som använder olika censureringstyper.</target>
+ <target state="translated">Det kanske inte går att nå API-servrarna direkt på nätverk som använder olika censureringstyper.</target>
<note/>
</trans-unit>
<trans-unit id="Open %@ settings" xml:space="preserve">
@@ -1229,7 +1157,7 @@
</trans-unit>
<trans-unit id="Optional" xml:space="preserve">
<source>Optional</source>
- <target state-qualifier="leveraged-tm">Valfritt</target>
+ <target state="translated">Valfritt</target>
<note/>
</trans-unit>
<trans-unit id="Out IPv4" xml:space="preserve">
@@ -1244,32 +1172,32 @@
</trans-unit>
<trans-unit id="Out of time" xml:space="preserve">
<source>Out of time</source>
- <target state-qualifier="leveraged-tm">Ingen tid kvar</target>
+ <target state="translated">Ingen tid kvar</target>
<note/>
</trans-unit>
<trans-unit id="Overrides active" xml:space="preserve">
<source>Overrides active</source>
- <target state-qualifier="leveraged-tm">Åsidosättningar aktiva</target>
+ <target state="translated">Åsidosättningar aktiva</target>
<note/>
</trans-unit>
<trans-unit id="Owned" xml:space="preserve">
<source>Owned</source>
- <target state-qualifier="leveraged-tm">Ägd</target>
+ <target state="translated">Ägd</target>
<note/>
</trans-unit>
<trans-unit id="Ownership" xml:space="preserve">
<source>Ownership</source>
- <target state-qualifier="leveraged-tm">Ägarskap</target>
+ <target state="translated">Ägarskap</target>
<note/>
</trans-unit>
<trans-unit id="Paid until" xml:space="preserve">
<source>Paid until</source>
- <target state-qualifier="leveraged-tm">Betalat till</target>
+ <target state="translated">Betalat till</target>
<note/>
</trans-unit>
<trans-unit id="Password" xml:space="preserve">
<source>Password</source>
- <target state-qualifier="leveraged-tm">Lösenord</target>
+ <target state="translated">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">
@@ -1279,7 +1207,7 @@
</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-tm">Ange en giltig IPv4- eller IPv6-adress.</target>
+ <target state="translated">Ange en giltig IPv4- eller IPv6-adress.</target>
<note/>
</trans-unit>
<trans-unit id="Please enter a valid port." xml:space="preserve">
@@ -1289,7 +1217,7 @@
</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-qualifier="leveraged-tm">Logga ut på minst en enhet genom att ta bort den från listan nedan. Du hittar motsvarande enhetsnamn i enhetens kontoinställningar.</target>
+ <target state="translated">Logga ut på minst en enhet genom att ta bort den från listan nedan. Du hittar motsvarande enhetsnamn i enhetens kontoinställningar.</target>
<note/>
</trans-unit>
<trans-unit id="Please retry by using the &quot;Restore purchases&quot; button." xml:space="preserve">
@@ -1314,7 +1242,7 @@
</trans-unit>
<trans-unit id="Providers" xml:space="preserve">
<source>Providers</source>
- <target state-qualifier="leveraged-tm">Leverantörer</target>
+ <target state="translated">Leverantörer</target>
<note/>
</trans-unit>
<trans-unit id="Providers: %d" xml:space="preserve">
@@ -1329,27 +1257,17 @@
</trans-unit>
<trans-unit id="Quantum resistance" xml:space="preserve">
<source>Quantum resistance</source>
- <target state-qualifier="leveraged-tm">Kvantresistens</target>
- <note/>
- </trans-unit>
- <trans-unit id="Quantum secure connection" xml:space="preserve">
- <source>Quantum secure connection</source>
- <target state="needs-translation">Quantum secure connection</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="needs-translation">Quantum secure connection. Connected to %1$@, %2$@</target>
+ <target state="translated">Kvantresistens</target>
<note/>
</trans-unit>
<trans-unit id="Quantum-resistant tunnel" xml:space="preserve">
<source>Quantum-resistant tunnel</source>
- <target state-qualifier="leveraged-tm">Kvantresistent tunnel</target>
+ <target state="translated">Kvantresistent tunnel</target>
<note/>
</trans-unit>
<trans-unit id="Reconnecting" xml:space="preserve">
<source>Reconnecting</source>
- <target state-qualifier="leveraged-tm">Återansluter</target>
+ <target state="translated">Återansluter</target>
<note/>
</trans-unit>
<trans-unit id="Reconnecting to %@, %@" xml:space="preserve">
@@ -1359,12 +1277,12 @@
</trans-unit>
<trans-unit id="Redeem" xml:space="preserve">
<source>Redeem</source>
- <target state-qualifier="leveraged-tm">Lös in</target>
+ <target state="translated">Lös in</target>
<note/>
</trans-unit>
<trans-unit id="Redeem voucher" xml:space="preserve">
<source>Redeem voucher</source>
- <target state-qualifier="leveraged-tm">Lös in kupong</target>
+ <target state="translated">Lös in kupong</target>
<note/>
</trans-unit>
<trans-unit id="Refund last purchase with StoreKit2" xml:space="preserve">
@@ -1379,12 +1297,12 @@
</trans-unit>
<trans-unit id="Remove" xml:space="preserve">
<source>Remove</source>
- <target state-qualifier="leveraged-tm">Ta bort</target>
+ <target state="translated">Ta bort</target>
<note/>
</trans-unit>
<trans-unit id="Remove %@?" xml:space="preserve">
<source>Remove %@?</source>
- <target state-qualifier="leveraged-tm">Ta bort %@?</target>
+ <target state="translated">Ta bort %@?</target>
<note/>
</trans-unit>
<trans-unit id="Remove last used account" xml:space="preserve">
@@ -1401,17 +1319,17 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Rented" xml:space="preserve">
<source>Rented</source>
- <target state-qualifier="leveraged-tm">Hyrd</target>
+ <target state="translated">Hyrd</target>
<note/>
</trans-unit>
<trans-unit id="Report a problem" xml:space="preserve">
<source>Report a problem</source>
- <target state-qualifier="leveraged-tm">Rapportera ett problem</target>
+ <target state="translated">Rapportera ett problem</target>
<note/>
</trans-unit>
<trans-unit id="Required" xml:space="preserve">
<source>Required</source>
- <target state-qualifier="leveraged-tm">Obligatoriskt</target>
+ <target state="translated">Obligatoriskt</target>
<note/>
</trans-unit>
<trans-unit id="Restore purchases" xml:space="preserve">
@@ -1421,12 +1339,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Save" xml:space="preserve">
<source>Save</source>
- <target state-qualifier="leveraged-tm">Spara</target>
- <note/>
- </trans-unit>
- <trans-unit id="Save anyway" xml:space="preserve">
- <source>Save anyway</source>
- <target state="needs-translation">Save anyway</target>
+ <target state="translated">Spara</target>
<note/>
</trans-unit>
<trans-unit id="Saving changes..." xml:space="preserve">
@@ -1436,17 +1349,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Search for..." xml:space="preserve">
<source>Search for...</source>
- <target state-qualifier="leveraged-tm">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="needs-translation">Secure connection. Connected to %1$@, %2$@</target>
+ <target state="translated">Sök efter …</target>
<note/>
</trans-unit>
<trans-unit id="Select location" xml:space="preserve">
<source>Select location</source>
- <target state-qualifier="leveraged-tm">Välj plats</target>
+ <target state="translated">Välj plats</target>
<note/>
</trans-unit>
<trans-unit id="Selected" xml:space="preserve">
@@ -1456,22 +1364,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Send" xml:space="preserve">
<source>Send</source>
- <target state-qualifier="leveraged-tm">Skicka</target>
+ <target state="translated">Skicka</target>
<note/>
</trans-unit>
<trans-unit id="Send anyway" xml:space="preserve">
<source>Send anyway</source>
- <target state-qualifier="leveraged-tm">Skicka ändå</target>
+ <target state="translated">Skicka ändå</target>
<note/>
</trans-unit>
<trans-unit id="Sending..." xml:space="preserve">
<source>Sending...</source>
- <target state-qualifier="leveraged-tm">Skicka...</target>
+ <target state="translated">Skicka...</target>
<note/>
</trans-unit>
<trans-unit id="Sent" xml:space="preserve">
<source>Sent</source>
- <target state-qualifier="leveraged-tm">Skickat</target>
+ <target state="translated">Skickat</target>
<note/>
</trans-unit>
<trans-unit id="Server" xml:space="preserve">
@@ -1479,19 +1387,14 @@ Do you want to remove the saved account number?</target>
<target state="needs-translation">Server</target>
<note/>
</trans-unit>
- <trans-unit id="Server IP Override" xml:space="preserve">
- <source>Server IP Override</source>
- <target state="needs-translation">Server IP Override</target>
- <note/>
- </trans-unit>
<trans-unit id="Server IP override" xml:space="preserve">
<source>Server IP override</source>
- <target state-qualifier="leveraged-tm">Åsidosättning av serverns IP-adress</target>
+ <target state="translated">Åsidosättning av serverns IP-adress</target>
<note/>
</trans-unit>
<trans-unit id="Server details" xml:space="preserve">
<source>Server details</source>
- <target state-qualifier="leveraged-tm">Serverinformation</target>
+ <target state="translated">Serverinformation</target>
<note/>
</trans-unit>
<trans-unit id="Setting: %@" xml:space="preserve">
@@ -1501,7 +1404,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Settings" xml:space="preserve">
<source>Settings</source>
- <target state-qualifier="leveraged-tm">Inställningar</target>
+ <target state="translated">Inställningar</target>
<note/>
</trans-unit>
<trans-unit id="Settings migration error" xml:space="preserve">
@@ -1516,12 +1419,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Show account number" xml:space="preserve">
<source>Show account number</source>
- <target state-qualifier="leveraged-tm">Visa kontonummer</target>
+ <target state="translated">Visa kontonummer</target>
<note/>
</trans-unit>
<trans-unit id="Social media" xml:space="preserve">
<source>Social media</source>
- <target state-qualifier="leveraged-tm">Sociala medier</target>
+ <target state="translated">Sociala medier</target>
<note/>
</trans-unit>
<trans-unit id="Socks5" xml:space="preserve">
@@ -1531,7 +1434,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Start using the app" xml:space="preserve">
<source>Start using the app</source>
- <target state-qualifier="leveraged-tm">Börja använda appen</target>
+ <target state="translated">Börja använda appen</target>
<note/>
</trans-unit>
<trans-unit id="Super!" xml:space="preserve">
@@ -1541,7 +1444,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Switch location" xml:space="preserve">
<source>Switch location</source>
- <target state-qualifier="leveraged-tm">Växla plats</target>
+ <target state="translated">Växla plats</target>
<note/>
</trans-unit>
<trans-unit id="TCP" xml:space="preserve">
@@ -1561,12 +1464,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Test method" xml:space="preserve">
<source>Test method</source>
- <target state-qualifier="leveraged-tm">Testmetod</target>
+ <target state="translated">Testmetod</target>
<note/>
</trans-unit>
<trans-unit id="Testing..." xml:space="preserve">
<source>Testing...</source>
- <target state-qualifier="leveraged-tm">Testar ...</target>
+ <target state="translated">Testar ...</target>
<note/>
</trans-unit>
<trans-unit id="Thanks for your purchase" xml:space="preserve">
@@ -1576,7 +1479,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Thanks!" xml:space="preserve">
<source>Thanks!</source>
- <target state-qualifier="leveraged-tm">Tack!</target>
+ <target state="translated">Tack!</target>
<note/>
</trans-unit>
<trans-unit id="The app communicates with a Mullvad API server directly." xml:space="preserve">
@@ -1596,7 +1499,7 @@ Do you want to remove the saved account number?</target>
</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-tm">Appen måste kommunicera med en Mullvad API-server för att logga in dig, hämta serverlistor och andra viktiga åtgärder.</target>
+ <target state="translated">Appen måste kommunicera med en Mullvad API-server för att logga in dig, hämta serverlistor och andra viktiga åtgärder.</target>
<note/>
</trans-unit>
<trans-unit id="The app will test the method before saving." xml:space="preserve">
@@ -1606,17 +1509,17 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="The automatic setting will randomly choose from the valid port ranges shown below." xml:space="preserve">
<source>The automatic setting will randomly choose from the valid port ranges shown below.</source>
- <target state-qualifier="leveraged-tm">Den automatiska inställningen väljer slumpmässigt från giltiga portintervall som visas nedan.</target>
+ <target state="translated">Den automatiska inställningen väljer slumpmässigt från giltiga portintervall som visas nedan.</target>
<note/>
</trans-unit>
<trans-unit id="The custom port can be any value inside the valid ranges: %@." xml:space="preserve">
<source>The custom port can be any value inside the valid ranges: %@.</source>
- <target state-qualifier="leveraged-tm">Den anpassade porten kan vara ett värde inom de giltiga intervallen: %@.</target>
+ <target state="translated">Den anpassade porten kan vara ett värde inom de giltiga intervallen: %@.</target>
<note/>
</trans-unit>
<trans-unit id="The device will be removed from the list and logged out." xml:space="preserve">
<source>The device will be removed from the list and logged out.</source>
- <target state-qualifier="leveraged-tm">Enheten kommer att tas bort från listan och loggas ut.</target>
+ <target state="translated">Enheten kommer att tas bort från listan och loggas ut.</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">
@@ -1646,12 +1549,12 @@ Do you want to remove the saved account number?</target>
</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-tm">Detta kan vara användbart om API:n är censurerad men Mullvads broservrar inte är det.</target>
+ <target state="translated">Detta kan vara användbart om API:n är censurerad men Mullvads broservrar inte är det.</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-tm">Detta kan vara användbart när du inte påverkas av censurering.</target>
+ <target state="translated">Detta kan vara användbart när du inte påverkas av censurering.</target>
<note/>
</trans-unit>
<trans-unit id="This device is not allowed to make the payment." xml:space="preserve">
@@ -1661,22 +1564,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc." xml:space="preserve">
<source>This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.</source>
- <target state-qualifier="leveraged-tm">Funktionen tillåter åtkomst till andra enheter på det lokala nätverket, t.ex. för att dela, skriva ut, streama osv.</target>
+ <target state="translated">Funktionen tillåter åtkomst till andra enheter på det lokala nätverket, t.ex. för att dela, skriva ut, streama osv.</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-tm">Men den här funktionen kan du kringgå censureringen genom att lägga till anpassade sätt att komma åt API:n via proxyservrar och liknande metoder.</target>
+ <target state="translated">Men den här funktionen kan du kringgå censureringen genom att lägga till anpassade sätt att komma åt API:n via proxyservrar och liknande metoder.</target>
<note/>
</trans-unit>
<trans-unit id="This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers." xml:space="preserve">
<source>This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.</source>
- <target state-qualifier="leveraged-tm">Den här funktionen gör WireGuard-tunneln resistent mot potentiella attacker från kvantdatorer.</target>
+ <target state="translated">Den här funktionen gör WireGuard-tunneln resistent mot potentiella attacker från kvantdatorer.</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." 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.</source>
- <target state-qualifier="leveraged-tm">Det här är namnet som tilldelas enheten. Varje enhet som är inloggad på ett Mullvad-konto får ett unikt namn som hjälper dig att identifiera den när du hanterar dina enheter i appen eller på webbplatsen.</target>
+ <target state="translated">Det här är namnet som tilldelas enheten. Varje enhet som är inloggad på ett Mullvad-konto får ett unikt namn som hjälper dig att identifiera den när du hanterar dina enheter i appen eller på webbplatsen.</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">
@@ -1686,7 +1589,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="This might cause issues on certain websites, services, and apps." xml:space="preserve">
<source>This might cause issues on certain websites, services, and apps.</source>
- <target state-qualifier="leveraged-tm">Detta kan orsaka problem på vissa webbplatser, tjänster och appar.</target>
+ <target state="translated">Detta kan orsaka problem på vissa webbplatser, tjänster och appar.</target>
<note/>
</trans-unit>
<trans-unit id="This voucher code has already been used." xml:space="preserve">
@@ -1701,22 +1604,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="To add more, you will need to disconnect and access the Internet with an unsecure connection." xml:space="preserve">
<source>To add more, you will need to disconnect and access the Internet with an unsecure connection.</source>
- <target state-qualifier="leveraged-tm">Om du vill lägga till mer måste du koppla från och öppna internet med en oskyddad anslutning.</target>
+ <target state="translated">Om du vill lägga till mer måste du koppla från och öppna internet med en oskyddad anslutning.</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-tm">Skriv på engelska eller svenska och ange från vilket land du är ansluten så att vi kan hjälpa dig bättre.</target>
+ <target state="translated">Skriv på engelska eller svenska och ange från vilket land du är ansluten så att vi kan hjälpa dig bättre.</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-tm">För att kringgå detta kan du importera en fil eller text, som tillhandahålls av vårt supportteam, med nya IP-adresser som åsidosätter servrarnas standardadresser i Välj platsvy.</target>
+ <target state="translated">För att kringgå detta kan du importera en fil eller text, som tillhandahålls av vårt supportteam, med nya IP-adresser som åsidosätter servrarnas standardadresser i Välj platsvy.</target>
<note/>
</trans-unit>
<trans-unit id="To continue your journey as a privacy ninja, visit our website to pick up other privacy-friendly habits and tools." xml:space="preserve">
<source>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-tm">Om du vill fortsätta din resa som sekretessninja kan du gå till vår webbplats för att lära dig sekretessvänliga vanor och verktyg.</target>
+ <target state="translated">Om du vill fortsätta din resa som sekretessninja kan du gå till vår webbplats för att lära dig sekretessvänliga vanor och verktyg.</target>
<note/>
</trans-unit>
<trans-unit id="To create a custom list, tap on &quot;...&quot; " xml:space="preserve">
@@ -1731,32 +1634,27 @@ Do you want to remove the saved account number?</target>
</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-tm">För att hjälpa dig mer effektivt kommer appens loggfil att bifogas i detta meddelande. Dina uppgifter förblir säkra och privata, eftersom de anonymiseras innan de skickas över en krypterad kanal.</target>
+ <target state="translated">För att hjälpa dig mer effektivt kommer appens loggfil att bifogas i detta meddelande. Dina uppgifter förblir säkra och privata, eftersom de anonymiseras 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." xml:space="preserve">
<source>To start using the app, you first need to add time to your account.</source>
- <target state-qualifier="leveraged-tm">Om du vill börja använda appen måste du först lägga till tid i ditt konto.</target>
+ <target state="translated">Om du vill börja använda appen måste du först lägga till tid i ditt konto.</target>
<note/>
</trans-unit>
<trans-unit id="Too many devices" xml:space="preserve">
<source>Too many devices</source>
- <target state-qualifier="leveraged-tm">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="needs-translation">Too many devices registered with account</target>
+ <target state="translated">För många enheter</target>
<note/>
</trans-unit>
<trans-unit id="Trackers" xml:space="preserve">
<source>Trackers</source>
- <target state-qualifier="leveraged-tm">Spårare</target>
+ <target state="translated">Spårare</target>
<note/>
</trans-unit>
<trans-unit id="Try again" xml:space="preserve">
<source>Try again</source>
- <target state-qualifier="leveraged-tm">Försök igen</target>
+ <target state="translated">Försök igen</target>
<note/>
</trans-unit>
<trans-unit id="Tunnel is unset." xml:space="preserve">
@@ -1766,7 +1664,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Type" xml:space="preserve">
<source>Type</source>
- <target state-qualifier="leveraged-tm">Typ</target>
+ <target state="translated">Typ</target>
<note/>
</trans-unit>
<trans-unit id="UDP" xml:space="preserve">
@@ -1776,7 +1674,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="UDP-over-TCP" xml:space="preserve">
<source>UDP-over-TCP</source>
- <target state-qualifier="leveraged-tm">UDP över TCP</target>
+ <target state="translated">UDP över TCP</target>
<note/>
</trans-unit>
<trans-unit id="Unable to authenticate account. Please log out and log back in." xml:space="preserve">
@@ -1791,7 +1689,7 @@ Do you want to remove the saved account number?</target>
</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-tm">Det går inte att starta tunnelanslutning. Skicka en problemrapport.</target>
+ <target state="translated">Det går inte att starta tunnelanslutning. Skicka en problemrapport.</target>
<note/>
</trans-unit>
<trans-unit id="Unexpected server response: %1$@ (HTTP status: %2$d)" xml:space="preserve">
@@ -1806,62 +1704,57 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Unknown error." xml:space="preserve">
<source>Unknown error.</source>
- <target state-qualifier="leveraged-tm">Okänt fel.</target>
- <note/>
- </trans-unit>
- <trans-unit id="Unsecured connection" xml:space="preserve">
- <source>Unsecured connection</source>
- <target state="needs-translation">Unsecured connection</target>
+ <target state="translated">Okänt fel.</target>
<note/>
</trans-unit>
<trans-unit id="Use custom DNS server" xml:space="preserve">
<source>Use custom DNS server</source>
- <target state-qualifier="leveraged-tm">Använd anpassad DNS-server</target>
+ <target state="translated">Använd anpassad DNS-server</target>
<note/>
</trans-unit>
<trans-unit id="Username" xml:space="preserve">
<source>Username</source>
- <target state-qualifier="leveraged-tm">Användarnamn</target>
+ <target state="translated">Användarnamn</target>
<note/>
</trans-unit>
<trans-unit id="VPN settings" xml:space="preserve">
<source>VPN settings</source>
- <target state-qualifier="leveraged-tm">VPN-inställningar</target>
+ <target state="translated">VPN-inställningar</target>
<note/>
</trans-unit>
<trans-unit id="Valid range: %d - %d" xml:space="preserve">
<source>Valid range: %1$d - %2$d</source>
- <target state-qualifier="leveraged-tm">Giltigt intervall: %1$d–%2$d</target>
+ <target state="translated">Giltigt intervall: %1$d–%2$d</target>
<note/>
</trans-unit>
<trans-unit id="Verifying voucher..." xml:space="preserve">
<source>Verifying voucher...</source>
- <target state-qualifier="leveraged-tm">Verifierar kupong ...</target>
+ <target state="translated">Verifierar kupong ...</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-qualifier="leveraged-tm">Visa och hantera alla dina inloggade enheter. Du kan ha upp till fem enheter åt gången på ett konto. Varje enhet får ett namn när den loggas in så att du enklare kan skilja dem åt.</target>
+ <target state="translated">Visa och hantera alla dina inloggade enheter. Du kan ha upp till fem enheter åt gången på ett konto. Varje enhet får ett namn när den loggas in så att du enklare kan skilja dem åt.</target>
<note/>
</trans-unit>
<trans-unit id="View app logs" xml:space="preserve">
<source>View app logs</source>
- <target state-qualifier="leveraged-tm">Visa appens loggar</target>
+ <target state="translated">Visa appens 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-tm">Kupongkoden är ogiltig.</target>
+ <target state="translated">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-tm">Kupongen har lösts in.</target>
+ <target state="translated">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-tm">Varning! Blockering av skadlig kod är inte ett antivirusprogram och bör inte behandlas som ett. Det här är bara ett extra skyddslager.</target>
+ <target state="translated">Varning! Blockering av skadlig kod är inte ett antivirusprogram och bör inte behandlas som ett. Det här är bara ett extra skyddslager.</target>
<note/>
</trans-unit>
<trans-unit id="We are having some issues, please try again later" xml:space="preserve">
@@ -1871,7 +1764,7 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="We will look into this." xml:space="preserve">
<source>We will look into this.</source>
- <target state-qualifier="leveraged-tm">Vi kommer att undersöka detta.</target>
+ <target state="translated">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">
@@ -1881,12 +1774,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="What’s new" xml:space="preserve">
<source>What’s new</source>
- <target state-qualifier="leveraged-tm">Vad är nytt</target>
+ <target state="translated">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." 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.</source>
- <target state-qualifier="leveraged-tm">När den här funktionen är aktiverad stoppas enheten från att kontakta vissa domäner eller webbplatser som är kända för att sprida annonser, skadlig kod, spårare med mera.</target>
+ <target state="translated">När den här funktionen är aktiverad stoppas enheten från att kontakta vissa domäner eller webbplatser som är kända för att sprida annonser, skadlig kod, spårare med mera.</target>
<note/>
</trans-unit>
<trans-unit id="When using DAITA, one provider with DAITA-enabled servers is required." xml:space="preserve">
@@ -1896,32 +1789,32 @@ Do you want to remove the saved account number?</target>
</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-tm">Vilken TCP-port som UDP-över-TCP-obfuskeringsprotokoll bör ansluta till på VPN-servern.</target>
+ <target state="translated">Vilken TCP-port som UDP-över-TCP-obfuskeringsprotokoll 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-tm">WireGuard-obfuskering</target>
+ <target state="translated">WireGuard-obfuskering</target>
<note/>
</trans-unit>
<trans-unit id="WireGuard port" xml:space="preserve">
<source>WireGuard port</source>
- <target state-qualifier="leveraged-tm">WireGuard-port</target>
+ <target state="translated">WireGuard-port</target>
<note/>
</trans-unit>
<trans-unit id="With the “Direct” 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-tm">Med metoden "Direkt" kommunicerar appen med en Mullvad API-server direkt utan mellanliggande proxyservrar.</target>
+ <target state="translated">Med metoden "Direkt" kommunicerar appen med en Mullvad API-server direkt utan mellanliggande proxyservrar.</target>
<note/>
</trans-unit>
<trans-unit id="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." 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-tm">Med metoden "Krypterad DNS-proxy" kommunicerar appen med vår Mullvad API via en proxyadress. Den gör det genom att hämta en adress från en DNS over HTTPS-server (DoH) och sedan använda den för att nå våra API-servrar.</target>
+ <target state="translated">Med metoden "Krypterad DNS-proxy" kommunicerar appen med vår Mullvad API via en proxyadress. Den gör det genom att hämta en adress från en DNS over HTTPS-server (DoH) och sedan använda den för att nå våra API-servrar.</target>
<note/>
</trans-unit>
<trans-unit id="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." 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-tm">Med metoden "Mullvad-broar" kommunicerar appen med en Mullvad API-server via en Mullvad-broserver. Den gör det genom att skicka trafiken som obfuskeras av Shadowsocks.</target>
+ <target state="translated">Med metoden "Mullvad-broar" kommunicerar appen med en Mullvad API-server via en Mullvad-broserver. Den gör det genom att skicka trafiken som obfuskeras av Shadowsocks.</target>
<note/>
</trans-unit>
<trans-unit id="Yes, continue" xml:space="preserve">
@@ -1931,22 +1824,22 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="Yes, log out device" xml:space="preserve">
<source>Yes, log out device</source>
- <target state-qualifier="leveraged-tm">Ja, logga ut enheten</target>
+ <target state="translated">Ja, logga ut enheten</target>
<note/>
</trans-unit>
<trans-unit id="You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone." xml:space="preserve">
<source>You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone.</source>
- <target state="needs-translation">You already have a saved account number, by creating a new account the saved account number will be removed from this device. This cannot be undone.</target>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">Du har redan ett sparat kontonummer. Om du skapar ett nytt konto tas det sparade kontonumret bort från enheten. Det går inte att ångra detta.</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-tm">Du är på väg att skicka problemrapporten utan att vi har möjlighet att besvara dig. Om du vill ha svar på din rapport måste du ange en e-postadress.</target>
+ <target state="translated">Du är på väg att skicka problemrapporten utan att vi har möjlighet att besvara dig. Om du vill ha 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-tm">Du är inloggad med ett ogiltigt kontonummer. Logga ut och försök med ett annat.</target>
+ <target state="translated">Du är inloggad med ett ogiltigt kontonummer. Logga ut och försök med 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">
@@ -1956,12 +1849,12 @@ Do you want to remove the saved account number?</target>
</trans-unit>
<trans-unit id="You can have up to 5 devices logged in on one Mullvad account." xml:space="preserve">
<source>You can have up to 5 devices logged in on one Mullvad account.</source>
- <target state-qualifier="leveraged-tm">Upp till fem enheter kan vara inloggade på ett Mullvad-konto.</target>
+ <target state="translated">Upp till fem enheter kan vara inloggade på ett Mullvad-konto.</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-qualifier="leveraged-tm">Du kan nu fortsätta med att logga in på den här enheten.</target>
+ <target state="translated">Du kan nu fortsätta med att logga in på den här enheten.</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">
@@ -1989,7 +1882,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="You have no more VPN time left on this account. " xml:space="preserve">
<source>You have no more VPN time left on this account. </source>
- <target state-qualifier="leveraged-tm">Du har ingen VPN-tid kvar på det här kontot. </target>
+ <target state="translated">Du har ingen VPN-tid kvar på det här kontot. </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">
@@ -1999,7 +1892,7 @@ We strongly believe in retaining as little data as possible because we want you
</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-tm">Du har tagit bort den här enheten. Du måste logga in igen för att återansluta.</target>
+ <target state="translated">Du har tagit bort den här enheten. Du måste logga in igen för att återansluta.</target>
<note/>
</trans-unit>
<trans-unit id="You have unsaved changes." xml:space="preserve">
@@ -2009,7 +1902,7 @@ We strongly believe in retaining as little data as possible because we want you
</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-tm">Din enhet är offline. Tunneln ansluts automatiskt när din enhet är online igen.</target>
+ <target state="translated">Din enhet är offline. Tunneln ansluts automatiskt när din enhet är online igen.</target>
<note/>
</trans-unit>
<trans-unit id="Your device is offline. Try connecting again when the device has access to Internet." xml:space="preserve">
@@ -2019,7 +1912,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="Your email (optional)" xml:space="preserve">
<source>Your email (optional)</source>
- <target state-qualifier="leveraged-tm">Din e-postadress (valfritt)</target>
+ <target state="translated">Din e-postadress (valfritt)</target>
<note/>
</trans-unit>
<trans-unit id="Your previous purchases have already been added to this account." xml:space="preserve">
@@ -2034,12 +1927,12 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="You’re all set!!" xml:space="preserve">
<source>You’re all set!!</source>
- <target state-qualifier="leveraged-tm">Du är klar!!</target>
+ <target state="translated">Du är klar!!</target>
<note/>
</trans-unit>
<trans-unit id="file" xml:space="preserve">
<source>file</source>
- <target state-qualifier="leveraged-tm">fil</target>
+ <target state="translated">fil</target>
<note/>
</trans-unit>
<trans-unit id="method" xml:space="preserve">
@@ -2049,7 +1942,7 @@ We strongly believe in retaining as little data as possible because we want you
</trans-unit>
<trans-unit id="multihop" xml:space="preserve">
<source>multihop</source>
- <target state-qualifier="leveraged-tm">multihopp</target>
+ <target state="translated">multihopp</target>
<note/>
</trans-unit>
<trans-unit id="text" xml:space="preserve">
@@ -2073,7 +1966,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2085,7 +1978,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2097,7 +1990,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="MullvadLogging-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2109,7 +2002,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadSettings-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="MullvadMockData/MullvadMockData-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2121,7 +2014,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/MullvadTypes-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="MullvadREST/InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2133,7 +2026,7 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Operations-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="MullvadRustRuntime-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2145,19 +2038,19 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
- <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
- <target state="needs-translation">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
- <note>Copyright (human-readable)</note>
+ <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
+ <source>The app needs this to connect and test a new method.</source>
+ <target state="needs-translation">The app needs this to connect and test a new method.</target>
+ <note>Privacy - Local Network Usage Description</note>
</trans-unit>
</body>
</file>
- <file original="Assets/Resources/InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="Operations/Operations-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2169,7 +2062,51 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="Assets/Routing-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="PacketTunnel/InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ </body>
+ </file>
+ <file original="PacketTunnel/Localizable.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <header>
+ <tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
+ </header>
+ <body>
+ <trans-unit id="%@ was added to your account." xml:space="preserve">
+ <source>%@ was added to your account.</source>
+ <target state="needs-review-translation" state-qualifier="leveraged-tm">%@ har lagts till i ditt konto.</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot complete the purchase" xml:space="preserve">
+ <source>Cannot complete the purchase</source>
+ <target state="needs-translation">Cannot complete the purchase</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Cannot restore purchases" xml:space="preserve">
+ <source>Cannot restore purchases</source>
+ <target state="needs-translation">Cannot restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Restore purchases" xml:space="preserve">
+ <source>Restore purchases</source>
+ <target state="needs-translation">Restore purchases</target>
+ <note/>
+ </trans-unit>
+ <trans-unit id="Thanks for your purchase" xml:space="preserve">
+ <source>Thanks for your purchase</source>
+ <target state="needs-translation">Thanks for your purchase</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="needs-translation">Your previous purchases have already been added to this account.</target>
+ <note/>
+ </trans-unit>
+ </body>
+ </file>
+ <file original="PacketTunnelCore/PacketTunnelCore-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
@@ -2181,15 +2118,15 @@ Would you like to continue to enable “Local network sharing”?</target>
</trans-unit>
</body>
</file>
- <file original="MullvadVPN/Supporting Files/InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
+ <file original="Routing/Routing-InfoPlist.xcstrings" source-language="en" target-language="sv" datatype="plaintext">
<header>
<tool tool-id="com.apple.dt.xcode" tool-name="Xcode" tool-version="16.4" build-num="16F6"/>
</header>
<body>
- <trans-unit id="NSLocalNetworkUsageDescription" xml:space="preserve">
- <source>The app needs this to connect and test a new method.</source>
- <target state="needs-translation">The app needs this to connect and test a new method.</target>
- <note>Privacy - Local Network Usage Description</note>
+ <trans-unit id="NSHumanReadableCopyright" translate="no" xml:space="preserve">
+ <source>Copyright © 2025 Mullvad VPN AB. All rights reserved.</source>
+ <target state="needs-translation">Copyright © 2025 Mullvad VPN AB. All rights reserved.</target>
+ <note>Copyright (human-readable)</note>
</trans-unit>
</body>
</file>