Skip to content
This repository has been archived by the owner on May 10, 2024. It is now read-only.

Commit

Permalink
Fix #2739: Add Brave Firewall + VPN feature.
Browse files Browse the repository at this point in the history
  • Loading branch information
iccub committed Jul 27, 2020
1 parent eecd60e commit 34383c0
Show file tree
Hide file tree
Showing 112 changed files with 9,170 additions and 69 deletions.
10 changes: 5 additions & 5 deletions BraveRewardsUI/ja.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -311,10 +311,10 @@
"BraveRewardsSettings" = "設定";

/* No comment provided by engineer. */
"BraveRewardsSettingsAdsBody" = "Braveで広告を見ることでポイントを獲得しましょう。広告はあなたのブラウザの利用履歴を元に推測されたものが表示されますが、全ての個人情報や閲覧履歴はブラウザの中だけに保存され外部に出ることはありません。";
"BraveRewardsSettingsAdsBody" = "Braveで広告を見ることでポイントを獲得しましょう。広告はあなたのブラウザの利用履歴を元に推測されたものが表示されますが、すべての個人情報や閲覧履歴はブラウザの中だけに保存され外部に出ることはありません。";

/* No comment provided by engineer. */
"BraveRewardsSettingsAdsBodyJapan" = "Braveで広告を見ることでポイントを獲得しましょう。広告はあなたのブラウザの利用履歴を元に推測されたものが表示されますが、全ての個人情報や閲覧履歴はブラウザの中だけに保存され外部に出ることはありません。";
"BraveRewardsSettingsAdsBodyJapan" = "Braveで広告を見ることでポイントを獲得しましょう。広告はあなたのブラウザの利用履歴を元に推測されたものが表示されますが、すべての個人情報や閲覧履歴はブラウザの中だけに保存され外部に出ることはありません。";

/* No comment provided by engineer. */
"BraveRewardsSettingsAdsComingSoonText" = "Coming soon.";
Expand Down Expand Up @@ -377,7 +377,7 @@
"BraveRewardsSettingsViewDetails" = "詳細を表示";

/* No comment provided by engineer. */
"BraveRewardsShowAllPendingContributions" = "全ての保留中の支援を確認する";
"BraveRewardsShowAllPendingContributions" = "すべての保留中の支援を確認する";

/* No comment provided by engineer. */
"BraveRewardsSite" = "サイト";
Expand Down Expand Up @@ -515,7 +515,7 @@
"ExclusionListRestore" = "復元";

/* The button that restores all excluded publishers while on the Auto-Contribute excluson list */
"ExclusionListRestoreAllButton" = "全てのサイトを復元";
"ExclusionListRestoreAllButton" = "すべてのサイトを復元";

/* The title of the screen that shows a list of excluded sites for Auto-Contribute */
"ExclusionListTitle" = "除外サイト";
Expand Down Expand Up @@ -605,7 +605,7 @@
"PendingContributionDetailType" = "タイプ";

/* The button that removes all pending contributions while on the Pending Contributions list */
"PendingContributionListRemoveAllButton" = "全ての支援を中止する";
"PendingContributionListRemoveAllButton" = "すべての支援を中止する";

/* The button that removes the selected pending contributions while on the Pending Contributions list */
"PendingContributionListRemoveSelected" = "選択された支援を中止する";
Expand Down
486 changes: 486 additions & 0 deletions BraveShared/BraveStrings.swift

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions BraveShared/BraveUX.swift
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

