Refactor strings and add new ones

- Move Localizable.strings above to share *.lproj folders

- Reorg menus into contextual/system

- Shorten titles of contextual menus

- Update sharing message with WireGuard

- Drop AlternativeTo

7 phrases left to translate into 9 languages.
This commit is contained in:
Davide De Rosa 2022-04-12 18:51:24 +02:00
parent 322bdf2993
commit d8e47cb7c0
26 changed files with 800 additions and 937 deletions

View File

@ -393,7 +393,6 @@
0E34A2B827CAA8EA00C73B67 /* L10n */ = {
isa = PBXGroup;
children = (
0E9E5AE227B44CF1008C95DA /* Localizable.strings */,
0E34A2B527CAA8CC00C73B67 /* Core+L10n.swift */,
0E34A2AF27CAA84500C73B67 /* OpenVPN+L10n.swift */,
0E71ACE227C0F2E300F85C4B /* Providers+L10n.swift */,
@ -544,6 +543,7 @@
0EDE8DE220C86A13004C739C /* App.entitlements */,
0E57F64720C83FC7008323CF /* Info.plist */,
0E0C072B236087A100155AAC /* InfoPlist.strings */,
0E9E5AE227B44CF1008C95DA /* Localizable.strings */,
0E2A8D4727ADF87F00207D04 /* PassepartoutApp.swift */,
);
path = App;

View File

@ -190,8 +190,6 @@ extension Constants {
static let githubSponsors = URL(string: "https://www.github.com/sponsors/passepartoutvpn")!
static let alternativeTo = URL(string: "https://alternativeto.net/software/passepartout-vpn/about/")!
static let openVPNGuidances: [ProviderName: String] = [
.protonvpn: "https://account.protonvpn.com/settings",
.surfshark: "https://my.surfshark.com/vpn/manual-setup/main",

View File

@ -27,24 +27,12 @@ internal enum L10n {
/// Privacy policy
internal static let caption = L10n.tr("Localizable", "about.items.privacy_policy.caption")
}
internal enum ShareGeneric {
/// Invite a friend
internal static let caption = L10n.tr("Localizable", "about.items.share_generic.caption")
}
internal enum ShareTwitter {
/// Tweet about it!
internal static let caption = L10n.tr("Localizable", "about.items.share_twitter.caption")
}
internal enum Website {
/// Home page
internal static let caption = L10n.tr("Localizable", "about.items.website.caption")
}
}
internal enum Sections {
internal enum Share {
/// Share
internal static let header = L10n.tr("Localizable", "about.sections.share.header")
}
internal enum Web {
/// Web
internal static let header = L10n.tr("Localizable", "about.sections.web.header")
@ -156,10 +144,6 @@ internal enum L10n {
internal static let updateList = L10n.tr("Localizable", "add_profile.provider.items.update_list")
}
internal enum Sections {
internal enum Providers {
/// Providers
internal static let header = L10n.tr("Localizable", "add_profile.provider.sections.providers.header")
}
internal enum Vpn {
/// Here you find a few providers with preset configuration profiles.
internal static let footer = L10n.tr("Localizable", "add_profile.provider.sections.vpn.footer")
@ -421,13 +405,13 @@ internal enum L10n {
internal static let missingProfile = L10n.tr("Localizable", "global.errors.missing_profile")
/// Missing preset
internal static let missingProviderPreset = L10n.tr("Localizable", "global.errors.missing_provider_preset")
/// Missing server
/// Missing location
internal static let missingProviderServer = L10n.tr("Localizable", "global.errors.missing_provider_server")
}
internal enum Messages {
/// No e-mail account is configured.
internal static let emailNotConfigured = L10n.tr("Localizable", "global.messages.email_not_configured")
/// Passepartout is an user-friendly, open source OpenVPN client for iOS and macOS
/// Passepartout is an user-friendly, open source OpenVPN / WireGuard client for iOS and macOS
internal static let share = L10n.tr("Localizable", "global.messages.share")
}
internal enum Placeholders {
@ -449,6 +433,8 @@ internal enum L10n {
internal static let bytes = L10n.tr("Localizable", "global.strings.bytes")
/// Cancel
internal static let cancel = L10n.tr("Localizable", "global.strings.cancel")
/// Configuration
internal static let configuration = L10n.tr("Localizable", "global.strings.configuration")
/// Default
internal static let `default` = L10n.tr("Localizable", "global.strings.default")
/// Disabled
@ -485,6 +471,10 @@ internal enum L10n {
internal static let `protocol` = L10n.tr("Localizable", "global.strings.protocol")
/// Protocols
internal static let protocols = L10n.tr("Localizable", "global.strings.protocols")
/// Provider
internal static let provider = L10n.tr("Localizable", "global.strings.provider")
/// Providers
internal static let providers = L10n.tr("Localizable", "global.strings.providers")
/// Proxy
internal static let proxy = L10n.tr("Localizable", "global.strings.proxy")
/// Public key
@ -503,51 +493,103 @@ internal enum L10n {
}
internal enum Menu {
internal enum All {
internal enum About {
/// About %@
internal static func title(_ p1: Any) -> String {
return L10n.tr("Localizable", "menu.all.about.title", String(describing: p1))
}
}
internal enum Share {
/// Share
internal static let title = L10n.tr("Localizable", "menu.all.share.title")
}
internal enum Support {
/// Support
internal static let title = L10n.tr("Localizable", "menu.all.support.title")
}
}
internal enum Contextual {
/// Invite
internal static let shareGeneric = L10n.tr("Localizable", "menu.contextual.share_generic")
/// Tweet
internal static let shareTwitter = L10n.tr("Localizable", "menu.contextual.share_twitter")
internal enum AddProfile {
/// From Files
internal static let fromFiles = L10n.tr("Localizable", "menu.contextual.add_profile.from_files")
/// From text
internal static let fromText = L10n.tr("Localizable", "menu.contextual.add_profile.from_text")
/// Add %@
internal static func imported(_ p1: Any) -> String {
return L10n.tr("Localizable", "menu.contextual.add_profile.imported", String(describing: p1))
}
}
internal enum Support {
/// Community
internal static let joinCommunity = L10n.tr("Localizable", "menu.contextual.support.join_community")
/// Review
internal static let writeReview = L10n.tr("Localizable", "menu.contextual.support.write_review")
}
}
internal enum System {
internal enum ActiveProfile {
internal enum Items {
internal enum Customize {
/// Customize...
internal static let title = L10n.tr("Localizable", "menu.active_profile.items.customize.title")
internal static let title = L10n.tr("Localizable", "menu.system.active_profile.items.customize.title")
}
}
internal enum Messages {
/// No account configured
internal static let missingCredentials = L10n.tr("Localizable", "menu.active_profile.messages.missing_credentials")
internal static let missingCredentials = L10n.tr("Localizable", "menu.system.active_profile.messages.missing_credentials")
}
internal enum Title {
/// No active profile
internal static let `none` = L10n.tr("Localizable", "menu.active_profile.title.none")
internal static let `none` = L10n.tr("Localizable", "menu.system.active_profile.title.none")
}
}
internal enum Organizer {
/// Organizer
internal static let title = L10n.tr("Localizable", "menu.organizer.title")
internal static let title = L10n.tr("Localizable", "menu.system.organizer.title")
}
internal enum Preferences {
/// Preferences
internal static let title = L10n.tr("Localizable", "menu.preferences.title")
internal static let title = L10n.tr("Localizable", "menu.system.preferences.title")
}
internal enum Quit {
/// Quit %@
internal static func title(_ p1: Any) -> String {
return L10n.tr("Localizable", "menu.quit.title", String(describing: p1))
return L10n.tr("Localizable", "menu.system.quit.title", String(describing: p1))
}
internal enum Messages {
/// The VPN, if enabled, will still run in the background. Do you want to quit?
internal static let confirm = L10n.tr("Localizable", "menu.quit.messages.confirm")
internal static let confirm = L10n.tr("Localizable", "menu.system.quit.messages.confirm")
}
}
internal enum ShareGeneric {
/// Invite a friend
internal static let caption = L10n.tr("Localizable", "menu.system.share_generic.caption")
}
internal enum ShareTwitter {
/// Tweet about it!
internal static let caption = L10n.tr("Localizable", "menu.system.share_twitter.caption")
}
internal enum Show {
/// Show
internal static let title = L10n.tr("Localizable", "menu.show.title")
internal static let title = L10n.tr("Localizable", "menu.system.show.title")
}
internal enum Support {
/// Support
internal static let title = L10n.tr("Localizable", "menu.support.title")
/// Make a donation
internal static let donate = L10n.tr("Localizable", "menu.system.support.donate")
/// Join community
internal static let joinCommunity = L10n.tr("Localizable", "menu.system.support.join_community")
/// Write a review
internal static let writeReview = L10n.tr("Localizable", "menu.system.support.write_review")
}
internal enum SwitchProfile {
/// Active profile
internal static let title = L10n.tr("Localizable", "menu.switch_profile.title")
internal static let title = L10n.tr("Localizable", "menu.system.switch_profile.title")
}
}
}
@ -651,86 +693,10 @@ internal enum L10n {
/// Remove profile
internal static let title = L10n.tr("Localizable", "organizer.alerts.remove_profile.title")
}
internal enum UninstallVpn {
/// Do you really want to erase the VPN configuration from your device settings? This may fix some broken VPN states and will not affect your provider and host profiles.
internal static let message = L10n.tr("Localizable", "organizer.alerts.uninstall_vpn.message")
}
}
internal enum Items {
internal enum About {
/// About %@
internal static func caption(_ p1: Any) -> String {
return L10n.tr("Localizable", "organizer.items.about.caption", String(describing: p1))
}
}
internal enum AddHost {
/// Add from Files
internal static let caption = L10n.tr("Localizable", "organizer.items.add_host.caption")
}
internal enum AddProvider {
/// Add new provider
internal static let caption = L10n.tr("Localizable", "organizer.items.add_provider.caption")
}
internal enum Donate {
/// Make a donation
internal static let caption = L10n.tr("Localizable", "organizer.items.donate.caption")
}
internal enum FollowTwitch {
/// Watch Passepartout on Twitch
internal static let caption = L10n.tr("Localizable", "organizer.items.follow_twitch.caption")
}
internal enum GithubSponsors {
/// Support me on GitHub
internal static let caption = L10n.tr("Localizable", "organizer.items.github_sponsors.caption")
}
internal enum JoinCommunity {
/// Join community
internal static let caption = L10n.tr("Localizable", "organizer.items.join_community.caption")
}
internal enum Profile {
internal enum Value {
/// In use
internal static let current = L10n.tr("Localizable", "organizer.items.profile.value.current")
}
}
internal enum SiriShortcuts {
/// Manage shortcuts
internal static let caption = L10n.tr("Localizable", "organizer.items.siri_shortcuts.caption")
}
internal enum Translate {
/// Offer to translate
internal static let caption = L10n.tr("Localizable", "organizer.items.translate.caption")
}
internal enum Uninstall {
/// Remove VPN configuration
internal static let caption = L10n.tr("Localizable", "organizer.items.uninstall.caption")
}
internal enum WriteReview {
/// Write a review
internal static let caption = L10n.tr("Localizable", "organizer.items.write_review.caption")
}
}
internal enum Menus {
internal enum AddProfile {
/// Add %@
internal static func imported(_ p1: Any) -> String {
return L10n.tr("Localizable", "organizer.menus.add_profile.imported", String(describing: p1))
}
}
}
internal enum Sections {
internal enum Siri {
/// Get help from Siri to speed up your most common interactions with the app.
internal static let footer = L10n.tr("Localizable", "organizer.sections.siri.footer")
}
internal enum Support {
/// Support
internal static let header = L10n.tr("Localizable", "organizer.sections.support.header")
}
internal enum Twitch {
/// Come watch me make Passepartout live on Twitch, join the chat to interact and contribute!
internal static let footer = L10n.tr("Localizable", "organizer.sections.twitch.footer")
}
internal enum Empty {
/// No profiles
internal static let noProfiles = L10n.tr("Localizable", "organizer.empty.no_profiles")
}
}
@ -809,6 +775,10 @@ internal enum L10n {
internal static let success = L10n.tr("Localizable", "profile.alerts.test_connectivity.messages.success")
}
}
internal enum UninstallVpn {
/// Do you really want to erase the VPN configuration from your device settings? This may fix some broken VPN states and will not affect your provider and host profiles.
internal static let message = L10n.tr("Localizable", "profile.alerts.uninstall_vpn.message")
}
}
internal enum Items {
internal enum Category {
@ -837,6 +807,10 @@ internal enum L10n {
/// Reconnect
internal static let caption = L10n.tr("Localizable", "profile.items.reconnect.caption")
}
internal enum Uninstall {
/// Remove VPN configuration
internal static let caption = L10n.tr("Localizable", "profile.items.uninstall.caption")
}
internal enum UseProfile {
/// Use this profile
internal static let caption = L10n.tr("Localizable", "profile.items.use_profile.caption")
@ -865,18 +839,10 @@ internal enum L10n {
}
}
internal enum Sections {
internal enum Configuration {
/// Configuration
internal static let header = L10n.tr("Localizable", "profile.sections.configuration.header")
}
internal enum Feedback {
/// Feedback
internal static let header = L10n.tr("Localizable", "profile.sections.feedback.header")
}
internal enum Provider {
/// Provider
internal static let header = L10n.tr("Localizable", "profile.sections.provider.header")
}
internal enum ProviderInfrastructure {
/// Last updated on %@.
internal static func footer(_ p1: Any) -> String {
@ -999,6 +965,10 @@ internal enum L10n {
}
}
internal enum Sections {
internal enum Add {
/// Get help from Siri to speed up your most common interactions with the app.
internal static let footer = L10n.tr("Localizable", "shortcuts.edit.sections.add.footer")
}
internal enum All {
/// Existing shortcuts
internal static let header = L10n.tr("Localizable", "shortcuts.edit.sections.all.header")

View File

@ -147,12 +147,16 @@ extension View {
"flags/\(countryCode.lowercased())"
}
var themeHostImage: String {
var themeProviderImage: String {
"externaldrive.connected.to.line.below.fill"
}
var themeHostFilesImage: String {
"folder.fill"
}
var themeProviderImage: String {
"externaldrive.connected.to.line.below.fill"
var themeHostTextImage: String {
"text.justify"
}
var themeSettingsMenuImage: String {

View File

@ -99,7 +99,7 @@ enum Unlocalized {
enum Social {
static let reddit = "Reddit"
private static let twitterHashtags = ["OpenVPN", "iOS", "macOS"]
private static let twitterHashtags = ["OpenVPN", "WireGuard", "iOS", "macOS"]
static func twitterIntent(withMessage message: String) -> URL {
var text = message
@ -206,8 +206,6 @@ enum Unlocalized {
static let changelog = "CHANGELOG"
static let faq = "FAQ"
static let alternativeTo = "AlternativeTo"
}
enum VPN {

View File

@ -123,8 +123,7 @@ extension NetworkSettingsView {
if !settings.isAutomaticDNS {
themeTextPicker(
// FIXME: l10n, refactor string id to "global.strings.configuration"
L10n.Profile.Sections.Configuration.header,
L10n.Global.Strings.configuration,
selection: $settings.dns.configurationType,
values: Network.DNSSettings.availableConfigurationTypes(forVPNProtocol: vpnProtocol),
description: \.localizedDescription
@ -217,8 +216,7 @@ extension NetworkSettingsView {
if !settings.isAutomaticProxy {
themeTextPicker(
// FIXME: l10n, refactor string id to "global.strings.configuration"
L10n.Profile.Sections.Configuration.header,
L10n.Global.Strings.configuration,
selection: $settings.proxy.configurationType,
values: Network.ProxySettings.availableConfigurationTypes,
description: \.localizedDescription

View File

@ -37,19 +37,23 @@ extension OrganizerView {
_isHostFileImporterPresented = isHostFileImporterPresented
}
// FIXME: l10n, shorten menu captions
var body: some View {
Menu {
Button {
modalType = .addProvider
} label: {
Label(L10n.Organizer.Items.AddProvider.caption, systemImage: themeProviderImage)
Label(L10n.Global.Strings.provider, systemImage: themeProviderImage)
}
Button {
presentHostFileImporter()
} label: {
Label(L10n.Organizer.Items.AddHost.caption, systemImage: themeHostImage)
Label(L10n.Menu.Contextual.AddProfile.fromFiles, systemImage: themeHostFilesImage)
}
// Button {
// // TODO: add profile from text
// } label: {
// Label(L10n.Organizer.Menus.AddProfile.fromText, systemImage: themeHostTextImage)
// }
if let urls = importedURLs, !urls.isEmpty {
Divider()
ForEach(urls, id: \.absoluteString, content: importedURLRow)
@ -60,7 +64,7 @@ extension OrganizerView {
}
private func importedURLRow(_ url: URL) -> some View {
Button(L10n.Organizer.Menus.AddProfile.imported(url.lastPathComponent)) {
Button(L10n.Menu.Contextual.AddProfile.imported(url.lastPathComponent)) {
presentAddHost(withURL: url, deletingURLOnSuccess: true)
}
}

View File

@ -79,10 +79,9 @@ extension OrganizerView {
}.animation(.default, value: profileManager.headers)
}
// FIXME: l10n
private var emptyView: some View {
VStack {
Text("No profiles")
Text(L10n.Organizer.Empty.noProfiles)
.themeInformativeText()
}
}

View File

@ -36,8 +36,6 @@ extension OrganizerView {
private let redditURL = Constants.URLs.subreddit
private let alternativeToURL = Constants.URLs.alternativeTo
private let shareMessage = L10n.Global.Messages.share
private let appName = Unlocalized.appName
@ -50,11 +48,10 @@ extension OrganizerView {
var body: some View {
Menu {
Menu(L10n.Menu.Support.title) {
Menu(L10n.Menu.All.Support.title) {
supportMenu
}
// FIXME: l10n, refactor string id to "menu.share.title"
Menu(L10n.About.Sections.Share.header) {
Menu(L10n.Menu.All.Share.title) {
shareMenu
}
Divider()
@ -71,30 +68,29 @@ extension OrganizerView {
Button {
modalType = .donate
} label: {
Label(L10n.Organizer.Items.Donate.caption, systemImage: themeDonateImage)
Label(L10n.Donate.title, systemImage: themeDonateImage)
}.disabled(!productManager.canMakePayments())
Button {
URL.openURL(redditURL)
} label: {
Label(L10n.Organizer.Items.JoinCommunity.caption, systemImage: themeRedditImage)
Label(L10n.Menu.Contextual.Support.joinCommunity, systemImage: themeRedditImage)
}
Button(action: submitReview) {
Label(L10n.Organizer.Items.WriteReview.caption, systemImage: themeWriteReviewImage)
Label(L10n.Menu.Contextual.Support.writeReview, systemImage: themeWriteReviewImage)
}
}
}
private var shareMenu: some View {
Group {
Button(L10n.About.Items.ShareTwitter.caption, action: shareOnTwitter)
Button(L10n.About.Items.ShareGeneric.caption, action: shareWithFriend)
Button(Unlocalized.About.alternativeTo, action: shareAlternativeTo)
Button(L10n.Menu.Contextual.shareTwitter, action: shareOnTwitter)
Button(L10n.Menu.Contextual.shareGeneric, action: shareWithFriend)
}
}
private var aboutButton: some View {
Button(L10n.Organizer.Items.About.caption(appName)) {
Button(L10n.Menu.All.About.title("")) {
presentAbout()
}
}
@ -109,10 +105,6 @@ extension OrganizerView {
modalType = .share([shareMessage])
}
private func shareAlternativeTo() {
URL.openURL(alternativeToURL)
}
private func submitReview() {
let reviewURL = Reviewer.urlForReview(withAppId: Constants.App.appStoreId)
URL.openURL(reviewURL)

View File

@ -206,7 +206,7 @@ extension OrganizerView {
case .failure(let error):
alertType = .error(
L10n.Organizer.Items.AddHost.caption,
L10n.Menu.Contextual.AddProfile.fromFiles,
error
)
}

View File

@ -50,7 +50,7 @@ extension ProfileView {
var body: some View {
Section(
header: Text(L10n.Profile.Sections.Configuration.header)
header: Text(L10n.Global.Strings.configuration)
) {
if currentProfile.value.vpnProtocols.count > 1 {
themeTextPicker(

View File

@ -164,14 +164,14 @@ extension ProfileView {
Button {
isAskingUninstallVPN = true
} label: {
Label(L10n.Organizer.Items.Uninstall.caption, systemImage: themeDeleteImage)
Label(L10n.Profile.Items.Uninstall.caption, systemImage: themeDeleteImage)
}.foregroundColor(themeErrorColor)
.actionSheet(isPresented: $isAskingUninstallVPN) {
ActionSheet(
title: Text(L10n.Organizer.Alerts.UninstallVpn.message),
title: Text(L10n.Profile.Alerts.UninstallVpn.message),
message: nil,
buttons: [
.destructive(Text(L10n.Organizer.Items.Uninstall.caption), action: {
.destructive(Text(L10n.Profile.Items.Uninstall.caption), action: {
Task {
await vpnManager.uninstall()
}

View File

@ -80,7 +80,7 @@ struct ShortcutsView: View {
modalType = nil
}
.navigationTitle(L10n.Organizer.Items.SiriShortcuts.caption)
.navigationTitle(Unlocalized.Other.siri)
.themeSecondaryView()
}
@ -100,8 +100,7 @@ struct ShortcutsView: View {
private var addSection: some View {
Section(
// FIXME: l10n, string id
footer: Text(L10n.Organizer.Sections.Siri.footer)
footer: Text(L10n.Shortcuts.Edit.Sections.Add.footer)
) {
NavigationLink(isActive: $isNavigationPresented) {
AddView(

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Abbrechen";
"global.strings.next" = "Weiter";
@ -15,6 +15,9 @@
"global.strings.add" = "Hinzufügen";
"global.strings.default" = "Default";
"global.strings.name" = "Name";
"global.strings.provider" = "Anbieter";
"global.strings.providers" = "Anbieter";
"global.strings.configuration" = "Konfiguration";
"global.strings.address" = "Adresse";
"global.strings.addresses" = "Adressen";
"global.strings.port" = "Port";
@ -41,7 +44,7 @@
"global.strings.translations" = "Übersetzungen";
"global.messages.email_not_configured" = "Es wurde kein Email-Account konfiguriert.";
"global.messages.share" = "Passepartout ist ein Benutzerfreundlicher, Open Source OpenVPN client für iOS und macOS";
"global.messages.share" = "Passepartout ist ein Benutzerfreundlicher, Open Source OpenVPN / WireGuard client für iOS und macOS";
"global.placeholders.profile_name" = "Mein Profil";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Fehlender Server";
"global.errors.missing_provider_preset" = "Fehlende Voreinstellung";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Support";
"menu.all.share.title" = "Teilen";
"menu.all.about.title" = "Über %@";
"menu.contextual.add_profile.imported" = "%@ hinzufügen";
"menu.system.show.title" = "Anzeigen";
"menu.system.switch_profile.title" = "Aktives Profil";
"menu.system.active_profile.title.none" = "Keine aktiven Profile";
"menu.system.active_profile.items.customize.title" = "Anpassen...";
"menu.system.active_profile.messages.missing_credentials" = "Es wurde keine Konto konfiguriert";
"menu.system.organizer.title" = "Organizer";
"menu.system.preferences.title" = "Einstellungen";
"menu.system.support.donate" = "Spenden";
"menu.system.support.join_community" = "Community beitreten";
"menu.system.support.write_review" = "Rezension schreiben";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Darüber Twittern!";
"menu.system.share_generic.caption" = "Freund einladen";
"menu.system.quit.title" = "%@ beenden";
"menu.system.quit.messages.confirm" = "Wenn das VPN aktiviert wurde, läuft es weiter im Hintergrund. Möchtest du beenden?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Verbinde";
"tunnelkit.vpn.active" = "Aktiv";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Bitte die Verschlüsselungs-Passphrase eingeben.";
"tunnelkit.errors.openvpn.decryption" = "Die Konfiguration enthält einen verschlüsselten Private Key und konnte nicht entschlüsselt werden. Bitte überprüfe ob du die Passphrase eingegeben hast.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Come watch me make Passepartout live on Twitch, join the chat to interact and contribute!";
"organizer.sections.siri.footer" = "Erhalte Hilfe von Siri um deine üblichen Interaktionen mit der App zu beschleunigen.";
"organizer.sections.support.header" = "Support";
"organizer.items.follow_twitch.caption" = "Passepartout auf Twitch ansehen";
"organizer.items.profile.value.current" = "In Benutzung";
"organizer.items.siri_shortcuts.caption" = "Kurzbefehle verwalten";
"organizer.items.join_community.caption" = "Community beitreten";
"organizer.items.write_review.caption" = "Rezension schreiben";
"organizer.items.donate.caption" = "Spenden";
"organizer.items.github_sponsors.caption" = "Unterstütze mich bei GitHub";
"organizer.items.translate.caption" = "Übersetzung anbieten";
"organizer.items.about.caption" = "Über %@";
"organizer.items.uninstall.caption" = "VPN-Konfiguration entfernen";
"organizer.items.add_provider.caption" = "Neuen Anbieter hinzufügen";
"organizer.items.add_host.caption" = "Aus Dateien hinzufügen";
"organizer.alerts.reddit.message" = "Wusstest du, daß Passepartout einen Subreddit hat? Abonniere ihn für Updates oder um Features, Probleme, neue Plattformen zu diskutieren - oder was auch immer du möchtest.\n\nDies ist auch ein guter Weg zu zeigen dass dir dieses Projekt etwas bedeutet.";
"organizer.alerts.reddit.buttons.subscribe" = "Jetzt abbonnieren!";
"organizer.alerts.reddit.buttons.remind" = "Später erinnern";
"organizer.alerts.reddit.buttons.never" = "Nicht erneut fragen";
"organizer.alerts.uninstall_vpn.message" = "Möchtest du wirklich die VPN-Konfiguration aus deinen Geräte-Einstellungen löschen? Dies behebt möglicherweise manche kaputten VPN-Zustände und beeinflusst nicht deine Anbieter und Hosts-Profile.";
"organizer.alerts.remove_profile.title" = "Profil entfernen";
"organizer.alerts.remove_profile.message" = "Bist du sicher, dass du das Profil %@ löschen möchtest?";
"organizer.menus.add_profile.imported" = "%@ hinzufügen";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Neues Profil";
"add_profile.shared.views.existing.header" = "Bestehende Profile";
"add_profile.shared.alerts.overwrite.message" = "Ein Profil mit identischem Namen existiert bereits. Ersetzen?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Passphrase eingeben";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Anbieter";
"add_profile.provider.sections.vpn.footer" = "Hier findest du einige Anbieter mit voreingestellten Konfigurationsprofilen.";
"add_profile.provider.items.update_list" = "Aktualisiere Liste";
"add_profile.provider.errors.no_default_server" = "Keine Server gefunden.";
// MARK: ProfileView
"profile.sections.provider.header" = "Anbieter";
/* MARK: ProfileView */
"profile.welcome.message" = "Willkommen bei Passepartout!\n\nBenutze den Organizer um ein neues Profil hinzuzufügen.";
"profile.sections.vpn.footer" = "Die Verbindung wird immer aufgebaut wenn notwendig.";
"profile.sections.status.header" = "Verbindung";
"profile.sections.configuration.header" = "Konfiguration";
"profile.sections.provider_infrastructure.footer" = "Zuletzt aktualisiert am %@.";
"profile.sections.vpn_survives_sleep.footer" = "Deaktivieren um die Batterielaufzeit zu verbessern, allerdings verzögert sich der Verbindungsaufbau beim Aufwachen.";
"profile.sections.vpn_resolves_hostname.footer" = "Bevorzugt in den meisten Netzwerken und benötigt in manchen IPv6 Netzwerken. Deaktivieren wo DNS geblockt ist oder um die Aushandlung zu beschleunigen bei langsam antwortenden DNS.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Verbindung aktiv halten trotz Schlafmodus";
"profile.items.vpn_resolves_hostname.caption" = "Server Hostname auflösen";
"profile.items.reconnect.caption" = "Erneut verbinden";
"profile.items.uninstall.caption" = "VPN-Konfiguration entfernen";
"profile.alerts.rename.title" = "Profil umbenennen";
"profile.alerts.reconnect_vpn.message" = "Möchtest du erneut zum VPN verbinden?";
"profile.alerts.uninstall_vpn.message" = "Möchtest du wirklich die VPN-Konfiguration aus deinen Geräte-Einstellungen löschen? Dies behebt möglicherweise manche kaputten VPN-Zustände und beeinflusst nicht deine Anbieter und Hosts-Profile.";
"profile.alerts.test_connectivity.title" = "Konnektivität";
"profile.alerts.test_connectivity.messages.success" = "Dein Gerät ist mit dem Internet verbunden!";
"profile.alerts.test_connectivity.messages.failure" = "Dein Gerät hat keine Verbindung mit dem Internet, bitte prüfe deine Profil-Parameter.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Ort";
"provider.location.sections.empty_favorites.footer" = "Wische nach Links um einen Standort zu den Favoriten hinzuzufügen oder zu entfernen.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Voreinstellung";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Account";
"account.sections.credentials.header" = "Zugangsdaten";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Benutze deine %@ Web-Zugangsdaten. Dein Benutzername ist üblicherweise deine Email.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Deine Zugangsdaten für %@ findest du im OpenVPN Config Generator auf der Webseite.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Vorinstallierter Key";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "nach %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Endpunkt zufällig wählen";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Netzwerk-Einstellungen";
"network_settings.sections.choices.header" = "Überschreiben";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Domäne umgehen";
"network_settings.items.add_proxy_bypass.caption" = "Zu umgehende Domäne hinzufügen";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Vertrauenswürdige Netzwerke";
"on_demand.sections.policy.footer" = "Wenn ein vertrauenswürdiges Netzwerk verbunden wird, wird normalerweise die VPN-Verbindung beendet und bleibt deaktiviert. Deaktiviere diese Option um dieses Verhalten zu unterbinden.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Hier ein Häkchen setzen, um jeder Kabelverbindung zu vertrauen.";
"on_demand.items.policy.caption" = "Vertrauen deaktiviert VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnose";
"diagnostics.sections.debug_log.footer" = "Zensier-Status wird aktiv nach erneutem Verbinden. Netzwerk-Daten sind Hostnamen, IP-Adressen, Routingtabellen, SSID. Zugangsdaten und Private Keys werden nie gelogged.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Um das aktuelle Debug-Log sicher zurückzusetzen und die neuen Zensier-Paramenter anzuwenden, musst du das VPN jetzt erneut verbinden.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Debug log";
"debug_log.buttons.copy" = "Kopieren";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Problem melden";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Füge Kurzbefehl hinzu";
"shortcuts.add.sections.wifi.header" = "WLAN";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Kurzbefehle bearbeiten";
"shortcuts.edit.sections.all.header" = "Existierende Kurzbefehle";
"shortcuts.edit.sections.add.footer" = "Erhalte Hilfe von Siri um deine üblichen Interaktionen mit der App zu beschleunigen.";
"shortcuts.edit.items.add_shortcut.caption" = "Kurzbefehl hinzufügen";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Kaufen";
"paywall.sections.products.footer" = "Jedes Produkt ist ein einmaliger Kauf. Der Kauf eines Providers beinhaltet kein VPN-Abonnement.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Einkäufe wiederherstellen";
"paywall.items.restore.description" = "Wenn Sie diese App oder Funktion in der Vergangenheit gekauft haben, können Sie Ihre Einkäufe wiederherstellen und dieser Bildschirm wird nicht mehr angezeigt.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Spenden";
"donate.sections.one_time.header" = "Einmalig";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "Das bedeutet mir viel und ich hoffe wirklich dass du die App weiterhin benutzt und unterstützt.";
"donate.alerts.purchase.failure.message" = "Konnte Spende nicht durchführen. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "Über";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Teilen";
"about.items.credits.caption" = "Credits";
"about.items.website.caption" = "Homepage";
"about.items.disclaimer.caption" = "Haftungsausschluss";
"about.items.privacy_policy.caption" = "Datenschutzrichtlinie";
"about.items.share_twitter.caption" = "Darüber Twittern!";
"about.items.share_generic.caption" = "Freund einladen";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Version";
"version.labels.intro" = "Passepartout und TunnelKit sind geschrieben und gewartet von Davide De Rosa (keeshux).\n\nQuellcode für Passepartout und TunnelKit ist öffentlich auf GitHub unter GPLv3 verfügbar, du findest die Links auf der Homepage.\n\nPassepartout ist ein inoffizieller client und auf keine Art und Weise mit OpenVPN Inc. verbunden.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Credits";
"credits.sections.licenses.header" = "Lizenzen";
"credits.sections.notices.header" = "Notizen";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Einstellungen";
"preferences.sections.general.header" = "Allgemein";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Hier ein Häkchen setzen, um die App beim Systemstart oder der Anmeldung automatisch zu starten.";
"preferences.items.confirm_quit.caption" = "Beenden bestätigen";
"preferences.items.confirm_quit.footer" = "Hier ein Häkchen setzen, um einen Hinweis zur Bestätigung des Beendens anzuzeigen.";
// MARK: Menu (macOS)
"menu.show.title" = "Anzeigen";
"menu.switch_profile.title" = "Aktives Profil";
"menu.active_profile.title.none" = "Keine aktiven Profile";
"menu.active_profile.items.customize.title" = "Anpassen...";
"menu.active_profile.messages.missing_credentials" = "Es wurde keine Konto konfiguriert";
"menu.organizer.title" = "Organizer";
"menu.preferences.title" = "Einstellungen";
"menu.support.title" = "Support";
"menu.quit.title" = "%@ beenden";
"menu.quit.messages.confirm" = "Wenn das VPN aktiviert wurde, läuft es weiter im Hintergrund. Möchtest du beenden?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Ακύρωση";
"global.strings.next" = "Επόμενο";
@ -15,6 +15,9 @@
"global.strings.add" = "Προσθήκη";
"global.strings.default" = "Default";
"global.strings.name" = "Όνομα";
"global.strings.provider" = "Πάροχος";
"global.strings.providers" = "Πάροχοι";
"global.strings.configuration" = "Ρύθμιση";
"global.strings.address" = "Διεύθυνση";
"global.strings.addresses" = "Διεθύνσεις";
"global.strings.port" = "Θύρα";
@ -41,7 +44,7 @@
"global.strings.translations" = "Μεταφράσεις";
"global.messages.email_not_configured" = "Δεν έχει ρυθμιστεί λογαριασμός ηλεκτρονικού ταχυδρομείου.";
"global.messages.share" = "Το Passepartout είναι φιλικό προς το χρήστη, ανοιχτού κώδικα OpenVPN πρόγραμμα για iOS και macOS";
"global.messages.share" = "Το Passepartout είναι φιλικό προς το χρήστη, ανοιχτού κώδικα OpenVPN / WireGuard πρόγραμμα για iOS και macOS";
"global.placeholders.profile_name" = "Το προφίλ μου";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Λείπει διακομιστής";
"global.errors.missing_provider_preset" = "Λείπει προεπιλογή";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Υποστήριξη";
"menu.all.share.title" = "Διαμοιράστε";
"menu.all.about.title" = "Σχετικά με %@";
"menu.contextual.add_profile.imported" = "Προσθήκη %@";
"menu.system.show.title" = "Προβολή";
"menu.system.switch_profile.title" = "Ενεργό προφίλ";
"menu.system.active_profile.title.none" = "Δεν υπάρχει ενεργό προφίλ";
"menu.system.active_profile.items.customize.title" = "Προσαρμογή...";
"menu.system.active_profile.messages.missing_credentials" = "Δεν έχει διαμορφωθεί λογαριασμός";
"menu.system.organizer.title" = "Διοργανωτής";
"menu.system.preferences.title" = "Προτιμήσεις";
"menu.system.support.donate" = "Κάντε μια δωρεά";
"menu.system.support.join_community" = "Συμμετοχή στην κοινότητα";
"menu.system.support.write_review" = "Γράψτε μια κριτική";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Tweet γι 'αυτό!";
"menu.system.share_generic.caption" = "Πρόσκληση Φίλου";
"menu.system.quit.title" = "Διακοπή %@";
"menu.system.quit.messages.confirm" = "Το VPN, αν είναι ενεργοποιημένο, θα εξακολουθεί να εκτελείται στο παρασκήνιο. Θέλετε να το διακόψετε;";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Προσπάθεια Σύνδεσης";
"tunnelkit.vpn.active" = "Ενεργό";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Εισαγάγετε το κωδικό κρυπτογράφησης.";
"tunnelkit.errors.openvpn.decryption" = "Η διαμόρφωση περιέχει κρυπτογραφημένο ιδιωτικό κλειδί και δεν ήταν δυνατό να αποκρυπτογραφηθεί. Δείτε πάλι το κωδικό που καταχωρίσατε.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Ελάτε να με παρακολουθήσετε ζωντανά το Passepartout στο Twitch, εγγραφείτε στη συνομιλία για να αλληλεπιδράσετε και να συνεισφέρετε!";
"organizer.sections.siri.footer" = "Get help from Siri to speed up your most common interactions with the app.";
"organizer.sections.support.header" = "Υποστήριξη";
"organizer.items.follow_twitch.caption" = "Παρακολουθήστε το Passepartout στο Twitch";
"organizer.items.profile.value.current" = "Σε χρήση";
"organizer.items.siri_shortcuts.caption" = "Διαχείριση Συντομεύσεων";
"organizer.items.join_community.caption" = "Συμμετοχή στην κοινότητα";
"organizer.items.write_review.caption" = "Γράψτε μια κριτική";
"organizer.items.donate.caption" = "Κάντε μια δωρεά";
"organizer.items.github_sponsors.caption" = "Υποστηρίξτε με στο GitHub";
"organizer.items.translate.caption" = "Βοηθήστε στη μετάφραση";
"organizer.items.about.caption" = "Σχετικά με %@";
"organizer.items.uninstall.caption" = "Αφαίρεση ρύθμισης VPN";
"organizer.items.add_provider.caption" = "Προσθήκη νέου παρόχου";
"organizer.items.add_host.caption" = "Προσθήκη από αρχεία";
"organizer.alerts.reddit.message" = "Γνωρίζατε ότι το Passepartout έχει subreddit? Εγγραφείτε για ενημερώσεις ή για να συζητήσετε προβλήματα της εφαρμογές, νέες δυνατότητες και άλλα.\n\nΕίναι επίσης ένας ωραίος τρόπος να δείξετε ότι ενδιαφέρεστε για τη προσπάθεια αυτή.";
"organizer.alerts.reddit.buttons.subscribe" = "Εγγραφή τώρα!";
"organizer.alerts.reddit.buttons.remind" = "Υπενθύμιση Αργότερα";
"organizer.alerts.reddit.buttons.never" = "Μη με ρωτήσεις ξανά";
"organizer.alerts.uninstall_vpn.message" = "Θέλετε πραγματικά να διαγράψετε τη διαμόρφωση VPN από τις ρυθμίσεις της συσκευής σας; Αυτό μπορεί να διορθώσει κάποιες καταστραμμένες καταστάσεις VPN και δεν θα επηρεάσει τα προφίλ του παροχέα και του διακομιστή σας.";
"organizer.alerts.remove_profile.title" = "Κατάργηση προφίλ";
"organizer.alerts.remove_profile.message" = "Είστε βέβαιοι ότι θέλετε να διαγράψετε το προφίλ %@;";
"organizer.menus.add_profile.imported" = "Προσθήκη %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Νέο προφίλ";
"add_profile.shared.views.existing.header" = "Υπάρχον Προφίλ";
"add_profile.shared.alerts.overwrite.message" = "Ένα προφίλ με το ίδιο όνομα υπάρχει ήδη. Αντικατάσταση;";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Εισαγωγή φράσης εισόδου";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Πάροχοι";
"add_profile.provider.sections.vpn.footer" = "Εδώ θα βρείτε ορισμένους παρόχους με προκαθορισμένες ρυθμίσεις προφίλ.";
"add_profile.provider.items.update_list" = "Αναβάθμιση Λίστας";
"add_profile.provider.errors.no_default_server" = "Δεν βρέθηκε διακομιστής";
// MARK: ProfileView
"profile.sections.provider.header" = "Πάροχος";
/* MARK: ProfileView */
"profile.welcome.message" = "Καλώς Ήλθατε στο Passepartout!\n\nΧρησιμοποιήστε τον διοργανωτή για να προσθέσετε ένα νέο προφίλ.";
"profile.sections.vpn.footer" = "Η σύνδεση θα πραγματοποιηθεί όποτε είναι απαραίτητο.";
"profile.sections.status.header" = "Σύνδεση";
"profile.sections.configuration.header" = "Ρύθμιση";
"profile.sections.provider_infrastructure.footer" = "Τελευταία ενημέρωση στις %@.";
"profile.sections.vpn_survives_sleep.footer" = "Απενεργοποιήστε για να βελτιώσετε τη χρήση της μπαταρίας, εις βάρος των περιστασιακών επιβραδύνσεων που οφείλονται σε επανασύνδεση αφύπνισης.";
"profile.sections.vpn_resolves_hostname.footer" = "Προτιμάται στα περισσότερα δίκτυα και απαιτείται σε ορισμένα δίκτυα IPv6. Απενεργοποιήστε το εκεί που μπλοκάρεται το DNS ή για να επιταχύνετε τη επικοινωνία όταν το DNS είναι αργό για να ανταποκριθεί.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Κρατήστε ζωντανό στον ύπνο";
"profile.items.vpn_resolves_hostname.caption" = "Επίλυση του ονόματος σέρβερ διακομιστή";
"profile.items.reconnect.caption" = "Επανασύνδεση";
"profile.items.uninstall.caption" = "Αφαίρεση ρύθμισης VPN";
"profile.alerts.rename.title" = "Μετονομασία προφίλ";
"profile.alerts.reconnect_vpn.message" = "Θέλετε να συνδεθείτε ξανά με το VPN;";
"profile.alerts.uninstall_vpn.message" = "Θέλετε πραγματικά να διαγράψετε τη διαμόρφωση VPN από τις ρυθμίσεις της συσκευής σας; Αυτό μπορεί να διορθώσει κάποιες καταστραμμένες καταστάσεις VPN και δεν θα επηρεάσει τα προφίλ του παροχέα και του διακομιστή σας.";
"profile.alerts.test_connectivity.title" = "Συνδεσιμότητα";
"profile.alerts.test_connectivity.messages.success" = "Η συσκευή σας είναι συνδεδεμένη στο Διαδίκτυο!";
"profile.alerts.test_connectivity.messages.failure" = "Η συσκευή σας δεν διαθέτει σύνδεση στο Internet, παρακαλούμε να ελέγξετε τις παραμέτρους του προφίλ σας.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Τοποθεσία";
"provider.location.sections.empty_favorites.footer" = "Σείρετε αριστερά για να προσθέσετε ή να αφαιρέσεται από τα αγαπημένα.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Προεπιλογή";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Λογαριασμός";
"account.sections.credentials.header" = "Διαπιστευτήρια";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Χρησιμοποιήστε τα διαπιστευτήρια ιστοτόπου %@. Το όνομα χρήστη είναι συνήθως το ηλεκτρονικό σας ταχυδρομείο.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Βρείτε τα διαπιστευτήριά σας %@ στο OpenVPN Config Generator στον ιστότοπο.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Ομότιμο";
"endpoint.wireguard.items.preshared_key.caption" = "Κλειδί προδιαμοιρασμού";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "μετά από %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Τυχαίο τελικό σημείο";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Ρυθμίσεις Δικτύου";
"network_settings.sections.choices.header" = "Παράκαμψη";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Παράκαμψη Τομέα";
"network_settings.items.add_proxy_bypass.caption" = "Προσθήκη τομέα παράκαμψης";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Αξιόπιστα δίκτυα";
"on_demand.sections.policy.footer" = "Κατά την είσοδο σε ένα αξιόπιστο δίκτυο, το VPN απενεργοποιείται κανονικά και διατηρείται αποσυνδεδεμένο. Απενεργοποιήστε αυτήν την επιλογή για να μην έχετε μια τέτοια συμπεριφορά.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Επιλέξτε για να εμπιστευθείτε οποιαδήποτε ενσύρματη σύνδεση καλωδίου.";
"on_demand.items.policy.caption" = "Τα αξιόπιστα δίκτυα απενεργοποιούν το VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Διαγνωστικά";
"diagnostics.sections.debug_log.footer" = "Η κατάσταση κάλυψης θα είναι αποτελεσματική μετά την επανασύνδεση. Τα δεδομένα δικτύου είναι του διακομιστή, διευθύνσεις IP, δρομολόγηση και SSID. Τα διαπιστευτήρια και τα ιδιωτικά κλειδιά δεν καταγράφονται ανεξάρτητα.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Για να επαναφέρετε με ασφάλεια την τρέχουσα καταγραφή εντοπισμού σφαλμάτων και να εφαρμόσετε τη νέα προτίμηση κάλυψης, πρέπει να συνδεθείτε ξανά με το VPN.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Μητρώο εντοπισμού σφαλμάτων";
"debug_log.buttons.copy" = "Αντιγραφή";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Αναφορά Προβλήματος";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Προσθήκη Συντόμευσης";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Διαχείριση συντομεύσεων";
"shortcuts.edit.sections.all.header" = "Υπάρχουσες συντομεύσεις";
"shortcuts.edit.sections.add.footer" = "Get help from Siri to speed up your most common interactions with the app.";
"shortcuts.edit.items.add_shortcut.caption" = "Προσθήκη Συντόμευσης";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Αγορά";
"paywall.sections.products.footer" = "Κάθε προϊόν είναι μια αγορά. Οι αγορές παρόχων δεν περιλαμβάνουν τη συνδρομή VPN.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Επαναφορά Αγορών";
"paywall.items.restore.description" = "Εαν αγοράσατε την εφαρμογή στο παρελθόν, μπορείτε να κάνετε επαναφορά αγορών και αυτή η οθόνη δε θα εμφανιστεί ξανά.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Δωρεά";
"donate.sections.one_time.header" = "Μια Φορά";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "Αυτό σημαίνει πολλά για μένα και πραγματικά ελπίζω να συνεχίσετε να χρησιμοποιείτε και να προωθείτε αυτήν την εφαρμογή.";
"donate.alerts.purchase.failure.message" = "Δεν είναι δυνατή η εκτέλεση της δωρεάς. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "Περι";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Διαμοιράστε";
"about.items.credits.caption" = "Συντελεστές";
"about.items.website.caption" = "Αρχική Σελίδα";
"about.items.disclaimer.caption" = "Άρνηση Ευθύνης";
"about.items.privacy_policy.caption" = "Πολιτική Απορρήτου";
"about.items.share_twitter.caption" = "Tweet γι 'αυτό!";
"about.items.share_generic.caption" = "Πρόσκληση Φίλου";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Έκδοση";
"version.labels.intro" = "Το Passepartout και το TunnelKit γράφονται και συντηρούνται από τον Davide De Rosa (keeshux).\n\nΟ πηγαίος κώδικας για το Passepartout και το TunnelKit είναι δημόσια διαθέσιμε στο GitHub υπό το GPLv3, μπορείτε να βρείτε συνδέσμους στην αρχική σελίδα.\n\nΤο Passepartout είναι ένας μη επίσημος πελάτης και δεν είναι συνδεδεμένος με το OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Συντελεστές";
"credits.sections.licenses.header" = "Άδειες";
"credits.sections.notices.header" = "Σημειώσεις";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Προτιμήσεις";
"preferences.sections.general.header" = "Γενικός";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Επιλέξτε για αυτόματη εκκίνηση της εφαρμογής κατά την εκκίνηση ή τη σύνδεση.";
"preferences.items.confirm_quit.caption" = "Επιβεβαίωση διακοπής";
"preferences.items.confirm_quit.footer" = "Επιλέξτε για παρουσίαση ειδοποίησης ότι επιβεβαιώνεται η διακοπή.";
// MARK: Menu (macOS)
"menu.show.title" = "Προβολή";
"menu.switch_profile.title" = "Ενεργό προφίλ";
"menu.active_profile.title.none" = "Δεν υπάρχει ενεργό προφίλ";
"menu.active_profile.items.customize.title" = "Προσαρμογή...";
"menu.active_profile.messages.missing_credentials" = "Δεν έχει διαμορφωθεί λογαριασμός";
"menu.organizer.title" = "Διοργανωτής";
"menu.preferences.title" = "Προτιμήσεις";
"menu.support.title" = "Υποστήριξη";
"menu.quit.title" = "Διακοπή %@";
"menu.quit.messages.confirm" = "Το VPN, αν είναι ενεργοποιημένο, θα εξακολουθεί να εκτελείται στο παρασκήνιο. Θέλετε να το διακόψετε;";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Cancel";
"global.strings.next" = "Next";
@ -15,6 +15,9 @@
"global.strings.add" = "Add";
"global.strings.default" = "Default";
"global.strings.name" = "Name";
"global.strings.provider" = "Provider";
"global.strings.providers" = "Providers";
"global.strings.configuration" = "Configuration";
"global.strings.address" = "Address";
"global.strings.addresses" = "Addresses";
"global.strings.port" = "Port";
@ -41,16 +44,46 @@
"global.strings.translations" = "Translations";
"global.messages.email_not_configured" = "No e-mail account is configured.";
"global.messages.share" = "Passepartout is an user-friendly, open source OpenVPN client for iOS and macOS";
"global.messages.share" = "Passepartout is an user-friendly, open source OpenVPN / WireGuard client for iOS and macOS";
"global.placeholders.profile_name" = "My profile";
"global.errors.missing_profile" = "Missing profile";
"global.errors.missing_account" = "Missing account";
"global.errors.missing_provider_server" = "Missing server";
"global.errors.missing_provider_server" = "Missing location";
"global.errors.missing_provider_preset" = "Missing preset";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Support";
"menu.all.share.title" = "Share";
"menu.all.about.title" = "About %@";
"menu.contextual.add_profile.from_files" = "From Files";
"menu.contextual.add_profile.from_text" = "From text";
"menu.contextual.add_profile.imported" = "Add %@";
"menu.contextual.support.write_review" = "Review";
"menu.contextual.support.join_community" = "Community";
"menu.contextual.share_twitter" = "Tweet";
"menu.contextual.share_generic" = "Invite";
"menu.system.show.title" = "Show";
"menu.system.switch_profile.title" = "Active profile";
"menu.system.active_profile.title.none" = "No active profile";
"menu.system.active_profile.items.customize.title" = "Customize...";
"menu.system.active_profile.messages.missing_credentials" = "No account configured";
"menu.system.organizer.title" = "Organizer";
"menu.system.preferences.title" = "Preferences";
"menu.system.support.donate" = "Make a donation";
"menu.system.support.join_community" = "Join community";
"menu.system.support.write_review" = "Write a review";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Tweet about it!";
"menu.system.share_generic.caption" = "Invite a friend";
"menu.system.quit.title" = "Quit %@";
"menu.system.quit.messages.confirm" = "The VPN, if enabled, will still run in the background. Do you want to quit?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Connecting";
"tunnelkit.vpn.active" = "Active";
@ -78,61 +111,40 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Please enter the encryption passphrase.";
"tunnelkit.errors.openvpn.decryption" = "Unable to decrypt private key.";
// MARK: OrganizerView
/* MARK: OrganizerView */
"organizer.sections.twitch.footer" = "Come watch me make Passepartout live on Twitch, join the chat to interact and contribute!";
"organizer.sections.siri.footer" = "Get help from Siri to speed up your most common interactions with the app.";
"organizer.sections.support.header" = "Support";
"organizer.items.follow_twitch.caption" = "Watch Passepartout on Twitch";
"organizer.items.profile.value.current" = "In use";
"organizer.items.siri_shortcuts.caption" = "Manage shortcuts";
"organizer.items.join_community.caption" = "Join community";
"organizer.items.write_review.caption" = "Write a review";
"organizer.items.donate.caption" = "Make a donation";
"organizer.items.github_sponsors.caption" = "Support me on GitHub";
"organizer.items.translate.caption" = "Offer to translate";
"organizer.items.about.caption" = "About %@";
"organizer.items.uninstall.caption" = "Remove VPN configuration";
"organizer.items.add_provider.caption" = "Add new provider";
"organizer.items.add_host.caption" = "Add from Files";
"organizer.empty.no_profiles" = "No profiles";
"organizer.alerts.reddit.message" = "Did you know that Passepartout has a subreddit? Subscribe for updates or to discuss issues, features, new platforms or whatever you like.\n\nIt's also a great way to show you care about this project.";
"organizer.alerts.reddit.buttons.subscribe" = "Subscribe now!";
"organizer.alerts.reddit.buttons.remind" = "Remind me later";
"organizer.alerts.reddit.buttons.never" = "Don't ask again";
"organizer.alerts.uninstall_vpn.message" = "Do you really want to erase the VPN configuration from your device settings? This may fix some broken VPN states and will not affect your provider and host profiles.";
"organizer.alerts.remove_profile.title" = "Remove profile";
"organizer.alerts.remove_profile.message" = "Are you sure you want to delete profile %@?";
"organizer.menus.add_profile.imported" = "Add %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "New profile";
"add_profile.shared.views.existing.header" = "Existing profiles";
"add_profile.shared.alerts.overwrite.message" = "A profile with the same name already exists. Replace it?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Enter passphrase";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Providers";
"add_profile.provider.sections.vpn.footer" = "Here you find a few providers with preset configuration profiles.";
"add_profile.provider.items.update_list" = "Update list";
"add_profile.provider.errors.no_default_server" = "Could not find any server.";
// MARK: ProfileView
"profile.sections.provider.header" = "Provider";
/* MARK: ProfileView */
"profile.welcome.message" = "Welcome to Passepartout!\n\nUse the organizer to add a new profile.";
"profile.sections.vpn.footer" = "The connection will be established whenever necessary.";
"profile.sections.status.header" = "Connection";
"profile.sections.configuration.header" = "Configuration";
"profile.sections.provider_infrastructure.footer" = "Last updated on %@.";
"profile.sections.vpn_survives_sleep.footer" = "Disable to improve battery usage, at the expense of occasional slowdowns due to wake-up reconnections.";
"profile.sections.vpn_resolves_hostname.footer" = "Preferred in most networks and required in some IPv6 networks. Disable where DNS is blocked, or to speed up negotiation when DNS is slow to respond.";
@ -149,14 +161,16 @@
"profile.items.vpn_survives_sleep.caption" = "Keep alive on sleep";
"profile.items.vpn_resolves_hostname.caption" = "Resolve provider hostname";
"profile.items.reconnect.caption" = "Reconnect";
"profile.items.uninstall.caption" = "Remove VPN configuration";
"profile.alerts.rename.title" = "Rename profile";
"profile.alerts.reconnect_vpn.message" = "Do you want to reconnect to the VPN?";
"profile.alerts.uninstall_vpn.message" = "Do you really want to erase the VPN configuration from your device settings? This may fix some broken VPN states and will not affect your provider and host profiles.";
"profile.alerts.test_connectivity.title" = "Connectivity";
"profile.alerts.test_connectivity.messages.success" = "Your device is connected to the Internet!";
"profile.alerts.test_connectivity.messages.failure" = "Your device has no Internet connectivity, please review your profile parameters.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Location";
"provider.location.sections.empty_favorites.footer" = "Swipe left on a location to add or remove it from Favorites.";
@ -165,7 +179,7 @@
"provider.preset.title" = "Preset";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Account";
"account.sections.credentials.header" = "Credentials";
@ -187,7 +201,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Use your %@ website credentials. Your username is usually your e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Find your %@ credentials in the OpenVPN Config Generator on the website.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Preshared key";
@ -220,7 +234,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "after %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Randomize endpoint";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Network settings";
"network_settings.sections.choices.header" = "Override";
@ -231,7 +245,7 @@
"network_settings.items.proxy_bypass.caption" = "Bypass domain";
"network_settings.items.add_proxy_bypass.caption" = "Add bypass domain";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Trusted networks";
"on_demand.sections.policy.footer" = "When entering a trusted network, the VPN is normally shut down and kept disconnected. Disable this option to not enforce such behavior.";
@ -242,7 +256,7 @@
"on_demand.items.ethernet.description" = "Check to trust any wired cable connection.";
"on_demand.items.policy.caption" = "Trust disables VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnostics";
"diagnostics.sections.debug_log.footer" = "Masking status will be effective after reconnecting. Network data are hostnames, IP addresses, routing, SSID. Credentials and private keys are not logged regardless.";
@ -252,15 +266,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "In order to safely reset the current debug log and apply the new masking preference, you must reconnect to the VPN now.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Debug log";
"debug_log.buttons.copy" = "Copy";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Report issue";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Add shortcut";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +291,10 @@
"shortcuts.edit.title" = "Manage shortcuts";
"shortcuts.edit.sections.all.header" = "Existing shortcuts";
"shortcuts.edit.sections.add.footer" = "Get help from Siri to speed up your most common interactions with the app.";
"shortcuts.edit.items.add_shortcut.caption" = "Add shortcut";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Purchase";
"paywall.sections.products.footer" = "Every product is a one-time purchase. Provider purchases do not include a VPN subscription.";
@ -287,7 +303,7 @@
"paywall.items.restore.title" = "Restore purchases";
"paywall.items.restore.description" = "If you bought this app or feature in the past, you can restore your purchases and this screen won't show again.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Donate";
"donate.sections.one_time.header" = "One time";
@ -298,30 +314,27 @@
"donate.alerts.purchase.success.message" = "This means a lot to me and I really hope you keep using and promoting this app.";
"donate.alerts.purchase.failure.message" = "Unable to perform the donation. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "About";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Share";
"about.items.credits.caption" = "Credits";
"about.items.website.caption" = "Home page";
"about.items.disclaimer.caption" = "Disclaimer";
"about.items.privacy_policy.caption" = "Privacy policy";
"about.items.share_twitter.caption" = "Tweet about it!";
"about.items.share_generic.caption" = "Invite a friend";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Version";
"version.labels.intro" = "Passepartout and TunnelKit are written and maintained by Davide De Rosa (keeshux).\n\nSource code for Passepartout and TunnelKit is publicly available on GitHub under the GPLv3, you can find links in the home page.\n\nPassepartout is a non-official client and is in no way affiliated with OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Credits";
"credits.sections.licenses.header" = "Licenses";
"credits.sections.notices.header" = "Notices";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Preferences";
"preferences.sections.general.header" = "General";
@ -329,16 +342,3 @@
"preferences.items.launches_on_login.footer" = "Check to automatically launch the app on boot or login.";
"preferences.items.confirm_quit.caption" = "Confirm quit";
"preferences.items.confirm_quit.footer" = "Check to present a quit confirmation alert.";
// MARK: Menu (macOS)
"menu.show.title" = "Show";
"menu.switch_profile.title" = "Active profile";
"menu.active_profile.title.none" = "No active profile";
"menu.active_profile.items.customize.title" = "Customize...";
"menu.active_profile.messages.missing_credentials" = "No account configured";
"menu.organizer.title" = "Organizer";
"menu.preferences.title" = "Preferences";
"menu.support.title" = "Support";
"menu.quit.title" = "Quit %@";
"menu.quit.messages.confirm" = "The VPN, if enabled, will still run in the background. Do you want to quit?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Cancelar";
"global.strings.next" = "Siguiente";
@ -15,6 +15,9 @@
"global.strings.add" = "Añadir";
"global.strings.default" = "Default";
"global.strings.name" = "Nombre";
"global.strings.provider" = "Proveedor";
"global.strings.providers" = "Proveedores";
"global.strings.configuration" = "Configuración";
"global.strings.address" = "Dirección";
"global.strings.addresses" = "Direcciones";
"global.strings.port" = "Puerta";
@ -41,16 +44,46 @@
"global.strings.translations" = "Traducciones";
"global.messages.email_not_configured" = "Ningún e-mail configurado.";
"global.messages.share" = "Passepartout es un cliente OpenVPN intuitivo, de código abierto para iOS y macOS";
"global.messages.share" = "Passepartout es un cliente OpenVPN / WireGuard intuitivo, de código abierto para iOS y macOS";
"global.placeholders.profile_name" = "Mi perfil";
"global.errors.missing_profile" = "Sin perfil";
"global.errors.missing_account" = "Sin cuenta";
"global.errors.missing_provider_server" = "Sin servidor";
"global.errors.missing_provider_server" = "Sin ubicación";
"global.errors.missing_provider_preset" = "Sin ajuste";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Soporte";
"menu.all.share.title" = "Compartir";
"menu.all.about.title" = "Sobre %@";
"menu.contextual.add_profile.from_files" = "Desde Ficheros";
"menu.contextual.add_profile.from_text" = "Desde texto";
"menu.contextual.add_profile.imported" = "Añadir %@";
"menu.contextual.support.write_review" = "Reseñar";
"menu.contextual.support.join_community" = "Comunidad";
"menu.contextual.share_twitter" = "Tweetear";
"menu.contextual.share_generic" = "Invitar";
"menu.system.show.title" = "Mostrar";
"menu.system.switch_profile.title" = "Perfil activo";
"menu.system.active_profile.title.none" = "Ningún perfil activo";
"menu.system.active_profile.items.customize.title" = "Personalizar...";
"menu.system.active_profile.messages.missing_credentials" = "Ninguna cuenta configurada";
"menu.system.organizer.title" = "Organizador";
"menu.system.preferences.title" = "Preferencias";
"menu.system.support.donate" = "Hacer una donación";
"menu.system.support.join_community" = "Apuntarse a la comunidad";
"menu.system.support.write_review" = "Escribir una reseña";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Enviar un Tweet!";
"menu.system.share_generic.caption" = "Invitar a un amig@";
"menu.system.quit.title" = "Salir de %@";
"menu.system.quit.messages.confirm" = "Si la VPN está habilitada, seguirá funcionando en segundo plano. ¿Deseas salir?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Conectando";
"tunnelkit.vpn.active" = "Activo";
@ -78,61 +111,40 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Por favor introducir la contraseña de cifrado.";
"tunnelkit.errors.openvpn.decryption" = "La configuración contiene una clave privada cifrada que no ha podido ser descifrada. Por favor revisa la contraseña introducida.";
// MARK: OrganizerView
/* MARK: OrganizerView */
"organizer.sections.twitch.footer" = "¡Ven a ver cómo hago Passepartout en vivo en Twitch, únete al chat para interactuar y contribuir!";
"organizer.sections.siri.footer" = "Déjate ayudar por Siri para acelerar tus interacciones más frecuentes con la aplicación.";
"organizer.sections.support.header" = "Soporte";
"organizer.items.follow_twitch.caption" = "Ve Passepartout en Twitch";
"organizer.items.profile.value.current" = "En uso";
"organizer.items.siri_shortcuts.caption" = "Gestionar atajos";
"organizer.items.join_community.caption" = "Apuntarse a la comunidad";
"organizer.items.write_review.caption" = "Escribir una reseña";
"organizer.items.donate.caption" = "Hacer una donación";
"organizer.items.github_sponsors.caption" = "Apoyar en GitHub";
"organizer.items.translate.caption" = "Ofrecer una traducción";
"organizer.items.about.caption" = "Sobre %@";
"organizer.items.uninstall.caption" = "Borrar configuración VPN";
"organizer.items.add_provider.caption" = "Añadir proveedor";
"organizer.items.add_host.caption" = "Añadir desde Ficheros";
"organizer.empty.no_profiles" = "Ningún perfil";
"organizer.alerts.reddit.message" = "Sabías que Passepartout tiene un subreddit? Suscríbete para actualizaciones o comentar problemas, funciones, nuevas plataformas o todo lo que se te ocurra.\n\nTambién es la manera ideal de mostrar interés en este proyecto.";
"organizer.alerts.reddit.buttons.subscribe" = "Suscribir ahora!";
"organizer.alerts.reddit.buttons.remind" = "Recordar más tarde";
"organizer.alerts.reddit.buttons.never" = "No preguntar más";
"organizer.alerts.uninstall_vpn.message" = "Realmente quieres eliminar la configuración VPN de tu dispositivo? Ésto puede corregir algunos estados incorrectos del VPN y no afectará tus perfiles.";
"organizer.alerts.remove_profile.title" = "Quitar perfil";
"organizer.alerts.remove_profile.message" = "¿Seguro que deseas eliminar el perfil %@?";
"organizer.menus.add_profile.imported" = "Añadir %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Nuevo perfil";
"add_profile.shared.views.existing.header" = "Perfiles existentes";
"add_profile.shared.alerts.overwrite.message" = "Ya existe un perfil con el mismo nombre. Reemplazar?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Introduce la contraseña de cifrado";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Proveedores";
"add_profile.provider.sections.vpn.footer" = "Aquí encuentras algunos proveedores con ajustes preconfigurados.";
"add_profile.provider.items.update_list" = "Actualizar lista";
"add_profile.provider.errors.no_default_server" = "No se ha encontrado ningún servidor.";
// MARK: ProfileView
"profile.sections.provider.header" = "Proveedor";
/* MARK: ProfileView */
"profile.welcome.message" = "Bienvenid@ a Passepartout!\n\nUsa el organizador para añadir un nuevo perfil.";
"profile.sections.vpn.footer" = "La conexión se establecerá siempre y cuando sea necesario.";
"profile.sections.status.header" = "Conexión";
"profile.sections.configuration.header" = "Configuración";
"profile.sections.provider_infrastructure.footer" = "Última actualización: %@.";
"profile.sections.vpn_survives_sleep.footer" = "Deshabilitar para mejorar el uso de la batería, a costa de ralentizaciones ocasionales por las reconexiones al despertar el dispositivo.";
"profile.sections.vpn_resolves_hostname.footer" = "Preferido en la mayoría de las redes y necesario en algunas redes IPv6. Deshabilitar donde el DNS esté bloqueado, o para acelerar la negociación cuando el DNS sea lento en responder.";
@ -149,14 +161,16 @@
"profile.items.vpn_survives_sleep.caption" = "Mantener en modo inactivo";
"profile.items.vpn_resolves_hostname.caption" = "Resolver hostname del servidor";
"profile.items.reconnect.caption" = "Reconectar";
"profile.items.uninstall.caption" = "Borrar configuración VPN";
"profile.alerts.rename.title" = "Renombrar perfil";
"profile.alerts.reconnect_vpn.message" = "Quieres reconectarte al VPN?";
"profile.alerts.uninstall_vpn.message" = "Realmente quieres eliminar la configuración VPN de tu dispositivo? Ésto puede corregir algunos estados incorrectos del VPN y no afectará tus perfiles.";
"profile.alerts.test_connectivity.title" = "Conectividad";
"profile.alerts.test_connectivity.messages.success" = "Tu dispositivo está conectado en Internet!";
"profile.alerts.test_connectivity.messages.failure" = "Tu dispositivo no tiene conectividad Internet, por favor revisa los parámetros de tu perfil.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Ubicación";
"provider.location.sections.empty_favorites.footer" = "Desliza a la izquierda de una ubicación para agregarla o quitarla de los Favoritos.";
@ -165,7 +179,7 @@
"provider.preset.title" = "Ajuste";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Cuenta";
"account.sections.credentials.header" = "Credenciales";
@ -187,7 +201,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Usa tus credenciales de la web %@. Normalmente tu usuario es tu e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Encuentra tus credenciales %@ en el \"OpenVPN Config Generator\" en la web.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Clave previamente compartida";
@ -220,7 +234,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "después de %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Aleatorizar destino";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Ajustes de red";
"network_settings.sections.choices.header" = "Customizar";
@ -231,7 +245,7 @@
"network_settings.items.proxy_bypass.caption" = "Dominio ignorado";
"network_settings.items.add_proxy_bypass.caption" = "Añadir dominio ignorado";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Redes de confianza";
"on_demand.sections.policy.footer" = "Entrando en una red de confianza, normalmente el VPN es cerrado y mantenido desconectado. Deshabilitar esta opción para no forzar este modo.";
@ -242,7 +256,7 @@
"on_demand.items.ethernet.description" = "Activa esta opción para confiar en cualquier conexión cableada.";
"on_demand.items.policy.caption" = "Red de confianza deshabilita el VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnósticos";
"diagnostics.sections.debug_log.footer" = "El estado de ocultación será efectivo tras reconectar. Los datos de red son hostnames, direcciones IP, routing, SSID. Las credenciales y las claves privadas no son registrados a pesar.";
@ -252,15 +266,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Para resetear el registro de debug y aplicar la nueva preferencia de ocultación, debes reconectarte al VPN.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Registro de debug";
"debug_log.buttons.copy" = "Copiar";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Reportar incidencia";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Añadir atajo";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +291,10 @@
"shortcuts.edit.title" = "Gestionar atajos";
"shortcuts.edit.sections.all.header" = "Atajos existentes";
"shortcuts.edit.sections.add.footer" = "Déjate ayudar por Siri para acelerar tus interacciones más frecuentes con la aplicación.";
"shortcuts.edit.items.add_shortcut.caption" = "Añadir atajo";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Comprar";
"paywall.sections.products.footer" = "Cada producto es una compra única y no recurrente. La compra de un proveedor no incluye una suscripción al servicio.";
@ -287,7 +303,7 @@
"paywall.items.restore.title" = "Restaurar compras";
"paywall.items.restore.description" = "Si compraste esta aplicación o funcionalidad anteriormente, puedes restaurar tus compras y esta pantalla no volverá a aparecer.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Donar";
"donate.sections.one_time.header" = "Única";
@ -298,30 +314,27 @@
"donate.alerts.purchase.success.message" = "Ésto significa mucho para mí y espero sinceramente que sigas usando y promoviendo esta aplicación.";
"donate.alerts.purchase.failure.message" = "Imposible completar la donación, por favor vuelve a intentarlo. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "Información";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Compartir";
"about.items.credits.caption" = "Créditos";
"about.items.website.caption" = "Página de inicio";
"about.items.disclaimer.caption" = "Aviso legal";
"about.items.privacy_policy.caption" = "Política de privacidad";
"about.items.share_twitter.caption" = "Enviar un Tweet!";
"about.items.share_generic.caption" = "Invitar a un amig@";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Versión";
"version.labels.intro" = "Passepartout y TunnelKit están escritos y son mantenidos por Davide De Rosa (keeshux).\n\nEl código de Passepartout y TunnelKit es público y está disponible en GitHub bajo la GPLv3, encontrarás enlaces en la página de inicio.\n\nPassepartout es un cliente no oficial y no es afiliado de OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Créditos";
"credits.sections.licenses.header" = "Licencias";
"credits.sections.notices.header" = "Avisos";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Preferencias";
"preferences.sections.general.header" = "General";
@ -329,16 +342,3 @@
"preferences.items.launches_on_login.footer" = "Activa esta opción para que la aplicación se inicie automáticamente al iniciar o al iniciar sesión.";
"preferences.items.confirm_quit.caption" = "Confirmar salir";
"preferences.items.confirm_quit.footer" = "Activa esta opción para que se muestre una alerta de confirmación al salir.";
// MARK: Menu (macOS)
"menu.show.title" = "Mostrar";
"menu.switch_profile.title" = "Perfil activo";
"menu.active_profile.title.none" = "Ningún perfil activo";
"menu.active_profile.items.customize.title" = "Personalizar...";
"menu.active_profile.messages.missing_credentials" = "Ninguna cuenta configurada";
"menu.organizer.title" = "Organizador";
"menu.preferences.title" = "Preferencias";
"menu.support.title" = "Soporte";
"menu.quit.title" = "Salir de %@";
"menu.quit.messages.confirm" = "Si la VPN está habilitada, seguirá funcionando en segundo plano. ¿Deseas salir?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Annuler";
"global.strings.next" = "Suivant";
@ -15,6 +15,9 @@
"global.strings.add" = "Ajouter";
"global.strings.default" = "Default";
"global.strings.name" = "Nom";
"global.strings.provider" = "Fournisseur";
"global.strings.providers" = "Fournisseurs";
"global.strings.configuration" = "Configuration";
"global.strings.address" = "Adresse";
"global.strings.addresses" = "Adresses";
"global.strings.port" = "Port";
@ -41,7 +44,7 @@
"global.strings.translations" = "Traductions";
"global.messages.email_not_configured" = "Aucun compte courriel n'est configuré.";
"global.messages.share" = "Passepartout est un client OpenVPN simple d'utilisation et open source pour iOS et macOS";
"global.messages.share" = "Passepartout est un client OpenVPN / WireGuard simple d'utilisation et open source pour iOS et macOS";
"global.placeholders.profile_name" = "Mon profile";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Serveur manquant";
"global.errors.missing_provider_preset" = "Préréglage manquant";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Support";
"menu.all.share.title" = "Partager";
"menu.all.about.title" = "À propos %@";
"menu.contextual.add_profile.imported" = "Ajouter %@";
"menu.system.show.title" = "Afficher";
"menu.system.switch_profile.title" = "Profil actif";
"menu.system.active_profile.title.none" = "Pas de profil actif";
"menu.system.active_profile.items.customize.title" = "Personnaliser...";
"menu.system.active_profile.messages.missing_credentials" = "Pas de compte configuré";
"menu.system.organizer.title" = "Organisateur";
"menu.system.preferences.title" = "Préférences";
"menu.system.support.donate" = "Faire un don";
"menu.system.support.join_community" = "Rejoindre la communauté";
"menu.system.support.write_review" = "Écrire un avis";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Tweetez!";
"menu.system.share_generic.caption" = "Inviter un amis";
"menu.system.quit.title" = "Quitter %@";
"menu.system.quit.messages.confirm" = "S'il est activé, le VPN fonctionnera en tâche de fond. Voulez-vous quitter ?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Connection...";
"tunnelkit.vpn.active" = "Actif";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Veuillez entrer le mot de passe d'encryption.";
"tunnelkit.errors.openvpn.decryption" = "Le fichier de configuration contient une clé privée encryptée et n'a pas été décryptée. Veuillez revérifier votre mot de passe.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Venez me regarder faire passer Passepartout en direct sur Twitch, rejoignez le chat pour interagir et contribuer!";
"organizer.sections.siri.footer" = "Obtenez de l'aide de Siri pour accélérer vos intéractions les plus courantes avec l'app.";
"organizer.sections.support.header" = "Support";
"organizer.items.follow_twitch.caption" = "Regardez Passepartout sur Twitch";
"organizer.items.profile.value.current" = "En utilisation";
"organizer.items.siri_shortcuts.caption" = "Gérer les raccourcis";
"organizer.items.join_community.caption" = "Rejoindre la communauté";
"organizer.items.write_review.caption" = "Écrire un avis";
"organizer.items.donate.caption" = "Faire un don";
"organizer.items.github_sponsors.caption" = "Me parrainer chez GitHub";
"organizer.items.translate.caption" = "Offre de traduction";
"organizer.items.about.caption" = "À propos %@";
"organizer.items.uninstall.caption" = "Supprimer la configuration VPN";
"organizer.items.add_provider.caption" = "Ajouter un nouveau fournisseur";
"organizer.items.add_host.caption" = "Ajouter de Fichiers";
"organizer.alerts.reddit.message" = "Saviez-vous que Passepartout a un subreddit? Souscrivez pour les mises à jour ou discuter des problèmes, caractéristiques, nouvelles plateformes ou quoi que ce soit.\n\nC'est aussi une très bonne façon de démontrer votre enthousiasme envers le projet.";
"organizer.alerts.reddit.buttons.subscribe" = "Souscrivez maintenant!";
"organizer.alerts.reddit.buttons.remind" = "Me rappeler plus tard";
"organizer.alerts.reddit.buttons.never" = "Ne pas me redemander";
"organizer.alerts.uninstall_vpn.message" = "Voulez-vous vraiment effacer la configuration VPN de vos paramètres? Ceci peux fixer certains VPN en arrêt et n'affectera pas vos profiles de fournisseurs et hôtes.";
"organizer.alerts.remove_profile.title" = "Supprimer le profil";
"organizer.alerts.remove_profile.message" = "Voulez-vous vraiment supprimer le profil %@ ?";
"organizer.menus.add_profile.imported" = "Ajouter %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Nouveau profil";
"add_profile.shared.views.existing.header" = "Profiles existants";
"add_profile.shared.alerts.overwrite.message" = "Un profile avec ce même nom existe déjà. Le remplacer ?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Saisir le mot de passe";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Fournisseurs";
"add_profile.provider.sections.vpn.footer" = "Ici vous pouvez trousers certains fournisseurs avec des profiles déjà configurés.";
"add_profile.provider.items.update_list" = "Actualiser la liste";
"add_profile.provider.errors.no_default_server" = "Aucun serveur trouvé";
// MARK: ProfileView
"profile.sections.provider.header" = "Fournisseur";
/* MARK: ProfileView */
"profile.welcome.message" = "Bienvenue à Passepartout!\n\nUtilisez l'organiseur pour ajouter un nouveau profile.";
"profile.sections.vpn.footer" = "La connection sera établie lorsque nécessaire.";
"profile.sections.status.header" = "Connection";
"profile.sections.configuration.header" = "Configuration";
"profile.sections.provider_infrastructure.footer" = "Mis à jour : %@.";
"profile.sections.vpn_survives_sleep.footer" = "Désactiver pour augmenter l'autonomie de la batterie, au dépends de la rapidité au réveil pour la reconnection.";
"profile.sections.vpn_resolves_hostname.footer" = "Préféré dans la plus part des réseaux et requis dans certains réseaux IPv6. Désactiver lorsque le DNS est bloqué ou pour augmenter la rapidité des négociations lorsque le DNS est lent à répondre.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Garder actif lors de la veille";
"profile.items.vpn_resolves_hostname.caption" = "Résoudre le nom d'hôte du serveur";
"profile.items.reconnect.caption" = "Reconnecter";
"profile.items.uninstall.caption" = "Supprimer la configuration VPN";
"profile.alerts.rename.title" = "Renommer le profile";
"profile.alerts.reconnect_vpn.message" = "Voulez-vous reconnecter le VPN?";
"profile.alerts.uninstall_vpn.message" = "Voulez-vous vraiment effacer la configuration VPN de vos paramètres? Ceci peux fixer certains VPN en arrêt et n'affectera pas vos profiles de fournisseurs et hôtes.";
"profile.alerts.test_connectivity.title" = "Connections";
"profile.alerts.test_connectivity.messages.success" = "Votre appareil est connecté à Internet!";
"profile.alerts.test_connectivity.messages.failure" = "Votre appareil n'a aucune connection Invernet, veuillez vérifier vos paramètres de profile.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Locallisation";
"provider.location.sections.empty_favorites.footer" = "Glissez vers la gauche d'un item pour l'ajouter ou le retirer des Favoris.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Préréglage";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Compte";
"account.sections.credentials.header" = "Indetifiants";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Utilisez votre identifiants web de %@. Votre nom d'utilisateur est normalement votre courriel.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Trouver votre identifiant %@ dans la section web Générateur de configuration OpenVPN.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Clé pré-partagée";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "aprè %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Extrémité aléatoire";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Paramètres réseaux";
"network_settings.sections.choices.header" = "Écraser";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Outrepasser le domaine";
"network_settings.items.add_proxy_bypass.caption" = "Ajouter outrepasser le domaine";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Réseaux de confiance";
"on_demand.sections.policy.footer" = "Lors d'une connection à un réseau de confiance, le VPN est normalement fermé. Désactivez cette option pour ne pas autoriser ce comportement.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Cochez pour faire confiance à toutes les connexions filaires.";
"on_demand.items.policy.caption" = "La confiance désactive le VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnostiques";
"diagnostics.sections.debug_log.footer" = "Camouflage du status sera effectif après la reconnection. Les données réseaux sont les noms d'hôtes, adresses IP, routage, SSID. Les identifiants et clés privés ne sont pas enregistrés.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Pour bien réinitialiser le registre de diagnostique et appliquer les préférences de camouflage, vous devez vous reconnecter au VPN maintenant.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Journal de débogage";
"debug_log.buttons.copy" = "Copier";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Rapporter un problème";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Ajouter un raccourcis";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Gérer les raccourcis";
"shortcuts.edit.sections.all.header" = "Raccourcis existants";
"shortcuts.edit.sections.add.footer" = "Obtenez de l'aide de Siri pour accélérer vos intéractions les plus courantes avec l'app.";
"shortcuts.edit.items.add_shortcut.caption" = "Ajouter un raccourcis";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Acheter";
"paywall.sections.products.footer" = "Chaque produit est un achat unique. Les achats n'incluent pas une souscription à un service de VPN.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Restaurer les achats";
"paywall.items.restore.description" = "Si vous avez acheté l'application ou une fonctionnalité dans le passé, vous pouvez restaurer les achats et ce message ne s'affichera plus.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Faire un don";
"donate.sections.one_time.header" = "Une seule fois";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "Ceci signifie beaucoup pour moi et j'espère sincèrement que vous continuerez d'utiliser et de promouvoir cette app.";
"donate.alerts.purchase.failure.message" = "Impossible de faire le don. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "À propos";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Partager";
"about.items.credits.caption" = "Crédits";
"about.items.website.caption" = "Page d'accueil";
"about.items.disclaimer.caption" = "Avis de non-responsabilité";
"about.items.privacy_policy.caption" = "Politique de la vie privée";
"about.items.share_twitter.caption" = "Tweetez!";
"about.items.share_generic.caption" = "Inviter un amis";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Version";
"version.labels.intro" = "Passepartout et TunnelKit sont codés et maintenu par Davide De Rosa (keeshux).\n\nLe code source de Passepartout et TunnelKit est publiquement disponible sur GitHub sous license GPLv3, vous pouvez trouver les liens sur la page d'accueil.\n\nPassepartout est un client non-officiel et n'est aucunement affilié avec OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Crédits";
"credits.sections.licenses.header" = "Licenses";
"credits.sections.notices.header" = "Préavis";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Préférences";
"preferences.sections.general.header" = "Général";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Cochez pour lancer automatiquement l'application à la connexion ou au démarrage.";
"preferences.items.confirm_quit.caption" = "Notification de sortie";
"preferences.items.confirm_quit.footer" = "Cochez pour recevoir une demande de confirmation lorsque vous quittez.";
// MARK: Menu (macOS)
"menu.show.title" = "Afficher";
"menu.switch_profile.title" = "Profil actif";
"menu.active_profile.title.none" = "Pas de profil actif";
"menu.active_profile.items.customize.title" = "Personnaliser...";
"menu.active_profile.messages.missing_credentials" = "Pas de compte configuré";
"menu.organizer.title" = "Organisateur";
"menu.preferences.title" = "Préférences";
"menu.support.title" = "Assistance";
"menu.quit.title" = "Quitter %@";
"menu.quit.messages.confirm" = "S'il est activé, le VPN fonctionnera en tâche de fond. Voulez-vous quitter ?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Annulla";
"global.strings.next" = "Avanti";
@ -15,6 +15,9 @@
"global.strings.add" = "Aggiungi";
"global.strings.default" = "Default";
"global.strings.name" = "Nome";
"global.strings.provider" = "Provider";
"global.strings.providers" = "Provider";
"global.strings.configuration" = "Configurazione";
"global.strings.address" = "Indirizzo";
"global.strings.addresses" = "Indirizzi";
"global.strings.port" = "Porta";
@ -41,16 +44,46 @@
"global.strings.translations" = "Traduzioni";
"global.messages.email_not_configured" = "Nessun account e-mail configurato.";
"global.messages.share" = "Passepartout è un client OpenVPN user-friendly ed open source per iOS e macOS";
"global.messages.share" = "Passepartout è un client OpenVPN / WireGuard user-friendly ed open source per iOS e macOS";
"global.placeholders.profile_name" = "Il mio profilo";
"global.errors.missing_profile" = "Profilo mancante";
"global.errors.missing_account" = "Credenziali mancanti";
"global.errors.missing_provider_server" = "Server mancante";
"global.errors.missing_provider_server" = "Regione mancante";
"global.errors.missing_provider_preset" = "Preset mancante";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Supporto";
"menu.all.share.title" = "Condividi";
"menu.all.about.title" = "Informazioni su %@";
"menu.contextual.add_profile.from_files" = "Da Files";
"menu.contextual.add_profile.from_text" = "Da testo";
"menu.contextual.add_profile.imported" = "Aggiungi %@";
"menu.contextual.support.write_review" = "Recensisci";
"menu.contextual.support.join_community" = "Community";
"menu.contextual.share_twitter" = "Tweet";
"menu.contextual.share_generic" = "Invita";
"menu.system.show.title" = "Mostra";
"menu.system.switch_profile.title" = "Profilo attivo";
"menu.system.active_profile.title.none" = "Nessun profilo attivo";
"menu.system.active_profile.items.customize.title" = "Personalizza...";
"menu.system.active_profile.messages.missing_credentials" = "Nessun account configurato";
"menu.system.organizer.title" = "Organizer";
"menu.system.preferences.title" = "Preferenze";
"menu.system.support.donate" = "Fai una donazione";
"menu.system.support.join_community" = "Entra nella community";
"menu.system.support.write_review" = "Scrivi una recensione";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Manda un Tweet!";
"menu.system.share_generic.caption" = "Invita un amico";
"menu.system.quit.title" = "Esci da %@";
"menu.system.quit.messages.confirm" = "La VPN, se abilitata, continuerà ad essere attiva in background. Vuoi comunque uscire?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Connettendo";
"tunnelkit.vpn.active" = "Attiva";
@ -78,61 +111,40 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Per favore inserisci la passphrase di criptazione.";
"tunnelkit.errors.openvpn.decryption" = "La configurazione contiene una chiave privata criptata e non è stato possibile decriptarla. Controlla la tua passphrase.";
// MARK: OrganizerView
/* MARK: OrganizerView */
"organizer.sections.twitch.footer" = "Vieni a vedermi creare Passepartout in diretta su Twitch, unisciti alla chat per interagire e contribuire!";
"organizer.sections.siri.footer" = "Chiedi aiuto a Siri per velocizzare le tue interazioni più frequenti con l'app.";
"organizer.sections.support.header" = "Supporto";
"organizer.items.follow_twitch.caption" = "Guarda Passepartout su Twitch";
"organizer.items.profile.value.current" = "In uso";
"organizer.items.siri_shortcuts.caption" = "Gestisci comandi rapidi";
"organizer.items.join_community.caption" = "Entra nella community";
"organizer.items.write_review.caption" = "Scrivi una recensione";
"organizer.items.donate.caption" = "Fai una donazione";
"organizer.items.github_sponsors.caption" = "Supportami su GitHub";
"organizer.items.translate.caption" = "Offri una traduzione";
"organizer.items.about.caption" = "Informazioni su %@";
"organizer.items.uninstall.caption" = "Rimuovi configurazione VPN";
"organizer.items.add_provider.caption" = "Aggiungi provider";
"organizer.items.add_host.caption" = "Aggiungi da Files";
"organizer.empty.no_profiles" = "Nessun profilo";
"organizer.alerts.reddit.message" = "Sapevi che Passepartout ha un subreddit? Iscriviti per aggiornamenti o per discutere problemi, aggiunte, nuove piattaforme o qualunque cosa tu voglia.\n\nÈ anche un ottimo modo per dimostrare che hai a cuore questo progetto.";
"organizer.alerts.reddit.buttons.subscribe" = "Iscriviti ora!";
"organizer.alerts.reddit.buttons.remind" = "Ricordami più tardi";
"organizer.alerts.reddit.buttons.never" = "Non chiedere più";
"organizer.alerts.uninstall_vpn.message" = "Vuoi veramente cancellare la configurazione VPN dalle impostazioni del tuo dispositivo? Quest'azione potrebbe risolvere alcuni stati erronei della VPN e non altererà i tuoi provider e i tuoi host.";
"organizer.alerts.remove_profile.title" = "Cancella profilo";
"organizer.alerts.remove_profile.message" = "Sei sicuro di voler cancellare il profilo %@?";
"organizer.menus.add_profile.imported" = "Aggiungi %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Nuovo profilo";
"add_profile.shared.views.existing.header" = "Profili esistenti";
"add_profile.shared.alerts.overwrite.message" = "Esiste già un profilo con lo stesso nome. Sostituire?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Inserisci passphrase";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Provider";
"add_profile.provider.sections.vpn.footer" = "Qui trovi alcuni provider con configurazioni precompilate.";
"add_profile.provider.items.update_list" = "Aggiorna lista";
"add_profile.provider.errors.no_default_server" = "Nessun server disponibile.";
// MARK: ProfileView
"profile.sections.provider.header" = "Provider";
/* MARK: ProfileView */
"profile.welcome.message" = "Benvenuto in Passepartout!\n\nUsa il menu per aggiungere un nuovo profilo.";
"profile.sections.vpn.footer" = "La connessione sarà stabilita ogni volta che è necessario.";
"profile.sections.status.header" = "Connessione";
"profile.sections.configuration.header" = "Configurazione";
"profile.sections.provider_infrastructure.footer" = "Ultimo aggiornamento: %@.";
"profile.sections.vpn_survives_sleep.footer" = "Disabilita per migliorare il consumo della batteria, a discapito di rallentamenti occasionali causati dalle riconnessioni.";
"profile.sections.vpn_resolves_hostname.footer" = "Preferibile nella maggior parte delle reti e necessario in alcune reti IPv6. Disabilita dove il DNS è bloccato, o per velocizzare la negoziazione quando il DNS tarda a rispondere.";
@ -149,14 +161,16 @@
"profile.items.vpn_survives_sleep.caption" = "Mantieni attivo in sleep";
"profile.items.vpn_resolves_hostname.caption" = "Risolvi hostname del server";
"profile.items.reconnect.caption" = "Riconnetti";
"profile.items.uninstall.caption" = "Rimuovi configurazione VPN";
"profile.alerts.rename.title" = "Rinomina profilo";
"profile.alerts.reconnect_vpn.message" = "Vuoi riconnetterti alla VPN?";
"profile.alerts.uninstall_vpn.message" = "Vuoi veramente cancellare la configurazione VPN dalle impostazioni del tuo dispositivo? Quest'azione potrebbe risolvere alcuni stati erronei della VPN e non altererà i tuoi provider e i tuoi host.";
"profile.alerts.test_connectivity.title" = "Connettività";
"profile.alerts.test_connectivity.messages.success" = "Il tuo dispositivo è connesso a Internet!";
"profile.alerts.test_connectivity.messages.failure" = "Il tuo dispositivo non è connesso a Internet, per favore controlla i parametri del tuo profilo.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Regione";
"provider.location.sections.empty_favorites.footer" = "Scorri a sinistra su una regione per aggiungerla o rimuoverla dai Preferiti.";
@ -165,7 +179,7 @@
"provider.preset.title" = "Preset";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Account";
"account.sections.credentials.header" = "Credenziali";
@ -187,7 +201,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Usa le credenziali del sito di %@. Il tuo username è generalmente la tua e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Trova le tue credenziali nell'OpenVPN Config Generator sul sito di %@.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Chiave condivisa";
@ -220,7 +234,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "dopo %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Endpoint casuale";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Impostazioni di rete";
"network_settings.sections.choices.header" = "Personalizza";
@ -231,7 +245,7 @@
"network_settings.items.proxy_bypass.caption" = "Dominio ignorato";
"network_settings.items.add_proxy_bypass.caption" = "Aggiungi dominio ignorato";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Reti sicure";
"on_demand.sections.policy.footer" = "Entrando in una rete sicura, normalmente la VPN viene spenta e mantenuta disconnessa. Disabilita quest'opzione per non imporre questo comportamento.";
@ -242,7 +256,7 @@
"on_demand.items.ethernet.description" = "Seleziona per considerare sicura qualsiasi rete cablata.";
"on_demand.items.policy.caption" = "Spegni VPN in rete sicura";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnostica";
"diagnostics.sections.debug_log.footer" = "Il mascheramento sarà effettivo dopo una riconnessione. I dati di rete sono hostname, indirizzi IP, routing, SSID. Credenziali e chiavi private non sono registrati in ogni caso.";
@ -252,15 +266,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Per azzerare il debug log ed applicare la nuova preferenza di mascheramento, devi riconnetterti alla VPN.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Debug log";
"debug_log.buttons.copy" = "Copia";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Segnala problema";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Aggiungi comando rapido";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +291,10 @@
"shortcuts.edit.title" = "Gestisci comandi rapidi";
"shortcuts.edit.sections.all.header" = "Comandi esistenti";
"shortcuts.edit.sections.add.footer" = "Chiedi aiuto a Siri per velocizzare le tue interazioni più frequenti con l'app.";
"shortcuts.edit.items.add_shortcut.caption" = "Aggiungi comando rapido";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Acquista";
"paywall.sections.products.footer" = "Ogni prodotto è un acquisto unico e non ricorrente. L'acquisto di un provider non include una sottoscrizione.";
@ -287,7 +303,7 @@
"paywall.items.restore.title" = "Ripristina acquisti";
"paywall.items.restore.description" = "Se hai comprato quest'applicazione o funzionalità in precedenza, puoi ripristinare i tuoi acquisti in modo che questa schermata non compaia più.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Donazione";
"donate.sections.one_time.header" = "Unica";
@ -298,30 +314,27 @@
"donate.alerts.purchase.success.message" = "Questo significa molto per me e spero vivamente che tu continui ad usare e promuovere quest'applicazione.";
"donate.alerts.purchase.failure.message" = "Impossibile effettuare la donazione. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "Informazioni su";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Condividi";
"about.items.credits.caption" = "Credits";
"about.items.website.caption" = "Home page";
"about.items.disclaimer.caption" = "Disclaimer";
"about.items.privacy_policy.caption" = "Privacy policy";
"about.items.share_twitter.caption" = "Manda un Tweet!";
"about.items.share_generic.caption" = "Invita un amico";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Versione";
"version.labels.intro" = "Passepartout e TunnelKit sono scritti e mantenuti da Davide De Rosa (keeshux).\n\nIl codice sorgente di Passepartout e TunnelKit è pubblicamente disponibile su GitHub in accordo con la GPLv3, puoi trovare i link nella home page.\n\nPassepartout è un client non ufficiale e non è affiliato ad OpenVPN Inc. in alcuna maniera.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Credits";
"credits.sections.licenses.header" = "Licenze";
"credits.sections.notices.header" = "Notice";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Preferenze";
"preferences.sections.general.header" = "Generale";
@ -329,16 +342,3 @@
"preferences.items.launches_on_login.footer" = "Seleziona per aprire automaticamente l'app all'avvio o al login.";
"preferences.items.confirm_quit.caption" = "Conferma uscita";
"preferences.items.confirm_quit.footer" = "Seleziona per confermare l'uscita dall'applicazione.";
// MARK: Menu (macOS)
"menu.show.title" = "Mostra";
"menu.switch_profile.title" = "Profilo attivo";
"menu.active_profile.title.none" = "Nessun profilo attivo";
"menu.active_profile.items.customize.title" = "Personalizza...";
"menu.active_profile.messages.missing_credentials" = "Nessun account configurato";
"menu.organizer.title" = "Organizer";
"menu.preferences.title" = "Preferenze";
"menu.support.title" = "Supporto";
"menu.quit.title" = "Esci da %@";
"menu.quit.messages.confirm" = "La VPN, se abilitata, continuerà ad essere attiva in background. Vuoi comunque uscire?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Afbreken";
"global.strings.next" = "Volgende";
@ -15,6 +15,9 @@
"global.strings.add" = "Toevoegen";
"global.strings.default" = "Default";
"global.strings.name" = "Naam";
"global.strings.provider" = "Aanbieder";
"global.strings.providers" = "Aanbieders";
"global.strings.configuration" = "Configuratie";
"global.strings.address" = "Adress";
"global.strings.addresses" = "Adressen";
"global.strings.port" = "Port";
@ -41,7 +44,7 @@
"global.strings.translations" = "Vertalingen";
"global.messages.email_not_configured" = "Er is geen email adres geconfigureerd.";
"global.messages.share" = "Passepartout is een gebruiksvriendelijke open source OpenVPN-client voor iOS en macOS";
"global.messages.share" = "Passepartout is een gebruiksvriendelijke open source OpenVPN / WireGuard client voor iOS en macOS";
"global.placeholders.profile_name" = "Mijn Profiel";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Ontbrekende server";
"global.errors.missing_provider_preset" = "Ontbrekende voorkeur";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Ondersteuning";
"menu.all.share.title" = "Delen";
"menu.all.about.title" = "Over %@";
"menu.contextual.add_profile.imported" = "%@ toevoegen";
"menu.system.show.title" = "Weergeven";
"menu.system.switch_profile.title" = "Actief profiel";
"menu.system.active_profile.title.none" = "Geen actief profiel";
"menu.system.active_profile.items.customize.title" = "Aanpassen...";
"menu.system.active_profile.messages.missing_credentials" = "Geen account geconfigureerd";
"menu.system.organizer.title" = "Organisator";
"menu.system.preferences.title" = "Voorkeuren";
"menu.system.support.donate" = "Doneer een gift";
"menu.system.support.join_community" = "Word lid van de gemeenschap";
"menu.system.support.write_review" = "Schrijf een beoordeling";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Tweet about it!";
"menu.system.share_generic.caption" = "Nodig een vriend uit";
"menu.system.quit.title" = "%@ afsluiten";
"menu.system.quit.messages.confirm" = "De VPN zal, indien geactiveerd, op de achtergrond blijven draaien. Wilt u sluiten?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Verbinden";
"tunnelkit.vpn.active" = "Actief";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Voer een coderingswachtwoord in";
"tunnelkit.errors.openvpn.decryption" = "De configuratie bevat een gecodeerde privésleutel en deze kan niet worden gedecodeerd. Controleer de ingevoerde wachtwoordzin nogmaals.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Kom kijken hoe ik Passepartout live maak op Twitch, doe mee aan de chat om te communiceren en bij te dragen!";
"organizer.sections.siri.footer" = "Krijg hulp van Siri en versnel de meest gebruikte interacties binnen de app.";
"organizer.sections.support.header" = "Ondersteuning";
"organizer.items.follow_twitch.caption" = "Bekijk Passepartout op Twitch";
"organizer.items.profile.value.current" = "In gebruik";
"organizer.items.siri_shortcuts.caption" = "Beheer snelkoppelingen";
"organizer.items.join_community.caption" = "Word lid van de gemeenschap";
"organizer.items.write_review.caption" = "Schrijf een beoordeling";
"organizer.items.donate.caption" = "Doneer een gift";
"organizer.items.github_sponsors.caption" = "Steun me op GitHub";
"organizer.items.translate.caption" = "Help met vertalen";
"organizer.items.about.caption" = "Over %@";
"organizer.items.uninstall.caption" = "Verwijder VPN configuratie";
"organizer.items.add_provider.caption" = "Voeg nieuwe aanbieder toe";
"organizer.items.add_host.caption" = "Toevoegen vanuit Bestanden";
"organizer.alerts.reddit.message" = "Wist je dat Passepartout een eigen subreddit heeft? Schrijf je in voor updates, of discussiëren over problemen, (nieuwe) mogelijkheden, nieuwe platformen of wat je maar wil.\n\nHet is ook een goede manier om te laten zien dat je om dit project geeft.";
"organizer.alerts.reddit.buttons.subscribe" = "Schfijf je nu in!";
"organizer.alerts.reddit.buttons.remind" = "Herinner me later";
"organizer.alerts.reddit.buttons.never" = "Vraag dit niet meer";
"organizer.alerts.uninstall_vpn.message" = "Wilt u de VPN-configuratie van uw apparaatinstellingen verwijderen? Dit kan enkele problemen met VPN oplossen en heeft geen invloed op uw provider- en hostprofielen.";
"organizer.alerts.remove_profile.title" = "Profiel verwijderen";
"organizer.alerts.remove_profile.message" = "Weet u zeker dat u profiel %@ wilt verwijderen?";
"organizer.menus.add_profile.imported" = "%@ toevoegen";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Nieuw profiel";
"add_profile.shared.views.existing.header" = "Bestaande profielen";
"add_profile.shared.alerts.overwrite.message" = "Er bestaat al een profiel met deze naam, wil je hem vervangen?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Voer wachtwoordzin in";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Aanbieders";
"add_profile.provider.sections.vpn.footer" = "Hier vind je aan aantal aanbieders met configuratie profielen.";
"add_profile.provider.items.update_list" = "Lijst bijwerken";
"add_profile.provider.errors.no_default_server" = "Geen server gevonden.";
// MARK: ProfileView
"profile.sections.provider.header" = "Aanbieder";
/* MARK: ProfileView */
"profile.welcome.message" = "Welkom bij Passepartout!\n\nGebruik de organizer om een nieuw profiel toe te voegen.";
"profile.sections.vpn.footer" = "De verbinding zal worden gestart wanneer nodig.";
"profile.sections.status.header" = "Verbinding";
"profile.sections.configuration.header" = "Configuratie";
"profile.sections.provider_infrastructure.footer" = "Laatste update was op %@.";
"profile.sections.vpn_survives_sleep.footer" = "Uitschakelen om het batterijverbruik te verbeteren, ten koste van incidentele vertragingen als gevolg van het opnieuw opstarten na wake-up.";
"profile.sections.vpn_resolves_hostname.footer" = "Voorkeur om dit aan te zetten voor de meeste netwerken en vereist in sommige IPv6-netwerken. Uitschakelen waar DNS wordt geblokkeerd, of om de onderhandelingen te versnellen wanneer DNS traag reageert.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Actief tijdens slaapstand";
"profile.items.vpn_resolves_hostname.caption" = "Haal de naam van de host op";
"profile.items.reconnect.caption" = "Opnieuw verbinden";
"profile.items.uninstall.caption" = "Verwijder VPN configuratie";
"profile.alerts.rename.title" = "Profiel hernoemen";
"profile.alerts.reconnect_vpn.message" = "Opnieuw verbinding maken met de VPN?";
"profile.alerts.uninstall_vpn.message" = "Wilt u de VPN-configuratie van uw apparaatinstellingen verwijderen? Dit kan enkele problemen met VPN oplossen en heeft geen invloed op uw provider- en hostprofielen.";
"profile.alerts.test_connectivity.title" = "Connectiviteit";
"profile.alerts.test_connectivity.messages.success" = "Apparaat is verbonden met internet!";
"profile.alerts.test_connectivity.messages.failure" = "Uw apparaat heeft geen internetverbinding. Controleer uw profielparameters.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Locatie";
"provider.location.sections.empty_favorites.footer" = "Veeg naar links op een locatie om deze toe te voegen of te verwijderen aan Favorieten.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Voorkeur";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Account";
"account.sections.credentials.header" = "Inloggegevens";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Gebruik de inloggegevens van %@ Uw gebruikersnaam is meestal uw e-mailadres.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Vind de inloggegevens van %@ in de OpenVPN Config Generator op de website.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Vooraf gedeelde sleutel";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "na %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Willekeurig eindpunt";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Netwerk instellingen";
"network_settings.sections.choices.header" = "Overschrijven";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Omzeil domein";
"network_settings.items.add_proxy_bypass.caption" = "Voeg omzeil optie voor domein toe";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Vertrouwde netwerken";
"on_demand.sections.policy.footer" = "Bij het invoeren van een vertrouwd netwerk wordt de VPN uitgeschakeld en niet verbonden gehouden. Schakel deze optie uit om dergelijk gedrag niet af te dwingen.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Vink aan om alle bekabelde verbindingen te vertrouwen.";
"on_demand.items.policy.caption" = "Trust disables VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnose";
"diagnostics.sections.debug_log.footer" = "De maskeerstatus is effectief na opnieuw verbinden. Netwerkgegevens zijn hostnamen, IP-adressen, routing, SSID's. Inloggegevens en privésleutels worden niet geregistreerd.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Om het huidige foutopsporingslogboek veilig opnieuw in te stellen en de nieuwe maskeervoorkeur toe te passen, moet u nu opnieuw verbinding maken met VPN.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Foutopsporingslogboek";
"debug_log.buttons.copy" = "Kopiëren";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Meld een probleem";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Voeg snelkoppeling toe";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Beheer snelkoppelingen";
"shortcuts.edit.sections.all.header" = "Bestaande snelkoppelingen";
"shortcuts.edit.sections.add.footer" = "Krijg hulp van Siri en versnel de meest gebruikte interacties binnen de app.";
"shortcuts.edit.items.add_shortcut.caption" = "Voeg snelkoppeling toe";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Aanschaffen";
"paywall.sections.products.footer" = "Elk product is een eenmalige aankoop. Aankopen van providers bevatten geen VPN-abonnement.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Herstel Aankopen";
"paywall.items.restore.description" = "Als u deze app of functie in het verleden heeft gekocht, kunt u uw aankopen herstellen en wordt dit scherm niet meer getoond.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Donatie";
"donate.sections.one_time.header" = "Eenmalig";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "Dit betekent veel voor mij en ik hoop echt dat je deze app blijft gebruiken en promoten.";
"donate.alerts.purchase.failure.message" = "Donatie mislukt. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "Over";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Delen";
"about.items.credits.caption" = "Credits";
"about.items.website.caption" = "Home page";
"about.items.disclaimer.caption" = "Vrijwaring";
"about.items.privacy_policy.caption" = "Privacybeleid";
"about.items.share_twitter.caption" = "Tweet about it!";
"about.items.share_generic.caption" = "Nodig een vriend uit";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Versie";
"version.labels.intro" = "Passepartout en TunnelKit zijn geschreven en worden onderhouden door Davide De Rosa (keeshux).\n\nDe broncode voor Passepartout en TunnelKit is openbaar beschikbaar op GitHub onder de GPLv3, je kunt links op de startpagina vinden.\n\nPassepartout is een niet-officiële client en is op geen enkele manier verbonden aan OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Credits";
"credits.sections.licenses.header" = "Licenties";
"credits.sections.notices.header" = "Mededelingen";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Voorkeuren";
"preferences.sections.general.header" = "Algemeen";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Vink aan als u wilt dat de app automatisch wordt gelanceerd bij opstarten of aanmelden.";
"preferences.items.confirm_quit.caption" = "Sluiten bevestigen";
"preferences.items.confirm_quit.footer" = "Vink aan om een bevestigingsmelding te sluiten.";
// MARK: Menu (macOS)
"menu.show.title" = "Weergeven";
"menu.switch_profile.title" = "Actief profiel";
"menu.active_profile.title.none" = "Geen actief profiel";
"menu.active_profile.items.customize.title" = "Aanpassen...";
"menu.active_profile.messages.missing_credentials" = "Geen account geconfigureerd";
"menu.organizer.title" = "Organisator";
"menu.preferences.title" = "Voorkeuren";
"menu.support.title" = "Ondersteuning";
"menu.quit.title" = "%@ afsluiten";
"menu.quit.messages.confirm" = "De VPN zal, indien geactiveerd, op de achtergrond blijven draaien. Wilt u sluiten?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Anuluj";
"global.strings.next" = "Następny";
@ -15,6 +15,9 @@
"global.strings.add" = "Dodaj";
"global.strings.default" = "Default";
"global.strings.name" = "Nazwa";
"global.strings.provider" = "Dostawca";
"global.strings.providers" = "Usługodawcy";
"global.strings.configuration" = "Konfiguracja";
"global.strings.address" = "Adres";
"global.strings.addresses" = "Adresy";
"global.strings.port" = "Port";
@ -41,7 +44,7 @@
"global.strings.translations" = "Tłumaczenia";
"global.messages.email_not_configured" = "Adres e-mail nie jest skonfigurowany.";
"global.messages.share" = "Passepartout to klient OpenVPN, przyjazny użytkownikowi, open-source, stworzony dla iOS i macOS";
"global.messages.share" = "Passepartout to klient OpenVPN / WireGuard, przyjazny użytkownikowi, open-source, stworzony dla iOS i macOS";
"global.placeholders.profile_name" = "Mój profil";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Brakujący serwer";
"global.errors.missing_provider_preset" = "Brakujący preset";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Wsparcie";
"menu.all.share.title" = "Udostępnij";
"menu.all.about.title" = "O %@";
"menu.contextual.add_profile.imported" = "Dodaj %@";
"menu.system.show.title" = "Pokaż";
"menu.system.switch_profile.title" = "Aktywny profil";
"menu.system.active_profile.title.none" = "Brak aktywnych profili";
"menu.system.active_profile.items.customize.title" = "Personalizuj";
"menu.system.active_profile.messages.missing_credentials" = "Brak skonfigurowanych kont";
"menu.system.organizer.title" = "Organzator";
"menu.system.preferences.title" = "Preferencje";
"menu.system.support.donate" = "Wyślij dotację";
"menu.system.support.join_community" = "Dołącz do społeczności";
"menu.system.support.write_review" = "Napisz recenzję";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Wyślij tweeta!";
"menu.system.share_generic.caption" = "Zaproś znajomego";
"menu.system.quit.title" = "Zakończ %@";
"menu.system.quit.messages.confirm" = "Jeśli sieć VPN, jest włączona, będzie nadal działać w tle. Chcesz zakończyć?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Łączenie";
"tunnelkit.vpn.active" = "Aktywne";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Proszę wpisać frazę szyfrującą.";
"tunnelkit.errors.openvpn.decryption" = "Konfiguracja zawiera zaszyfrowany klucz prywatny który nie może zostać odszyfrowany. Sprawdź frazę szyfrującą.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Przyjdź i zobacz, jak tworzę Passepartout na żywo na Twitchu, dołącz do czatu, aby współdziałać i udzielać się!";
"organizer.sections.siri.footer" = "Użyj Siri żeby przyspieszyć najczęstsze akcje w aplikacji.";
"organizer.sections.support.header" = "Wsparcie";
"organizer.items.follow_twitch.caption" = "Oglądaj Passepartout na Twitchu";
"organizer.items.profile.value.current" = "W użyciu";
"organizer.items.siri_shortcuts.caption" = "Zarządzaj skrótami";
"organizer.items.join_community.caption" = "Dołącz do społeczności";
"organizer.items.write_review.caption" = "Napisz recenzję";
"organizer.items.donate.caption" = "Wyślij dotację";
"organizer.items.github_sponsors.caption" = "Wesprzyj mnie na GitHub";
"organizer.items.translate.caption" = "Zaproponuj tłumaczenie";
"organizer.items.about.caption" = "O %@";
"organizer.items.uninstall.caption" = "Usuń konfiguracje VPN";
"organizer.items.add_provider.caption" = "Dodaj nowego usługodawcę";
"organizer.items.add_host.caption" = "Dodaj z Plików";
"organizer.alerts.reddit.message" = "Wiedziałeś/łaś, że Passepartout ma swój subreddit? Subskrybuj dla aktualizacji, dyskusji o funkcjonalności, nowych platformach lub o czymkolwiek zechcesz.\n\nTo również świetny sposób na okazanie zainteresowania projektem.";
"organizer.alerts.reddit.buttons.subscribe" = "Subskrybuj!";
"organizer.alerts.reddit.buttons.remind" = "Przypomnij mi później";
"organizer.alerts.reddit.buttons.never" = "Nie przypominaj";
"organizer.alerts.uninstall_vpn.message" = "Na pewno chcesz usunąć konfigurację VPN z urządzenia? Może to naprawić błędy z statusem VPN i nie będzie miało wpływu na konfigurację usługodawców/hostów.";
"organizer.alerts.remove_profile.title" = "Usuń profil";
"organizer.alerts.remove_profile.message" = "Na pewno chcesz usunąć profil %@?";
"organizer.menus.add_profile.imported" = "Dodaj %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Nowy profil";
"add_profile.shared.views.existing.header" = "Istniejące profile";
"add_profile.shared.alerts.overwrite.message" = "Profil hosta z taką nazwą już istnieje. Nadpisać profil?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Wpisz frazę szyfrującą";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Usługodawcy";
"add_profile.provider.sections.vpn.footer" = "Tutaj znajdziesz kilku usługodawców z profilami konfiguracyjnymi.";
"add_profile.provider.items.update_list" = "Zaktualizuj listę";
"add_profile.provider.errors.no_default_server" = "Nie znaleziono żadnego serwera.";
// MARK: ProfileView
"profile.sections.provider.header" = "Dostawca";
/* MARK: ProfileView */
"profile.welcome.message" = "Witaj w Passepartout!\n\nUżyj organizera by utworzyć nowy profil.";
"profile.sections.vpn.footer" = "Połączenie zostanie nawiązane zgodnie z ustawieniami.";
"profile.sections.status.header" = "Połączenie";
"profile.sections.configuration.header" = "Konfiguracja";
"profile.sections.provider_infrastructure.footer" = "Ostatnio aktualizowane %@.";
"profile.sections.vpn_survives_sleep.footer" = "Wyłącz dla mniejszego zużycia baterii kosztem wolniejszego działania spowodowanego ponownym połączeniem przy wybudzeniu urządzenia.";
"profile.sections.vpn_resolves_hostname.footer" = "Preferowane w większości sieci i potrzebne w niektórych sieciach IPv6. Wyłącz kiedy DNS jest zablokowane, lub żeby przyspieszyć ustanawianie połączenia gdy DNS jest zbyt wolne.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Utrzymuj połączenie przy zablokowanym ekranie";
"profile.items.vpn_resolves_hostname.caption" = "Rozwiązuj nazwy hostów usługodawcy";
"profile.items.reconnect.caption" = "Połącz ponownie";
"profile.items.uninstall.caption" = "Usuń konfiguracje VPN";
"profile.alerts.rename.title" = "Zmień nazwę profilu";
"profile.alerts.reconnect_vpn.message" = "Czy chcesz połączyć się ponownie z VPN?";
"profile.alerts.uninstall_vpn.message" = "Na pewno chcesz usunąć konfigurację VPN z urządzenia? Może to naprawić błędy z statusem VPN i nie będzie miało wpływu na konfigurację usługodawców/hostów.";
"profile.alerts.test_connectivity.title" = "Połączenie";
"profile.alerts.test_connectivity.messages.success" = "Twoje urządzenie jest połączone z internetem!";
"profile.alerts.test_connectivity.messages.failure" = "Twoje urządzenie nie jest połączone z internetem, sprawdź ustawienia profilu.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Lokalizacja";
"provider.location.sections.empty_favorites.footer" = "Aby usunąć zakładkę, przesuń w lewo.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Preset";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Konto";
"account.sections.credentials.header" = "Dane logowania";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Użyj loginu do %@. Twoja nazwa użytkownika to najczęściej e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Użyj loginu do %@ z generatora konfiguracji OpenVPN dostępnego na stronie.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Wcześniej udostępniony klucz";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "po %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Losowy host końcowy";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Ustawienia sieci";
"network_settings.sections.choices.header" = "Nadpisz";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Pomiń domenę";
"network_settings.items.add_proxy_bypass.caption" = "Dodaj domenę";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Zaufane sieci";
"on_demand.sections.policy.footer" = "Kiedy urządzenie łączy się z zaufaną siecią, VPN jest wyłączane. Wyłącz tę opcję żeby nie wymuszać takiego zachowania.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Zaznacz, aby traktować każde przewodowe połączenie kablowe jako zaufane.";
"on_demand.items.policy.caption" = "Wyłącz VPN dla zaufanych sieci";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnostyka";
"diagnostics.sections.debug_log.footer" = "Status maskowania będzie widoczny po ponownym połączeniu. Dane połączenia to nazwy hostów, adresy IP, routing, SSID. Loginy i klucze prywatne nie są zapisywane.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Aby bezpiecznie zresetować rejestr debugowania i zastosować nowe ustawienia maskowania, musisz połączyć się z VPN ponownie.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Debugowanie";
"debug_log.buttons.copy" = "Kopiuj";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Zgłoś błąd";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Dodaj skrót";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Zarządzaj skrótami";
"shortcuts.edit.sections.all.header" = "Istniejące skróty";
"shortcuts.edit.sections.add.footer" = "Użyj Siri żeby przyspieszyć najczęstsze akcje w aplikacji.";
"shortcuts.edit.items.add_shortcut.caption" = "Dodaj skrót";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Kup";
"paywall.sections.products.footer" = "Każdy produkt to zakup jednorazowy. Kuipno usługodawcy nie zawiera subskrypcji VPN.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Przywróć zakup";
"paywall.items.restore.description" = "Jeśli kupiłeś tą aplikację lub funkcję wcześniej, możesz przywrócić swoje zakupy i ten ekran nie będzie wyświetlony ponownie.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Dotacja";
"donate.sections.one_time.header" = "Jeden raz";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "To dla mnie dużo znaczy, mam nadzięję że będziesz używać aplikacji i przyczynisz się do jej rozpowrzechnienia.";
"donate.alerts.purchase.failure.message" = "Nie można dokonać dotacji. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "O programie";
"about.sections.web.header" = "Strona WWW";
"about.sections.share.header" = "Udostępnij";
"about.items.credits.caption" = "Twórcy";
"about.items.website.caption" = "Strona domowa";
"about.items.disclaimer.caption" = "Disclaimer";
"about.items.privacy_policy.caption" = "Polityka prywatności";
"about.items.share_twitter.caption" = "Wyślij tweeta!";
"about.items.share_generic.caption" = "Zaproś znajomego";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Wersja";
"version.labels.intro" = "Passepartout i TunnelKit są stworzone i utrzymywane przez Davide De Rosa (keeshux).\n\nKod źródłowy Passepartout i TunnelKit jest publicznie dostępny na licencji GPLv3, linki możesz znaleźć na stronie domowej.\n\nPassepartout nie jest oficjanlnym klientem i nie jest powiązany z OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Twórcy";
"credits.sections.licenses.header" = "Licencje";
"credits.sections.notices.header" = "Dodatki";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Preferencje";
"preferences.sections.general.header" = "Ogólne";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Zaznacz, aby automatycznie uruchamiać aplikację przy restarcie systemu lub logowaniu.";
"preferences.items.confirm_quit.caption" = "Potwierdź zakończenie pracy";
"preferences.items.confirm_quit.footer" = "Zaznacz, aby wyświetlić monit o potwierdzeniu zakończenia.";
// MARK: Menu (macOS)
"menu.show.title" = "Pokaż";
"menu.switch_profile.title" = "Aktywny profil";
"menu.active_profile.title.none" = "Brak aktywnych profili";
"menu.active_profile.items.customize.title" = "Personalizuj";
"menu.active_profile.messages.missing_credentials" = "Brak skonfigurowanych kont";
"menu.organizer.title" = "Organzator";
"menu.preferences.title" = "Preferencje";
"menu.support.title" = "Obsługa techniczna";
"menu.quit.title" = "Zakończ %@";
"menu.quit.messages.confirm" = "Jeśli sieć VPN, jest włączona, będzie nadal działać w tle. Chcesz zakończyć?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Cancelar";
"global.strings.next" = "Próximo";
@ -15,6 +15,9 @@
"global.strings.add" = "Adicionar";
"global.strings.default" = "Default";
"global.strings.name" = "Nome";
"global.strings.provider" = "Provedor";
"global.strings.providers" = "Provedores";
"global.strings.configuration" = "Configuração";
"global.strings.address" = "Endereço";
"global.strings.addresses" = "Endereços";
"global.strings.port" = "Porta";
@ -41,7 +44,7 @@
"global.strings.translations" = "Traduções";
"global.messages.email_not_configured" = "Nenhuma conta de email configurada.";
"global.messages.share" = "Passepartout é um cliente OpenVPN fácil e open-source para iOS e macOS";
"global.messages.share" = "Passepartout é um cliente OpenVPN / WireGuard fácil e open-source para iOS e macOS";
"global.placeholders.profile_name" = "Meu perfil";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Servidor em falta";
"global.errors.missing_provider_preset" = "Pré-definição em falta";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Suporte";
"menu.all.share.title" = "Compartilhar";
"menu.all.about.title" = "Sobre %@";
"menu.contextual.add_profile.imported" = "Adicionar %@";
"menu.system.show.title" = "Mostrar";
"menu.system.switch_profile.title" = "Perfil ativo";
"menu.system.active_profile.title.none" = "Sem perfil ativo";
"menu.system.active_profile.items.customize.title" = "Personalizar...";
"menu.system.active_profile.messages.missing_credentials" = "Não há uma conta configurada";
"menu.system.organizer.title" = "Organizador";
"menu.system.preferences.title" = "Preferências";
"menu.system.support.donate" = "Fazer doação";
"menu.system.support.join_community" = "Participar da comunidade";
"menu.system.support.write_review" = "Escrever avaliação";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Tweet sobre isso!";
"menu.system.share_generic.caption" = "Convide um amigo";
"menu.system.quit.title" = "Sair %@";
"menu.system.quit.messages.confirm" = "A VPN, se ativa, ainda vai ser executada em segundo plano. Quer sair?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Conectando";
"tunnelkit.vpn.active" = "Ativa";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Por favor, digite sua senha de criptografia.";
"tunnelkit.errors.openvpn.decryption" = "Sua configiração possui uma chave privada criptografada que talvez não possa ser descriptografada. Verifique novamente sua senha de criptografia.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Venha me ver fazer o Passepartout ao vivo no Twitch, entre no chat para interagir e contribuir!";
"organizer.sections.siri.footer" = "Peça ajuda para Siri para agilar tarefas comum do aplicativo.";
"organizer.sections.support.header" = "Suporte";
"organizer.items.follow_twitch.caption" = "Assistir Passepartout no Twitch";
"organizer.items.profile.value.current" = "Ativo";
"organizer.items.siri_shortcuts.caption" = "Gerenciar atalhos";
"organizer.items.join_community.caption" = "Participar da comunidade";
"organizer.items.write_review.caption" = "Escrever avaliação";
"organizer.items.donate.caption" = "Fazer doação";
"organizer.items.github_sponsors.caption" = "Contribuir no GitHub";
"organizer.items.translate.caption" = "Ajudar-nos na tradução";
"organizer.items.about.caption" = "Sobre %@";
"organizer.items.uninstall.caption" = "Remover configuração VPN";
"organizer.items.add_provider.caption" = "Adicionar novo perfil";
"organizer.items.add_host.caption" = "Adicionar dos Arquivos";
"organizer.alerts.reddit.message" = "Você sabia que Passepartout tem um subreddit? Siga-nos para atualizações ou para discutir problemas, novas funcionalidades, ou qualquer outro tópico.\n\nÉ uma boa maneira de mostrar seu interesse pelo projeto.";
"organizer.alerts.reddit.buttons.subscribe" = "Seguir!";
"organizer.alerts.reddit.buttons.remind" = "Lembrar-me depois";
"organizer.alerts.reddit.buttons.never" = "Não perguntar novamente";
"organizer.alerts.uninstall_vpn.message" = "Tem certeza que deseja remover as configurações de VPN do seu dispositivo? Isso poderá corrigir problemas com o estado atual, sem afetar seu provedor e perfis do host.";
"organizer.alerts.remove_profile.title" = "Remover perfil";
"organizer.alerts.remove_profile.message" = "Tem a certeza de que pretende eliminar o perfil %@?";
"organizer.menus.add_profile.imported" = "Adicionar %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Perfil novo";
"add_profile.shared.views.existing.header" = "Perfis existentes";
"add_profile.shared.alerts.overwrite.message" = "Já existe um perfil com o mesmo nome. Deseja substituí-lo?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Introduza a sua senha de criptografia";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Provedores";
"add_profile.provider.sections.vpn.footer" = "Aqui você encontra um provedor com o perfil pré-configurado.";
"add_profile.provider.items.update_list" = "Atualizar lista";
"add_profile.provider.errors.no_default_server" = "Impossível encontrar um servidor.";
// MARK: ProfileView
"profile.sections.provider.header" = "Fornecedor";
/* MARK: ProfileView */
"profile.welcome.message" = "Bem-vindo ao Passepartout!\n\nUse o organizador para adicionar um novo perfil.";
"profile.sections.vpn.footer" = "A conexão será estabelecida assim que necessária.";
"profile.sections.status.header" = "Conexão";
"profile.sections.configuration.header" = "Configuração";
"profile.sections.provider_infrastructure.footer" = "Última atualização em %@.";
"profile.sections.vpn_survives_sleep.footer" = "Desative para melhorar o consumo de bateria, o que poderá ocasionar queda de performance quando o restabelecimento de conexão for realizado.";
"profile.sections.vpn_resolves_hostname.footer" = "Recomendado para maioria das redes e requirido em algumas redes IPv6. Desative se o DNS estiver bloqueado, ou para acelerar o DNS quando o mesmo está devagar.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Manter ativo em modo descanço";
"profile.items.vpn_resolves_hostname.caption" = "Resolver hostname do servidor";
"profile.items.reconnect.caption" = "Reconectar";
"profile.items.uninstall.caption" = "Remover configuração VPN";
"profile.alerts.rename.title" = "Renomear perfil";
"profile.alerts.reconnect_vpn.message" = "Deseja reconectar à VPN?";
"profile.alerts.uninstall_vpn.message" = "Tem certeza que deseja remover as configurações de VPN do seu dispositivo? Isso poderá corrigir problemas com o estado atual, sem afetar seu provedor e perfis do host.";
"profile.alerts.test_connectivity.title" = "Conectividade";
"profile.alerts.test_connectivity.messages.success" = "Seu dispositivo está conectado à Internet!";
"profile.alerts.test_connectivity.messages.failure" = "Seu dispositivo não está conectado à Internet, por favor, verifique sua configurações.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Localização";
"provider.location.sections.empty_favorites.footer" = "Deslize para a esquerda em um local para adicioná-lo ou removê-lo dos Favoritos.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Pré-definição";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Conta";
"account.sections.credentials.header" = "Credenciais";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Utilize %@ credenciais do site. Seu usuário é normalmente o seu email.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Encontre %@ credenciais no gerador de configuração OpenVPN do site.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Ponto";
"endpoint.wireguard.items.preshared_key.caption" = "Chave pré-partilhada";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "depois de %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Destino randômico";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Configurações de rede";
"network_settings.sections.choices.header" = "Substituir";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Domínio ignorado";
"network_settings.items.add_proxy_bypass.caption" = "Adicionar domínio ignorado";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Redes seguras";
"on_demand.sections.policy.footer" = "Ao entrar em uma rede segura, a VPN é normalmente é desconectada e mantido inativa. Desative essa opção para não forçar esse comportamento.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Assinale para confiar em qualquer ligação com cabo.";
"on_demand.items.policy.caption" = "Trust disables VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnóstico";
"diagnostics.sections.debug_log.footer" = "O status será escondido após reconectado. Os dados da rede são hostnames, endereços de IP, rotas, SSID. Credenciais e chaves privadas não será logadas em nenhum dos casos.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Para garantir uma restauração segura do seu log de debug, você precisa reconectar à VPN.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Log de Debug";
"debug_log.buttons.copy" = "Copiar";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Reportar problema";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Adicionar atalho";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Configuração de atalhos";
"shortcuts.edit.sections.all.header" = "Atalhos existentes";
"shortcuts.edit.sections.add.footer" = "Peça ajuda para Siri para agilar tarefas comum do aplicativo.";
"shortcuts.edit.items.add_shortcut.caption" = "Adicionar atalho";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Comprar";
"paywall.sections.products.footer" = "Todo produto é uma compra única. As compras do fornecedor não incluem uma assinatura VPN.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Restaurar compras";
"paywall.items.restore.description" = "Se você comprou este aplicativo ou recurso no passado, pode restaurar suas compras e essa tela não será exibida novamente.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Doar";
"donate.sections.one_time.header" = "Uma vez";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "Isso significa muito para mim! Espero que você continue usando e promovendo esse aplicativo.";
"donate.alerts.purchase.failure.message" = "Não foi possível realizar doação. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "Sobre";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Compartilhar";
"about.items.credits.caption" = "Créditos";
"about.items.website.caption" = "Home page";
"about.items.disclaimer.caption" = "Disclaimer";
"about.items.privacy_policy.caption" = "Política de privacidade";
"about.items.share_twitter.caption" = "Tweet sobre isso!";
"about.items.share_generic.caption" = "Convide um amigo";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Versão";
"version.labels.intro" = "Passepartout e TunnelKit são desenvolvidos e mantidos por Davide De Rosa (keeshux).\n\nO código de fonte está disponível no GitHub sobre a licença GPLv3, você pode encontrar links na home page.\n\nPassepartout não é um cliente oficial e não possui nenhuma ligação com a OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Créditos";
"credits.sections.licenses.header" = "Licenças";
"credits.sections.notices.header" = "Notices";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Preferências";
"preferences.sections.general.header" = "Geral";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Assinale para executar automaticamente a aplicação ao arrancar ou com o início de sessão.";
"preferences.items.confirm_quit.caption" = "Confirmar a saída";
"preferences.items.confirm_quit.footer" = "Assinale para apresentar um alerta de confirmação da saída.";
// MARK: Menu (macOS)
"menu.show.title" = "Mostrar";
"menu.switch_profile.title" = "Perfil ativo";
"menu.active_profile.title.none" = "Sem perfil ativo";
"menu.active_profile.items.customize.title" = "Personalizar...";
"menu.active_profile.messages.missing_credentials" = "Não há uma conta configurada";
"menu.organizer.title" = "Organizador";
"menu.preferences.title" = "Preferências";
"menu.support.title" = "Apoio";
"menu.quit.title" = "Sair %@";
"menu.quit.messages.confirm" = "A VPN, se ativa, ainda vai ser executada em segundo plano. Quer sair?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Отменить";
"global.strings.next" = "Далее";
@ -15,6 +15,9 @@
"global.strings.add" = "Добавить";
"global.strings.default" = "По умолчанию";
"global.strings.name" = "Имя";
"global.strings.provider" = "Провайдер";
"global.strings.providers" = "Провайдеры";
"global.strings.configuration" = "Конфигурация";
"global.strings.address" = "Адрес";
"global.strings.addresses" = "Адреса";
"global.strings.port" = "порт";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Отсутствует сервер";
"global.errors.missing_provider_preset" = "Отсутствует пресет";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Поддержка";
"menu.all.share.title" = "Поделиться";
"menu.all.about.title" = "Об %@";
"menu.contextual.add_profile.imported" = "Добавить %@";
"menu.system.show.title" = "Показать";
"menu.system.switch_profile.title" = "Активный профиль";
"menu.system.active_profile.title.none" = "Нет активных профилей";
"menu.system.active_profile.items.customize.title" = "Настроить...";
"menu.system.active_profile.messages.missing_credentials" = "Нет настроенных аккаунтов";
"menu.system.organizer.title" = "Организатор";
"menu.system.preferences.title" = "Настройки";
"menu.system.support.donate" = "Сделать пожертвование";
"menu.system.support.join_community" = "Вступить в сообщество";
"menu.system.support.write_review" = "Написать отзыв";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Твитнуть о нас!";
"menu.system.share_generic.caption" = "Пригласить друга";
"menu.system.quit.title" = "Выйти из %@";
"menu.system.quit.messages.confirm" = "Если включить VPN, он всё равно будет работать в фоновом режиме. Вы точно хотите выйти?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Подключается";
"tunnelkit.vpn.active" = "Активен";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Пожалуйста, введите кодовую фразу шифрования";
"tunnelkit.errors.openvpn.decryption" = "Конфигурация содержит зашифрованный приватный ключ, он не может быть расшифрован. Перепроверьте кодовую фразу.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Приходите посмотреть, как я делаю Passepartout в прямом эфире на Twitch, присоединяйтесь к чату, чтобы общаться и вносить свой вклад!";
"organizer.sections.siri.footer" = "Получить помощь Сири, чтобы ускорить частые действия с приложением.";
"organizer.sections.support.header" = "Поддержка";
"organizer.items.follow_twitch.caption" = "Смотрите Паспарту на Twitch";
"organizer.items.profile.value.current" = "Используется";
"organizer.items.siri_shortcuts.caption" = "Управлять коммандами";
"organizer.items.join_community.caption" = "Вступить в сообщество";
"organizer.items.write_review.caption" = "Написать отзыв";
"organizer.items.donate.caption" = "Сделать пожертвование";
"organizer.items.github_sponsors.caption" = "Поддержите меня на GitHub";
"organizer.items.translate.caption" = "Помощь с переводом";
"organizer.items.about.caption" = "Об %@";
"organizer.items.uninstall.caption" = "Удалить VPN конфигурацию";
"organizer.items.add_provider.caption" = "Добавить нового провайдера";
"organizer.items.add_host.caption" = "Добавить из файлов";
"organizer.alerts.reddit.message" = "А Вы знали, что Passepartout имеет свой сабреддит? Подписывайтесь для получения обновлений, обсуждения проблем, функций, новых платформ или чего угодно.\n\nЭто также отличный способ показать поддержку проекта.";
"organizer.alerts.reddit.buttons.subscribe" = "Подписаться сейчас!";
"organizer.alerts.reddit.buttons.remind" = "Напомнить позже";
"organizer.alerts.reddit.buttons.never" = "Больше не спрашивать";
"organizer.alerts.uninstall_vpn.message" = "Вы действительно хотите убрать VPN конфигурацию из настроек устройства? Это может исправить несколько VPN ошибок, но не изменит установки приложения.";
"organizer.alerts.remove_profile.title" = "Удалить профиль";
"organizer.alerts.remove_profile.message" = "Вы точно хотите удалить профиль %@?";
"organizer.menus.add_profile.imported" = "Добавить %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Новый профиль";
"add_profile.shared.views.existing.header" = "Существующие профили";
"add_profile.shared.alerts.overwrite.message" = "Профиль с этим именем уже существует. Заменить?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Введите кодовую фразу";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Провайдеры";
"add_profile.provider.sections.vpn.footer" = "Здесь Вы найдёте несколько провайдеров с уже созданными профилями.";
"add_profile.provider.items.update_list" = "Обновить список";
"add_profile.provider.errors.no_default_server" = "Не удалось найти сервер.";
// MARK: ProfileView
"profile.sections.provider.header" = "Провайдер";
/* MARK: ProfileView */
"profile.welcome.message" = "Добро пожаловать в Passepartout!\n\nИспользуйте организатор для добавления нового профиля.";
"profile.sections.vpn.footer" = "Соединение будет установлено при необходимости.";
"profile.sections.status.header" = "Соединение";
"profile.sections.configuration.header" = "Конфигурация";
"profile.sections.provider_infrastructure.footer" = "Последнее обновление %@.";
"profile.sections.vpn_survives_sleep.footer" = "Отключите для уменьшения расхода заряда аккумулятора, может привести к временным замедлениям в связи с повторным подключением после \"пробуждения\".";
"profile.sections.vpn_resolves_hostname.footer" = "Предпочтительно в большинстве сетей и необходимо в некоторых IPv6 сетях. Отключите если  DNS заблокирован, или для увеличения скорости в случае медленных ответов DNS.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Оставлять включенным во время сна";
"profile.items.vpn_resolves_hostname.caption" = "Разрешить имя хоста сервера";
"profile.items.reconnect.caption" = "Переподключиться";
"profile.items.uninstall.caption" = "Удалить VPN конфигурацию";
"profile.alerts.rename.title" = "Переименовать профиль";
"profile.alerts.reconnect_vpn.message" = "Хотите заново подключиться к VPN?";
"profile.alerts.uninstall_vpn.message" = "Вы действительно хотите убрать VPN конфигурацию из настроек устройства? Это может исправить несколько VPN ошибок, но не изменит установки приложения.";
"profile.alerts.test_connectivity.title" = "Связь";
"profile.alerts.test_connectivity.messages.success" = "Ваше устройство подключено к интернету!";
"profile.alerts.test_connectivity.messages.failure" = "Ваше устройство не подключено к интернету, пожалйста проверьте установки Вашего профиля.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Местоположение";
"provider.location.sections.empty_favorites.footer" = "Свайп в лево на локации, чтобы добавить или убрать из избранного.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Пресет";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Аккаунт";
"account.sections.credentials.header" = "Данные для входа";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Используйте данные для входа на %@ веб-сайт. Ваш логин обычно Ваш e-mail.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Найдите Ваши данные для входа %@ в OpenVPN Config Generator на веб-сайте.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Узел";
"endpoint.wireguard.items.preshared_key.caption" = "Общий ключ";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "после %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Рандомная конечная точка";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Сетевые настройки";
"network_settings.sections.choices.header" = "Игнорировать";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Обход домена";
"network_settings.items.add_proxy_bypass.caption" = "Добавить обходной домен";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Доверенные сети";
"on_demand.sections.policy.footer" = "При подключении к доверенным сетям VPN обычно выключается, и остаётся отключенным. Отключите эту опцию чтобы оставлять VPN подключенным.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Включите, чтобы добавить в доверенные проводное подключение.";
"on_demand.items.policy.caption" = "Дов. сеть отключает VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Диагностика";
"diagnostics.sections.debug_log.footer" = "Маскировка включится после повторного подключения. Информация о сети - это названия хост профилей, IP адрес, маршрутизация и SSID. Данные для входа и приватные ключи не собираются.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "Для безопасного сброса журнала отладки и изменения маскировки информации сети Вы должны заново подключиться к VPN.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Журнал отладки";
"debug_log.buttons.copy" = "Копировать";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Сообщить о проблеме";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Создать команду";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Управлять командами";
"shortcuts.edit.sections.all.header" = "Существующие команды";
"shortcuts.edit.sections.add.footer" = "Получить помощь Сири, чтобы ускорить частые действия с приложением.";
"shortcuts.edit.items.add_shortcut.caption" = "Создать команду";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Покупка";
"paywall.sections.products.footer" = "Каждый продукт является разовой покупкой. Покупка провайдера не включает подписку на VPN.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Восстановить покупки";
"paywall.items.restore.description" = "Если Вы купили это приложение или совершили встроенные покупки в прошлом, вы можете восстановить ваши покупки, и этот баннер больше не появится.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Пожертвовать";
"donate.sections.one_time.header" = "Один раз";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "Это значит многое для меня, и, я надеюсь, Вы продолжить использовать и рассказывать об этом приложении.";
"donate.alerts.purchase.failure.message" = "Не получается совершить пожертвование. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "О нас";
"about.sections.web.header" = "Веб";
"about.sections.share.header" = "Поделиться";
"about.items.credits.caption" = "Благодарности";
"about.items.website.caption" = "Домашняя страница";
"about.items.disclaimer.caption" = "Предупреждение";
"about.items.privacy_policy.caption" = "Политика конфиденциальности";
"about.items.share_twitter.caption" = "Твитнуть о нас!";
"about.items.share_generic.caption" = "Пригласить друга";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Версия";
"version.labels.intro" = "Passepartout и TunnelKit написаны и установлены Davide De Rosa (keeshux).\n\nИсходные коды для Passepartout и TunnelKit публично доступны на GitHub под GPLv3, вы можете найти ссылки на домашней странице.\n\nPassepartout является неофициальным клиентом, и никаким образом не связан с OpenVPN Inc.";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Благодарность";
"credits.sections.licenses.header" = "Лицензии";
"credits.sections.notices.header" = "Упоминания";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Настройки";
"preferences.sections.general.header" = "Общие";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Включите, чтобы приложение автоматически запускалось при загрузке или входе.";
"preferences.items.confirm_quit.caption" = "Подтверждать выход";
"preferences.items.confirm_quit.footer" = "Включите, чтобы выход надо было подтверждать.";
// MARK: Menu (macOS)
"menu.show.title" = "Показать";
"menu.switch_profile.title" = "Активный профиль";
"menu.active_profile.title.none" = "Нет активных профилей";
"menu.active_profile.items.customize.title" = "Настроить...";
"menu.active_profile.messages.missing_credentials" = "Нет настроенных аккаунтов";
"menu.organizer.title" = "Организатор";
"menu.preferences.title" = "Настройки";
"menu.support.title" = "Поддержка";
"menu.quit.title" = "Выйти из %@";
"menu.quit.messages.confirm" = "Если включить VPN, он всё равно будет работать в фоновом режиме. Вы точно хотите выйти?";

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "Avbryt";
"global.strings.next" = "Nästa";
@ -15,6 +15,9 @@
"global.strings.add" = "Lägg till";
"global.strings.default" = "Default";
"global.strings.name" = "Namn";
"global.strings.provider" = "Leverantör";
"global.strings.providers" = "Leverantörer";
"global.strings.configuration" = "Konfiguration";
"global.strings.address" = "Adress";
"global.strings.addresses" = "Adresser";
"global.strings.port" = "Port";
@ -41,7 +44,7 @@
"global.strings.translations" = "Translations";
"global.messages.email_not_configured" = "Inget e-postkonto är konfigurerat.";
"global.messages.share" = "Passepartout är en användarvänlig öppen källkod OpenVPN-klient för iOS och macOS";
"global.messages.share" = "Passepartout är en användarvänlig öppen källkod OpenVPN / WireGuard klient för iOS och macOS";
"global.placeholders.profile_name" = "Min profil";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "Server saknas";
"global.errors.missing_provider_preset" = "Förinställning saknas";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "Support";
"menu.all.share.title" = "Dela";
"menu.all.about.title" = "Om %@";
"menu.contextual.add_profile.imported" = "Lägg till %@";
"menu.system.show.title" = "Visa";
"menu.system.switch_profile.title" = "Aktiv profil";
"menu.system.active_profile.title.none" = "Ingen aktiv profil";
"menu.system.active_profile.items.customize.title" = "Anpassa";
"menu.system.active_profile.messages.missing_credentials" = "Inget konto har konfigurerats";
"menu.system.organizer.title" = "Organisatör";
"menu.system.preferences.title" = "Inställningar";
"menu.system.support.donate" = "Gör en donation";
"menu.system.support.join_community" = "Gå med i communityn";
"menu.system.support.write_review" = "Skriv en recension";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "Tweet om det!";
"menu.system.share_generic.caption" = "Bjud in en vän";
"menu.system.quit.title" = "Lämna %@";
"menu.system.quit.messages.confirm" = "Om ett VPN är aktiverat kommer detta fortfarande att köra i bakgrunden. Vill du lämna?";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "Anslutning";
"tunnelkit.vpn.active" = "Aktiv";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "Var god ange krypteringslösenfrasen.";
"tunnelkit.errors.openvpn.decryption" = "Konfigurationen innehåller en krypterad privat nyckel och den kan inte dekrypteras. Kontrollera din inmatade lösenfras.";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "Kom och se mig göra Passepartout live på Twitch, gå med i chatten för att interagera och bidra!";
"organizer.sections.siri.footer" = "Få hjälp från Siri för att påskynda dina vanligaste interaktioner med appen.";
"organizer.sections.support.header" = "Support";
"organizer.items.follow_twitch.caption" = "Se Passepartout on Twitch";
"organizer.items.profile.value.current" = "Under användning";
"organizer.items.siri_shortcuts.caption" = "Hantera genvägar";
"organizer.items.join_community.caption" = "Gå med i communityn";
"organizer.items.write_review.caption" = "Skriv en recension";
"organizer.items.donate.caption" = "Gör en donation";
"organizer.items.github_sponsors.caption" = "Stötta mig på GitHub";
"organizer.items.translate.caption" = "Erbjuda att översätta";
"organizer.items.about.caption" = "Om %@";
"organizer.items.uninstall.caption" = "Ta bort VPN-konfiguration";
"organizer.items.add_provider.caption" = "Lägg till ny leverantör";
"organizer.items.add_host.caption" = "Lägg till från Filer";
"organizer.alerts.reddit.message" = "Visste du att Passepartout har en subreddit? Prenumerera på uppdateringar eller diskutera problem, funktioner, nya plattformar eller vad du vill. \n\nDet är också ett bra sätt att visa dig bryr dig om detta projekt.";
"organizer.alerts.reddit.buttons.subscribe" = "Prenumerera nu!";
"organizer.alerts.reddit.buttons.remind" = "Påminn mig senare";
"organizer.alerts.reddit.buttons.never" = "Fråga inte igen";
"organizer.alerts.uninstall_vpn.message" = "Vill du verkligen radera VPN-konfigurationen från enhetens inställningar? Detta kan fixa några trasiga VPN tillstånd och påverkar inte dina leverantörs- och värdprofiler.";
"organizer.alerts.remove_profile.title" = "Ta bort profil";
"organizer.alerts.remove_profile.message" = "Är det säkert att du vill ta bort profilen %@?";
"organizer.menus.add_profile.imported" = "Lägg till %@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "Ny profil";
"add_profile.shared.views.existing.header" = "Befintliga profiler";
"add_profile.shared.alerts.overwrite.message" = "En profil med samma namn finns redan. Vill du ersätta den?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "Ange lösenfras";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "Leverantörer";
"add_profile.provider.sections.vpn.footer" = "Här hittar du några leverantörer med förinställda konfigurationsprofiler.";
"add_profile.provider.items.update_list" = "Uppdatera listan";
"add_profile.provider.errors.no_default_server" = "Ingen server hittades.";
// MARK: ProfileView
"profile.sections.provider.header" = "Leverantör";
/* MARK: ProfileView */
"profile.welcome.message" = "Välkommen till Passepartout! \n\nAnvänd arrangören för att lägga till en ny profil.";
"profile.sections.vpn.footer" = "Anslutningen kommer att upprättas vid behov.";
"profile.sections.status.header" = "Koppling";
"profile.sections.configuration.header" = "Konfiguration";
"profile.sections.provider_infrastructure.footer" = "Senast uppdaterad på %@.";
"profile.sections.vpn_survives_sleep.footer" = "Inaktivera för att förbättra batterianvändningen, på bekostnad av tillfälliga avmattningar på grund av återuppkoppling.";
"profile.sections.vpn_resolves_hostname.footer" = "Föredragna i de flesta nätverk och krävs i vissa IPv6-nätverk. Inaktivera var DNS blockeras eller för att påskynda förhandlingar när DNS är långsamt att svara.";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "Håll dig levande i sömnen";
"profile.items.vpn_resolves_hostname.caption" = "Lösa server värdnamn";
"profile.items.reconnect.caption" = "Återanslut";
"profile.items.uninstall.caption" = "Ta bort VPN-konfiguration";
"profile.alerts.rename.title" = "Byt namn på profil";
"profile.alerts.reconnect_vpn.message" = "Vill du återansluta till VPN?";
"profile.alerts.uninstall_vpn.message" = "Vill du verkligen radera VPN-konfigurationen från enhetens inställningar? Detta kan fixa några trasiga VPN tillstånd och påverkar inte dina leverantörs- och värdprofiler.";
"profile.alerts.test_connectivity.title" = "Anslutningar";
"profile.alerts.test_connectivity.messages.success" = "Din enhet är ansluten till Internet!";
"profile.alerts.test_connectivity.messages.failure" = "Din enhet har ingen Internetanslutning, var god granska dina profilparametrar.";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "Plats";
"provider.location.sections.empty_favorites.footer" = "Dra åt vänster på en plats för att lägga till eller ta bort den från favoriter.";
@ -165,7 +168,7 @@
"provider.preset.title" = "Förinställt";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "Konto";
"account.sections.credentials.header" = "Referenser";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "Använd dina %@ webbplatsuppgifter. Ditt användarnamn är vanligtvis ditt e-postmeddelande.";
"account.sections.guidance.footer.infrastructure.windscribe" = "Hitta din %@ credentials i OpenVPN Config Generator på webbplatsen.";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "Peer";
"endpoint.wireguard.items.preshared_key.caption" = "Tidigare delad nyckel";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "efter %@";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "Omställ slutpunkt på slumpmässigt sätt";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "Nätverksinställningar";
"network_settings.sections.choices.header" = "Åsidosätt";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "Bypass-domän";
"network_settings.items.add_proxy_bypass.caption" = "Add bypass domain";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "Tillförlitliga nätverk";
"on_demand.sections.policy.footer" = "När du advänder ett betrott nätverk, VPN:et stängs normalt och hålls bortkopplat. Avaktivera detta alternativet för att inte genomdriva sådant beteende.";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "Markera för att lita på alla kabelanslutna uppkopplingar.";
"on_demand.items.policy.caption" = "Förtroende inaktiverar VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "Diagnostics";
"diagnostics.sections.debug_log.footer" = "Masking status kommer att fungera efter återanslutning. Nätverksdata är värdnamn, IP-adresser, routing, SSID. Referenser och privata nycklar loggas inte oavsett.";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "För att säkert återställa den aktuella felsökningsloggen och tillämpa den nya maskeringspreferensen måste du återansluta till VPN nu.";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "Debug log";
"debug_log.buttons.copy" = "Kopiera";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "Rapportera problem";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "Lägg till genväg";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "Hantera genvägar";
"shortcuts.edit.sections.all.header" = "Befintliga genvägar";
"shortcuts.edit.sections.add.footer" = "Få hjälp från Siri för att påskynda dina vanligaste interaktioner med appen.";
"shortcuts.edit.items.add_shortcut.caption" = "Lägg till genväg";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "Köp";
"paywall.sections.products.footer" = "Varje produkt är ett engångsköp. Leverantörsköp inkluderar inte ett VPN-abonnemang.";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "Återställ köp";
"paywall.items.restore.description" = "Om du köpte den här appen eller funktionen tidigare kan du återställa dina inköp och den här skärmen visas inte igen.";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "Donera";
"donate.sections.one_time.header" = "En gång";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "Detta betyder mycket för mig och jag hoppas verkligen att du fortsätter att använda och marknadsföra denna app.";
"donate.alerts.purchase.failure.message" = "Kan inte göra donationen. %@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "About";
"about.sections.web.header" = "Web";
"about.sections.share.header" = "Dela";
"about.items.credits.caption" = "Credits";
"about.items.website.caption" = "Hemsida";
"about.items.disclaimer.caption" = "Disclaimer";
"about.items.privacy_policy.caption" = "Sekretesspolicy";
"about.items.share_twitter.caption" = "Tweet om det!";
"about.items.share_generic.caption" = "Bjud in en vän";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "Version";
"version.labels.intro" = "Passepartout och TunnelKit skrivs och underhålls av Davide De Rosa (keeshux). \n\nKällkod för Passepartout och TunnelKit är offentligt tillgänglig på GitHub under GPLv3, du kan hitta länkar på hemsidan. \n\nPassepartout är en icke-officiell klient och är inte på något sätt ansluten till OpenVPN Inc. ";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "Credits";
"credits.sections.licenses.header" = "Licenses";
"credits.sections.notices.header" = "Meddelanden";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "Inställningar";
"preferences.sections.general.header" = "Allmänt";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "Markera för att starta appen automatiskt efter omstart eller vid inloggning.";
"preferences.items.confirm_quit.caption" = "Bekräfta lämna";
"preferences.items.confirm_quit.footer" = "Markera för att visa en uppmaning att bekräfta att man vill lämna appen.";
// MARK: Menu (macOS)
"menu.show.title" = "Visa";
"menu.switch_profile.title" = "Aktiv profil";
"menu.active_profile.title.none" = "Ingen aktiv profil";
"menu.active_profile.items.customize.title" = "Anpassa";
"menu.active_profile.messages.missing_credentials" = "Inget konto har konfigurerats";
"menu.organizer.title" = "Organisatör";
"menu.preferences.title" = "Inställningar";
"menu.support.title" = "Support";
"menu.quit.title" = "Lämna %@";
"menu.quit.messages.confirm" = "Om ett VPN är aktiverat kommer detta fortfarande att köra i bakgrunden. Vill du lämna?";

View File

@ -1,6 +1,6 @@
strings:
inputs:
- L10n/en.lproj/Localizable.strings
- en.lproj/Localizable.strings
outputs:
- templateName: structured-swift4
output: Constants/SwiftGen+Strings.swift

View File

@ -4,7 +4,7 @@
//
// Created by Davide De Rosa on 6/13/18.
// Copyright (c) 2022 Davide De Rosa. All rights reserved.
//
/* MARK: Global */
"global.strings.cancel" = "取消";
"global.strings.next" = "下一步";
@ -15,6 +15,9 @@
"global.strings.add" = "添加";
"global.strings.default" = "默认";
"global.strings.name" = "名称";
"global.strings.provider" = "提供商";
"global.strings.providers" = "提供商";
"global.strings.configuration" = "配置";
"global.strings.address" = "地址";
"global.strings.addresses" = "地址";
"global.strings.port" = "端口";
@ -50,7 +53,30 @@
"global.errors.missing_provider_server" = "缺少服务器";
"global.errors.missing_provider_preset" = "缺少预设";
// MARK: TunnelKit
/* MARK: Menus */
"menu.all.support.title" = "支持";
"menu.all.share.title" = "分享";
"menu.all.about.title" = "关于 %@";
"menu.contextual.add_profile.imported" = "添加%@";
"menu.system.show.title" = "显示";
"menu.system.switch_profile.title" = "有效配置";
"menu.system.active_profile.title.none" = "无有效配置";
"menu.system.active_profile.items.customize.title" = "自定义......";
"menu.system.active_profile.messages.missing_credentials" = "未配置账户";
"menu.system.organizer.title" = "分类页面";
"menu.system.preferences.title" = "偏好设置";
"menu.system.support.donate" = "提供捐助";
"menu.system.support.join_community" = "加入社区";
"menu.system.support.write_review" = "写下想法";
// "menu.system.support.translate" = "Offer to translate";
"menu.system.share_twitter.caption" = "发送关于它的推特!";
"menu.system.share_generic.caption" = "邀请朋友";
"menu.system.quit.title" = "退出%@";
"menu.system.quit.messages.confirm" = "VPN如果启用仍将在后台运行。您要退出吗";
/* MARK: TunnelKit */
"tunnelkit.vpn.connecting" = "连接中";
"tunnelkit.vpn.active" = "活动的";
@ -78,61 +104,36 @@
"tunnelkit.errors.openvpn.passphrase_required" = "请输入加密密码";
"tunnelkit.errors.openvpn.decryption" = "该配置包含加密私钥且不能被解密。请再次检查输入的密钥。";
// MARK: OrganizerView
"organizer.sections.twitch.footer" = "快来看我让Passepartout在Twitch上直播加入聊天互动并做出贡献";
"organizer.sections.siri.footer" = "通过Siri来帮助你加快常用的操作。";
"organizer.sections.support.header" = "支持";
"organizer.items.follow_twitch.caption" = "在Twitch上观看路路通";
"organizer.items.profile.value.current" = "使用中";
"organizer.items.siri_shortcuts.caption" = "管理捷径";
"organizer.items.join_community.caption" = "加入社区";
"organizer.items.write_review.caption" = "写下想法";
"organizer.items.donate.caption" = "提供捐助";
"organizer.items.github_sponsors.caption" = "在GitHub上支持我";
"organizer.items.translate.caption" = "提供翻译";
"organizer.items.about.caption" = "关于 %@";
"organizer.items.uninstall.caption" = "移除VPN配置";
"organizer.items.add_provider.caption" = "添加新的提供商配置";
"organizer.items.add_host.caption" = "从文件添加";
"organizer.alerts.reddit.message" = "你知道Passepartout有一个subreddit吗可以在上面讨论更新、问题、功能、新的平台等n任何你想要的。\n\n这同样是表达你对此项目关注的地方。";
"organizer.alerts.reddit.buttons.subscribe" = "立即订阅!";
"organizer.alerts.reddit.buttons.remind" = "稍后提醒我";
"organizer.alerts.reddit.buttons.never" = "不要再问";
"organizer.alerts.uninstall_vpn.message" = "你确定要从此设备移除VPN配置吗这可能会固定一些断开的VPN状态不会影响已经存在的配置。";
"organizer.alerts.remove_profile.title" = "删除配置";
"organizer.alerts.remove_profile.message" = "确定要删除配置%@吗?";
"organizer.menus.add_profile.imported" = "添加%@";
// MARK: AddProfileView
/* MARK: AddProfileView */
"add_profile.shared.title" = "新的配置";
"add_profile.shared.views.existing.header" = "已存在的配置";
"add_profile.shared.alerts.overwrite.message" = "已经存在同名的配置。要替换吗?";
// MARK: AddHostView
/* MARK: AddHostView */
"add_profile.host.sections.encryption.footer" = "输入密码";
// MARK: AddProviderView
/* MARK: AddProviderView */
"add_profile.provider.sections.providers.header" = "提供商";
"add_profile.provider.sections.vpn.footer" = "在这里你可以找到预设的新的提供商配置。";
"add_profile.provider.items.update_list" = "更新列表";
"add_profile.provider.errors.no_default_server" = "未找到任何服务器";
// MARK: ProfileView
"profile.sections.provider.header" = "提供商";
/* MARK: ProfileView */
"profile.welcome.message" = "欢迎使用Passepartout!\n\n使用分类页面来添加一个新的配置。";
"profile.sections.vpn.footer" = "必要时连接将会建立。";
"profile.sections.status.header" = "连接";
"profile.sections.configuration.header" = "配置";
"profile.sections.provider_infrastructure.footer" = "最后在%@时更新";
"profile.sections.vpn_survives_sleep.footer" = "禁用以减少电池消耗,由于存在可能的唤醒时重连消耗。";
"profile.sections.vpn_resolves_hostname.footer" = "推荐在大部分的网络中打开并要求在IPv6环境下。当DNS被阻断或相应缓慢时禁用。";
@ -149,14 +150,16 @@
"profile.items.vpn_survives_sleep.caption" = "休眠时保持连接";
"profile.items.vpn_resolves_hostname.caption" = "解析服务器主机名";
"profile.items.reconnect.caption" = "重连";
"profile.items.uninstall.caption" = "移除VPN配置";
"profile.alerts.rename.title" = "重命名配置";
"profile.alerts.reconnect_vpn.message" = "要重连VPN吗";
"profile.alerts.uninstall_vpn.message" = "你确定要从此设备移除VPN配置吗这可能会固定一些断开的VPN状态不会影响已经存在的配置。";
"profile.alerts.test_connectivity.title" = "连接性";
"profile.alerts.test_connectivity.messages.success" = "你的设备连接到了网络!";
"profile.alerts.test_connectivity.messages.failure" = "你的设备没有连接到网络,请检查你的配置参数。";
// MARK: ProfileView -> Provider*View
/* MARK: ProfileView -> Provider*View */
"provider.location.title" = "位置";
"provider.location.sections.empty_favorites.footer" = "向左轻扫以将其从最喜爱列表中移除或添加。";
@ -165,7 +168,7 @@
"provider.preset.title" = "预设";
// MARK: ProfileView -> AccountView
/* MARK: ProfileView -> AccountView */
"account.title" = "账户";
"account.sections.credentials.header" = "认证方式";
@ -187,7 +190,7 @@
"account.sections.guidance.footer.infrastructure.vyprvpn" = "使用你的%@网站认证信息。你的用户名一般是你的e-mail。";
"account.sections.guidance.footer.infrastructure.windscribe" = "在网站上的OpenVPN配置生成器中找到你的%@认证信息。 ";
// MARK: ProfileView -> EndpointView
/* MARK: ProfileView -> EndpointView */
"endpoint.wireguard.items.peer.caption" = "同级";
"endpoint.wireguard.items.preshared_key.caption" = "预共用密码";
@ -220,7 +223,7 @@
"endpoint.advanced.openvpn.items.renegotiation_seconds.value.after" = "在%@之后";
"endpoint.advanced.openvpn.items.random_endpoint.caption" = "随机的服务端";
// MARK: ProfileView -> NetworkSettingsView
/* MARK: ProfileView -> NetworkSettingsView */
"network_settings.title" = "网络设置";
"network_settings.sections.choices.header" = "覆盖";
@ -231,7 +234,7 @@
"network_settings.items.proxy_bypass.caption" = "旁路域名";
"network_settings.items.add_proxy_bypass.caption" = "添加旁路域名";
// MARK: ProfileView -> OnDemandView
/* MARK: ProfileView -> OnDemandView */
"on_demand.title" = "可信网络";
"on_demand.sections.policy.footer" = "当进入可信网络后VPN将会断开并保持断开状态。禁用此选项可关闭此功能。";
@ -242,7 +245,7 @@
"on_demand.items.ethernet.description" = "选中以信任所有有线连接。";
"on_demand.items.policy.caption" = "信任网络中禁用VPN";
// MARK: ProfileView -> DiagnosticsView
/* MARK: ProfileView -> DiagnosticsView */
"diagnostics.title" = "分析数据";
"diagnostics.sections.debug_log.footer" = "在重连后状态隐藏才有效。网络数据包括主机名、IP地址、路由、SSID、认证方式但私钥不会出现在日志中。";
@ -252,15 +255,16 @@
"diagnostics.alerts.masks_private_data.messages.must_reconnect" = "为了安全地重置当前调试日志并应用新的掩码设置你现在必须重连VPN。";
// MARK: DiagnosticsView -> DebugLogView
/* MARK: DiagnosticsView -> DebugLogView */
"debug_log.title" = "调试日志";
"debug_log.buttons.copy" = "复制";
// MARK: DiagnosticsView -> ReportIssueView
/* MARK: DiagnosticsView -> ReportIssueView */
"report_issue.alert.title" = "提交问题";
// MARK: ShortcutsView
/* MARK: ShortcutsView */
"shortcuts.add.title" = "添加捷径";
"shortcuts.add.sections.wifi.header" = "Wi-Fi";
@ -276,9 +280,10 @@
"shortcuts.edit.title" = "管理捷径";
"shortcuts.edit.sections.all.header" = "已经存在的捷径";
"shortcuts.edit.sections.add.footer" = "通过Siri来帮助你加快常用的操作。";
"shortcuts.edit.items.add_shortcut.caption" = "添加捷径";
// MARK: PaywallView
/* MARK: PaywallView */
"paywall.title" = "购买";
"paywall.sections.products.footer" = "每件产品都是一次性的购买。 购买的提供商并不包含VPN订阅。";
@ -287,7 +292,7 @@
"paywall.items.restore.title" = "恢复购买";
"paywall.items.restore.description" = "如果你购买过此应用或其特征, 你可以恢复购买,此页面将不在显示。";
// MARK: DonateView
/* MARK: DonateView */
"donate.title" = "捐助";
"donate.sections.one_time.header" = "一次性";
@ -298,30 +303,27 @@
"donate.alerts.purchase.success.message" = "这对于我意味着很多,希望你保持使用并使它更好。";
"donate.alerts.purchase.failure.message" = "无法展现捐助内容。%@";
// MARK: AboutView
/* MARK: AboutView */
"about.title" = "关于";
"about.sections.web.header" = "网络";
"about.sections.share.header" = "分享";
"about.items.credits.caption" = "评分";
"about.items.website.caption" = "主页";
"about.items.disclaimer.caption" = "免责声明";
"about.items.privacy_policy.caption" = "隐私政策";
"about.items.share_twitter.caption" = "发送关于它的推特!";
"about.items.share_generic.caption" = "邀请朋友";
// MARK: AboutView -> VersionView
/* MARK: AboutView -> VersionView */
"version.title" = "版本";
"version.labels.intro" = "Passepartout和TunnelKit由Davide De Rosa (keeshux)编写并维护。\n\nPassepartout和TunnelKit的源代码在GitHub上以GPLv3许可证面向大众开放你可以在主页上找到链接。\n\nPassepartout不是官方的客户端同OpenVPN Inc也没有关系。";
// MARK: AboutView -> CreditsView
/* MARK: AboutView -> CreditsView */
"credits.title" = "评分";
"credits.sections.licenses.header" = "许可证";
"credits.sections.notices.header" = "注意";
// MARK: PreferencesView (macOS)
/* MARK: PreferencesView (macOS) */
"preferences.title" = "偏好设置";
"preferences.sections.general.header" = "一般";
@ -329,16 +331,3 @@
"preferences.items.launches_on_login.footer" = "选中以在启动或登录时自动启动应用。";
"preferences.items.confirm_quit.caption" = "确认退出";
"preferences.items.confirm_quit.footer" = "选中以显示退出确认提醒。";
// MARK: Menu (macOS)
"menu.show.title" = "显示";
"menu.switch_profile.title" = "有效配置";
"menu.active_profile.title.none" = "无有效配置";
"menu.active_profile.items.customize.title" = "自定义......";
"menu.active_profile.messages.missing_credentials" = "未配置账户";
"menu.organizer.title" = "分类页面";
"menu.preferences.title" = "偏好设置";
"menu.support.title" = "支持";
"menu.quit.title" = "退出%@";
"menu.quit.messages.confirm" = "VPN如果启用仍将在后台运行。您要退出吗";