public struct BraveUX {
public static let braveCommunityURL = URL(string: "https://community.brave.com/")!
public static let braveVPNFaqURL = URL(string: "https://support.brave.com/hc/en-us/articles/360045045952")!
public static let bravePrivacyURL = URL(string: "https://brave.com/privacy/")!
public static let braveTermsOfUseURL = URL(string: "https://www.brave.com/terms_of_use")!
public static let prefKeyOptInDialogWasSeen = "OptInDialogWasSeen"
Expand Down
9 changes: 9 additions & 0 deletions BraveShared/de.lproj/BraveShared.strings
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,9 @@
/* Reveal password text selection menu item */
"MenuItemRevealPasswordTitle" = "Anzeigen";

/* Abbreviation for 'Month', use full word' Month' if this word can't be shortened in your language */
"monthAbbreviation" = "Monat";

/* Bookmark title / Device name */
"Name" = "Name";

Expand Down Expand Up @@ -583,6 +586,9 @@
/* Sync Alert */
"NotEnoughWordsTitle" = "Nicht genug Wörter";

/* Bookmark title for Brave Support */
"ntp.braveSupportFavoriteTitle" = "Brave Support";

/* No comment provided by engineer. */
"ntp.claimRewards" = "Meine Prämien holen";

Expand Down Expand Up @@ -1228,6 +1234,9 @@
/* Word count title */
"WordCount" = "Anzahl der Wörter: %i";

/* Abbreviation for 'Year', use full word' Yeara' if this word can't be shortened in your language */
"yearAbbreviation" = "Jahr";

/* Button title to confirm the deletion of a bookmarks folder */
"YesDeleteButtonTitle" = "Ja, löschen";

Expand Down
231 changes: 231 additions & 0 deletions BraveShared/de.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,237 @@
/* No comment provided by engineer. */
"UserWalletGenericErrorTitle" = "Entschuldigen Sie, aber ein Fehler ist aufgetreten";

/* Button text to buy Brave VPN */
"vpn.buyButton" = "Kaufen";

/* Title for screen to buy the VPN. */
"vpn.buyVPNTitle" = "Brave Firewall + VPN";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.checkboxBlockAds" = "Blockiert unerwünschte Netzwerkverbindungen";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.checkboxEncryption" = "Nutzt einen sicheren, IKEv2-verschlüsselten VPN-Tunnel";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.checkboxFast" = "Unterstützt Geschwindigkeiten bis 100 Mbps";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.checkboxNoIPLog" = "Hilft Ihnen, online anonym zu bleiben";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.checkboxNoSellout" = "Wir teilen und verkaufen Ihre Daten unter keinen Umständen";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.checkboxProtectConnections" = "Schützt alle Ihre Apps (nicht nur Brave)";

/* AppStore Receipt field for customer support contact form. */
"vpn.contactFormAppStoreReceipt" = "App Store-Quittung";

/* App Version field for customer support contact form. */
"vpn.contactFormAppVersion" = "App-Version";

/* Cellular Carrier field for customer support contact form. */
"vpn.contactFormCarrier" = "Mobilfunkanbieter";

/* Text to tell user to not modify support info below email's body. */
"vpn.contactFormDoNotEditText" = "Bitte nehmen Sie keine Änderungen an den Daten unten vor";

/* Footer for customer support contact form. */
"vpn.contactFormFooter" = "Bitte wählen Sie die Daten, die Sie mit uns teilen möchten.\n\nJe mehr Daten Sie direkt mit uns teilen, umso einfacher fällt es dem Support-Team, Ihr Problem zu lösen.";

/* VPN Hostname field for customer support contact form. */
"vpn.contactFormHostname" = "VPN-Hostname";

/* Specific issue field for customer support contact form. */
"vpn.contactFormIssue" = "Problem";

/* No internet problem for contact form issue field. */
"vpn.contactFormIssueNoInternet" = "Kein Internet auch bei Verbindung";

/* Other problem for contact form issue field. */
"vpn.contactFormIssueOther" = "Anderes";

/* Other connection problem for contact form issue field. */
"vpn.contactFormIssueOtherConnectionError" = "Keine Verbindung mit dem VPN möglich (anderer Fehler)";

/* Slow connection problem for contact form issue field. */
"vpn.contactFormIssueSlowConnection" = "Langsame Verbindung";

/* Website problem for contact form issue field. */
"vpn.contactFormIssueWebsiteProblems" = "Die Webseite funktioniert nicht";

/* Network Type field for customer support contact form. */
"vpn.contactFormNetworkType" = "Netzwerkart";

/* Button name to send contact form. */
"vpn.contactFormSendButton" = "Abschicken";

/* Subscription Type field for customer support contact form. */
"vpn.contactFormSubscriptionType" = "Art des Abonnements";

/* iOS Timezone field for customer support contact form. */
"vpn.contactFormTimezone" = "iOS-Zeitzone";

/* Title for contact form email. */
"vpn.contactFormTitle" = "Problem mit Brave Firewall + VPN";

/* Button text to enable Brave VPN */
"vpn.enableButton" = "Aktivieren";

/* Message for an alert when the VPN can't get prices from the App Store */
"vpn.errorCantGetPricesBody" = "Es konnte keine Verbindung mit dem App Store hergestellt werden. Bitte versuchen Sie es in ein paar Minuten erneut.";

/* Title for an alert when the VPN can't get prices from the App Store */
"vpn.errorCantGetPricesTitle" = "Fehler beim App Store";

/* No comment provided by engineer. */
"vpn.freeTrial" = "Alle Pakete umfassen einen 7-tägigen Probezeitraum!";

/* Disclaimer about free trial */
"vpn.freeTrialDisclaimer" = "Probieren Sie den Dienst 7 Tage lang aus. Nach 7 Tagen wird Ihnen der Paketpreis in Rechnung gestellt.";

/* Disclaimer about in app subscription */
"vpn.iapDisclaimer" = "Alle Abonnements werden automatisch verlängert, können vor der Verlängerung aber storniert werden.";

/* Text explaining how the VPN works. */
"vpn.installProfileBody" = "Mit diesem Profil kann das VPN automatisch eine Verbindung herstellen und den Datenverkehr auf Ihrem Gerät schützten – in jeder App und zu jeder Zeit. Diese VPN-Verbindung ist verschlüsselt und wird durch die intelligente Firewall von Brave geleitet, um Werbung und Tracker zu blockieren.";

/* Text for 'install vpn profile' button */
"vpn.installProfileButtonText" = "VPN-Profil installieren";

/* No comment provided by engineer. */
"vpn.installProfileTitle" = "Brave wird nun ein VPN-Profil installieren.";

/* Popup that shows after user installs the vpn for the first time. */
"vpn.installSuccessPopup" = "VPN ist jetzt aktiviert";

/* Title for screen to install the VPN. */
"vpn.installTitle" = "VPN installieren";

/* Used in context: 'Monthly subscription, (it) renews monthly' */
"vpn.monthlySubDetail" = "Wird monatlich verlängert";

/* No comment provided by engineer. */
"vpn.monthlySubTitle" = "Monatliches Abonnement";

/* Text to show user when their vpn plan has expired */
"vpn.planExpired" = "Abgelaufen";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.popupCheckmark247Support" = "Support rund um die Uhr";

/* Text for a checkbox to present the user benefits for using Brave VPN */
"vpn.popupCheckmarkSecureConnections" = "Schützt alle Verbindungen";

/* It is used in context: 'Powered by BRAND_NAME' */
"vpn.poweredBy" = "Powered by";

/* Message to show when vpn configuration reset fails. */
"vpn.resetVPNErrorBody" = "Die VPN-Konfiguration konnte nicht zurückgesetzt werden; bitte versuchen Sie es später erneut.";

/* Title for error message when vpn configuration reset fails. */
"vpn.resetVPNErrorTitle" = "Fehler";

/* No comment provided by engineer. */
"vpn.restorePurchases" = "Wiederherstellen";

/* No comment provided by engineer. */
"vpn.settingHeaderBody" = "Schützen Sie Ihre Verbindung und blockieren Sie Werbung und Tracker für alle Ihre Apps.";

/* Button to contact tech support */
"vpn.settingsContactSupport" = "Technischen Support kontaktieren";

/* Button for FAQ */
"vpn.settingsFAQ" = "VPN-Support";

/* Button to manage your VPN subscription */
"vpn.settingsManageSubscription" = "Abonnement verwalten";

/* Button to reset VPN configuration */
"vpn.settingsResetConfiguration" = "Konfiguration zurücksetzen";

/* Table cell title for vpn's server host */
"vpn.settingsServerHost" = "Host";

/* Table cell title for vpn's server location */
"vpn.settingsServerLocation" = "Standort";

/* Header title for vpn settings server section. */
"vpn.settingsServerSection" = "Server";

/* Table cell title for cell that shows when the VPN subscription expires. */
"vpn.settingsSubscriptionExpiration" = "Gültig bis";

/* Header title for vpn settings subscription section. */
"vpn.settingsSubscriptionSection" = "Abonnement";

/* Table cell title for status of current VPN subscription. */
"vpn.settingsSubscriptionStatus" = "Status";

/* Whether the VPN is enabled or not */
"vpn.settingsVPNDisabled" = "Deaktiviert";

/* Whether the VPN is enabled or not */
"vpn.settingsVPNEnabled" = "Aktiviert";

/* Whether the VPN plan has expired */
"vpn.settingsVPNExpired" = "Abgelaufen";

/* Notification title to tell user that the vpn is turned on even in background */
"vpn.vpnBackgroundNotificationBody" = "Auch im Hintergrund schützt Brave Sie weiter.";

/* Notification title to tell user that the vpn is turned on even in background */
"vpn.vpnBackgroundNotificationTitle" = "Brave Firewall + VPN ist AN";

/* Message for an alert when the VPN can't be configured. */
"vpn.vpnConfigGenericErrorBody" = "Bei der Initialisierung des VPNs ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut oder versuchen Sie auf der VPN-Einstellungsseite, die Konfiguration zurückzusetzen.";

/* Title for an alert when the VPN can't be configured */
"vpn.vpnConfigGenericErrorTitle" = "Fehler";

/* Title for an alert when the user didn't allow to install VPN profile */
"vpn.vpnConfigPermissionDeniedErrorBody" = "Für die Nutzung von Brave Firewall + VPN muss ein VPN-Profil auf Ihrem Gerät installiert sein.";

/* Title for an alert when the user didn't allow to install VPN profile */
"vpn.vpnConfigPermissionDeniedErrorTitle" = "Zugriff verweigert";

/* Message for error when VPN could not be purchased. */
"vpn.vpnErrorPurchaseFailedBody" = "Der Kauf konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut oder überprüfen Sie die bei Apple hinterlegten Zahlungsdaten und versuchen Sie es erneut.";

/* Title for error when VPN could not be purchased. */
"vpn.vpnErrorPurchaseFailedTitle" = "Fehler";

/* Disclaimer for user purchasing the VPN plan. */
"vpn.vpnIAPBoilerPlate" = "Der Preis kann je nach Region variieren. Das Abonnement wird über Ihr iTunes-Konto Ihrer Kreditkarte in Rechnung gestellt. Ein Abonnement ist entweder für einen Zeitraum von einem Monat (9,99 $) oder von einem Jahr (99,99 $) möglich und verlängert sich automatisch, wenn es nicht bis zu 24 Stunden vor Ablauf des aktuellen Zeitraums storniert wird. Nach Aktivierung kann das Abonnement nicht annulliert werden. Nach dem Kauf können Sie Ihr Abonnement in den Kontoeinstellungen verwalten. Ein kostenloser Probezeitraum ist nur einmal möglich. Wenn Sie ein Abonnement abschließen, verfällt der ggf. ungenutzte Anteil des Probezeitraums.";

/* Title Brave VPN menu item. */
"vpn.vpnMenuItemTitle" = "Brave VPN";

/* Message for alert to reset vpn configuration */
"vpn.vpnResetAlertBody" = "Hiermit wird Ihre Konfiguration für Brave Firewall + VPN zurückgesetzt, womit Fehler behoben werden können. Dieser Vorgang kann etwa eine Minute dauern.";

/* Title for alert to reset vpn configuration */
"vpn.vpnResetAlertTitle" = "Konfiguration zurücksetzen";

/* Button name to reset vpn configuration */
"vpn.vpnResetButton" = "Zurücksetzen";

/* Name of monthly subscription in VPN Settings */
"vpn.vpnSettingsMonthlySubName" = "Monatsabonnement";

/* Name of annual subscription in VPN Settings */
"vpn.vpnSettingsYearlySubName" = "Jahresabonnement";

/* Used in context: 'yearly subscription, renew annually (to) save 16%'. The placeholder is for percent value */
"vpn.yearlySubDetail" = "Verlängern Sie Ihr Abonnement jährlich und sparen Sie %@";

/* It's like when there's few subscription plans, and one plan has the best value to price ratio, so this label says next to that plan: '(plan) - Best value' */
"vpn.yearlySubDisclaimer" = "Bestes Preis-Leistungs-Verhältnis";

/* One year lenght vpn subcription */
"vpn.yearlySubTitle" = "Ein Jahr";

/* For search suggestions prompt. This string should be short so it fits nicely on the prompt row. */
"Yes" = "Ja";

9 changes: 9 additions & 0 deletions BraveShared/es.lproj/BraveShared.strings
Original file line number Diff line number Diff line change
Expand Up @@ -550,6 +550,9 @@
/* Reveal password text selection menu item */
"MenuItemRevealPasswordTitle" = "Desvelar";

/* Abbreviation for 'Month', use full word' Month' if this word can't be shortened in your language */
"monthAbbreviation" = "mes";

/* Bookmark title / Device name */
"Name" = "Nombre";

Expand Down Expand Up @@ -583,6 +586,9 @@
/* Sync Alert */
"NotEnoughWordsTitle" = "No hay suficientes palabras";

/* Bookmark title for Brave Support */
"ntp.braveSupportFavoriteTitle" = "Asistencia de Brave";

/* No comment provided by engineer. */
"ntp.claimRewards" = "Reclamar mis recompensas";

Expand Down Expand Up @@ -1228,6 +1234,9 @@
/* Word count title */
"WordCount" = "Recuento de palabras: %i";

/* Abbreviation for 'Year', use full word' Yeara' if this word can't be shortened in your language */
"yearAbbreviation" = "año";

/* Button title to confirm the deletion of a bookmarks folder */
"YesDeleteButtonTitle" = "Sí, eliminar";

Expand Down
Loading

0 comments on commit 34383c0

Please sign in to comment.