From 08cd4dcdd8ef3228a6ed7222375a8d2e6cb33fc1 Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Mon, 15 Jul 2024 14:52:25 +0100 Subject: [PATCH 1/6] Update settings https://app.asana.com/0/1204167627774280/1207811851478222/f --- DuckDuckGo/Common/Localizables/UserText.swift | 5 +-- DuckDuckGo/Localizable.xcstrings | 38 +++++++------------ .../View/PreferencesDuckPlayerView.swift | 23 ++++++----- 3 files changed, 26 insertions(+), 40 deletions(-) diff --git a/DuckDuckGo/Common/Localizables/UserText.swift b/DuckDuckGo/Common/Localizables/UserText.swift index 69b9bd09d2..854c979833 100644 --- a/DuckDuckGo/Common/Localizables/UserText.swift +++ b/DuckDuckGo/Common/Localizables/UserText.swift @@ -384,11 +384,10 @@ struct UserText { static let duckPlayerShowPlayerButtons = NSLocalizedString("duck-player.show-buttons", value: "Show option to use Duck Player over YouTube previews on hover", comment: "Private YouTube Player option") static let duckPlayerOff = NSLocalizedString("duck-player.off", value: "Never use Duck Player", comment: "Private YouTube Player option") static let duckPlayerExplanation = NSLocalizedString("duck-player.explanation", value: "Duck Player provides a clean viewing experience without personalized ads and prevents viewing activity from influencing your YouTube recommendations.", comment: "Private YouTube Player explanation in settings") - static let duckPlayerAutoplayTitle = NSLocalizedString("duck-player.autoplay-title", value: "Autoplay", comment: "Autoplay title in settings") - static let duckPlayerAutoplayPreference = NSLocalizedString("duck-player.autoplay-preference", value: "Autoplay videos when opened in Duck Player", comment: "Autoplay preference in settings") - static let duckPlayerNewTabTitle = NSLocalizedString("duck-player.newtab-title", value: "New Tab", comment: "New Tab title in settings") + static let duckPlayerAutoplayPreference = NSLocalizedString("duck-player.autoplay-preference", value: "Autoplay videos opened in Duck Player", comment: "Autoplay preference in settings") static let duckPlayerNewTabPreference = NSLocalizedString("duck-player.newtab-preference", value: "Open Duck Player in a new tab whenever possible", comment: "New tab preference in settings") static let duckPlayerNewTabPreferenceExtraInfo = NSLocalizedString("duck-player.newtab.info-preference", value: "When browsing YouTube on the web", comment: "New tab preference extra info in settings") + static let duckPlayerVideoPreferencesTitle = NSLocalizedString("duck-player.video-preferences-title", value: "Video Preferences", comment: "Video Preferences title in settings") static let gpcCheckboxTitle = NSLocalizedString("gpc.checkbox.title", value: "Enable Global Privacy Control", comment: "GPC settings checkbox title") diff --git a/DuckDuckGo/Localizable.xcstrings b/DuckDuckGo/Localizable.xcstrings index 8f5606de7d..3c2b918257 100644 --- a/DuckDuckGo/Localizable.xcstrings +++ b/DuckDuckGo/Localizable.xcstrings @@ -16810,19 +16810,7 @@ "en" : { "stringUnit" : { "state" : "new", - "value" : "Autoplay videos when opened in Duck Player" - } - } - } - }, - "duck-player.autoplay-title" : { - "comment" : "Autoplay title in settings", - "extractionState" : "extracted_with_value", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Autoplay" + "value" : "Autoplay videos opened in Duck Player" } } } @@ -16899,18 +16887,6 @@ } } }, - "duck-player.newtab-title" : { - "comment" : "New Tab title in settings", - "extractionState" : "extracted_with_value", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "New Tab" - } - } - } - }, "duck-player.newtab.info-preference" : { "comment" : "New tab preference extra info in settings", "extractionState" : "extracted_with_value", @@ -17103,6 +17079,18 @@ } } }, + "duck-player.video-preferences-title" : { + "comment" : "Video Preferences title in settings", + "extractionState" : "extracted_with_value", + "localizations" : { + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Video Preferences" + } + } + } + }, "DuckDuckGo (Recommended)" : { }, diff --git a/DuckDuckGo/Preferences/View/PreferencesDuckPlayerView.swift b/DuckDuckGo/Preferences/View/PreferencesDuckPlayerView.swift index 258a43949c..46305daebe 100644 --- a/DuckDuckGo/Preferences/View/PreferencesDuckPlayerView.swift +++ b/DuckDuckGo/Preferences/View/PreferencesDuckPlayerView.swift @@ -69,21 +69,20 @@ extension Preferences { TextMenuItemCaption(UserText.duckPlayerExplanation) } - // Auto Play - if model.shouldDisplayAutoPlaySettings { - PreferencePaneSection(UserText.duckPlayerAutoplayTitle) { - ToggleMenuItem(UserText.duckPlayerAutoplayPreference, isOn: $model.duckPlayerAutoplay) - } - } + if model.shouldDisplayAutoPlaySettings || model.isOpenInNewTabSettingsAvailable { + PreferencePaneSection(UserText.duckPlayerVideoPreferencesTitle) { - // New Tab - if model.isOpenInNewTabSettingsAvailable { - PreferencePaneSection(UserText.duckPlayerNewTabTitle) { - TextMenuItemCaption(UserText.duckPlayerNewTabPreferenceExtraInfo) - ToggleMenuItem(UserText.duckPlayerNewTabPreference, isOn: $model.duckPlayerOpenInNewTab) - .disabled(!model.isNewTabSettingsAvailable) + if model.shouldDisplayAutoPlaySettings { + ToggleMenuItem(UserText.duckPlayerAutoplayPreference, isOn: $model.duckPlayerAutoplay) + } + + if model.isOpenInNewTabSettingsAvailable { + ToggleMenuItem(UserText.duckPlayerNewTabPreference, isOn: $model.duckPlayerOpenInNewTab) + .disabled(!model.isNewTabSettingsAvailable) + } } } + } } } From 82322299882ecd4a1eecbcb00e5542f8dc376ee9 Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Tue, 16 Jul 2024 10:15:45 +0100 Subject: [PATCH 2/6] Remove duckplayer m_mac pixel prefix https://app.asana.com/0/72649045549333/1207821569483731/f --- DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift b/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift index c1d163b100..0b988a83cf 100644 --- a/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift +++ b/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift @@ -68,9 +68,9 @@ final class DuckPlayerPreferences: ObservableObject { didSet { persistor.duckPlayerAutoplay = duckPlayerAutoplay if duckPlayerAutoplay { - PixelKit.fire(GeneralPixel.duckPlayerAutoplaySettingsOn) + PixelKit.fire(NonStandardEvent(GeneralPixel.duckPlayerAutoplaySettingsOn)) } else { - PixelKit.fire(GeneralPixel.duckPlayerAutoplaySettingsOff) + PixelKit.fire(NonStandardEvent(GeneralPixel.duckPlayerAutoplaySettingsOff)) } } } @@ -80,9 +80,9 @@ final class DuckPlayerPreferences: ObservableObject { didSet { persistor.duckPlayerOpenInNewTab = duckPlayerOpenInNewTab if duckPlayerOpenInNewTab { - PixelKit.fire(GeneralPixel.duckPlayerNewTabSettingsOn) + PixelKit.fire(NonStandardEvent(GeneralPixel.duckPlayerNewTabSettingsOn)) } else { - PixelKit.fire(GeneralPixel.duckPlayerNewTabSettingsOff) + PixelKit.fire(NonStandardEvent(GeneralPixel.duckPlayerNewTabSettingsOff)) } } } From 7fa7fb804e61814d0c5ec6a66bab32508f478006 Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Tue, 16 Jul 2024 10:21:11 +0100 Subject: [PATCH 3/6] Change the setting default https://app.asana.com/0/72649045549333/1207821569483732/f --- DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift b/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift index 0b988a83cf..ef6ca9fc38 100644 --- a/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift +++ b/DuckDuckGo/Preferences/Model/DuckPlayerPreferences.swift @@ -46,7 +46,7 @@ struct DuckPlayerPreferencesUserDefaultsPersistor: DuckPlayerPreferencesPersisto @UserDefaultsWrapper(key: .duckPlayerAutoplay, defaultValue: true) var duckPlayerAutoplay: Bool - @UserDefaultsWrapper(key: .duckPlayerOpenInNewTab, defaultValue: false) + @UserDefaultsWrapper(key: .duckPlayerOpenInNewTab, defaultValue: true) var duckPlayerOpenInNewTab: Bool } From ee0c562534e01259a53436a0f22cea5edf5af723 Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Tue, 16 Jul 2024 10:56:01 +0100 Subject: [PATCH 4/6] Possible fix for opening from SERP https://app.asana.com/0/1201011656765697/1207821569483730/f --- DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift index f6b7be4938..3942e44785 100644 --- a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift +++ b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift @@ -220,6 +220,12 @@ extension DuckPlayerTabExtension: NavigationResponder { if navigationAction.url.isDuckURLScheme || navigationAction.url.isDuckPlayer { if navigationAction.request.allHTTPHeaderFields?["Referer"] == URL.duckDuckGo.absoluteString { PixelKit.fire(GeneralPixel.duckPlayerViewFromSERP) + + if shouldOpenInNewTab, + let url = webView?.url, !url.isEmpty, !url.isYoutubeVideo { + webView?.loadInNewWindow(navigationAction.url) + return .cancel + } } return .allow } From d015e78c1b0359b17a4cc190f878ffcad2bcb386 Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Wed, 17 Jul 2024 17:49:16 +0100 Subject: [PATCH 5/6] Always auto-switch to duck player https://app.asana.com/0/1204167627774280/1207834017091749/f --- DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift index 3942e44785..be57818b14 100644 --- a/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift +++ b/DuckDuckGo/Tab/TabExtensions/DuckPlayerTabExtension.swift @@ -135,7 +135,7 @@ extension DuckPlayerTabExtension: YoutubeOverlayUserScriptDelegate { let isRequestingNewTab = NSApp.isCommandPressed || shouldRequestNewTab if isRequestingNewTab { - shouldSelectNextNewTab = NSApp.isShiftPressed + shouldSelectNextNewTab = NSApp.isShiftPressed || shouldOpenInNewTab webView.loadInNewWindow(url) } else { shouldSelectNextNewTab = nil @@ -223,6 +223,7 @@ extension DuckPlayerTabExtension: NavigationResponder { if shouldOpenInNewTab, let url = webView?.url, !url.isEmpty, !url.isYoutubeVideo { + shouldSelectNextNewTab = true webView?.loadInNewWindow(navigationAction.url) return .cancel } From 9fb94701b6806e216ef291393c5ef0d1c63f45db Mon Sep 17 00:00:00 2001 From: Fernando Bunn Date: Thu, 1 Aug 2024 16:59:25 +0100 Subject: [PATCH 6/6] Add translation --- DuckDuckGo/Localizable.xcstrings | 162 +++++++++++++++++++++---------- 1 file changed, 111 insertions(+), 51 deletions(-) diff --git a/DuckDuckGo/Localizable.xcstrings b/DuckDuckGo/Localizable.xcstrings index 16c9a49a07..dc229ee8bb 100644 --- a/DuckDuckGo/Localizable.xcstrings +++ b/DuckDuckGo/Localizable.xcstrings @@ -17268,19 +17268,19 @@ "de" : { "stringUnit" : { "state" : "translated", - "value" : "Videos automatisch abspielen, wenn sie im Duck Player geöffnet werden" + "value" : "In Duck Player geöffnete Videos automatisch abspielen" } }, "en" : { "stringUnit" : { "state" : "new", - "value" : "Autoplay videos when opened in Duck Player" + "value" : "Autoplay videos opened in Duck Player" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Reproducir automáticamente los vídeos cuando se abran en Duck Player" + "value" : "Reproducir automáticamente los vídeos abiertos en Duck Player" } }, "fr" : { @@ -17292,7 +17292,7 @@ "it" : { "stringUnit" : { "state" : "translated", - "value" : "Riproduzione automatica dei video quando li apri in Duck Player" + "value" : "Riproduzione automatica dei video aperti in Duck Player" } }, "nl" : { @@ -17304,13 +17304,13 @@ "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Automatyczne odtwarzanie filmów po otwarciu w Duck Player" + "value" : "Automatyczne odtwarzanie filmów otwieranych w Duck Player" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Reproduzir vídeos automaticamente quando abertos no Duck Player" + "value" : "Reproduzir automaticamente vídeos abertos no Duck Player" } }, "ru" : { @@ -17323,7 +17323,7 @@ }, "duck-player.autoplay-title" : { "comment" : "Autoplay title in settings", - "extractionState" : "extracted_with_value", + "extractionState" : "stale", "localizations" : { "de" : { "stringUnit" : { @@ -17503,7 +17503,7 @@ }, "duck-player.newtab-title" : { "comment" : "New Tab title in settings", - "extractionState" : "extracted_with_value", + "extractionState" : "stale", "localizations" : { "de" : { "stringUnit" : { @@ -17801,6 +17801,66 @@ } } }, + "duck-player.video-preferences-title" : { + "comment" : "Video Preferences title in settings", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Video-Einstellungen" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Video Preferences" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferencias de vídeo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Préférences vidéo" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferenze video" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Videovoorkeuren" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferencje filmów" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferências de vídeo" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Настройки видео" + } + } + } + }, "DuckDuckGo browser version" : { "comment" : "Data import failure Report dialog description of a report field providing current DuckDuckGo Browser version", "localizations" : { @@ -24708,8 +24768,8 @@ "localizations" : { "de" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Öffne und entsperre **%2$s**\n%3$d Wähle **Datei → Tresor exportieren** in der Menüleiste\n%4$d Wähle das Dateiformat: **.csv**\n%5$d Gib dein Bitwarden Master-Passwort ein\n%6$d Klicke auf %7$@ und speichere die Datei an einem Ort, an dem du sie finden kannst (z. B. auf dem Desktop)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Öffne und entsperre **%2$s**\n%3$d Wähle **Datei → Tresor exportieren** in der Menüleiste\n%4$d Wähle das Dateiformat: **.csv**\n%5$d Gib dein Bitwarden Haupt-Passwort ein\n%6$d Klicke auf %7$@ und speichere die Datei an einem Ort, an dem du sie finden kannst (z. B. auf dem Desktop)\n%8$d %9$@" } }, "en" : { @@ -24720,43 +24780,43 @@ }, "es" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Abre y desbloquea **%2$s**\n%3$d Selecciona **Archivo → Exportar caja fuerte** en la barra de menú\n%4$d Selecciona el formato de archivo: **.csv**\n%5$d Introduce tu contraseña maestra de Bitwarden\n%6$d Haz clic en %7$@ y guarda el archivo donde puedas encontrarlo posteriormente (por ejemplo, en el escritorio)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Abre y desbloquea **%2$s**\n%3$d Selecciona **Archivo → Exportar caja fuerte** en la barra de menú\n%4$d Selecciona el formato de archivo: **.csv**\n%5$d Introduce tu contraseña principal de Bitwarden\n%6$d Haz clic en %7$@ y guarda el archivo donde puedas encontrarlo posteriormente (por ejemplo, en el escritorio)\n%8$d %9$@" } }, "fr" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "%1$d Ouvrez et déverrouillez **%2$s**\n%3$d Sélectionnez **Fichier → Exporter le coffre-fort** dans la barre de menu\n%4$d Sélectionnez le format de fichier : **.csv**\n%5$d Saisissez votre mot de passe Bitwarden principal\n%6$d Cliquez sur %7$@ et enregistrez le fichier à un endroit où le trouver facilement (par exemple, sur le bureau)\n%8$d %9$@" } }, "it" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Apri e sblocca **%2$s**\n%3$d Seleziona **File → Esporta cassaforte** dalla Barra dei menu\n%4$d Seleziona il Formato file: **.csv**\n%5$d Inserisci la tua master password Bitwarden\n%6$d Fai clic su %7$@ e salva il file dove puoi trovarlo (ad esempio, sul desktop)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Apri e sblocca **%2$s**\n%3$d Seleziona **File → Esporta vault** dalla Barra dei menu\n%4$d Seleziona il Formato del file: **.csv**\n%5$d Inserisci la tua password principale Bitwarden\n%6$d Clicca su %7$@ e salva il file dove puoi trovarlo (ad esempio, sul desktop)\n%8$d %9$@" } }, "nl" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Open en ontgrendel **%2$s**\n%3$d Selecteer **Bestand → Kluis exporteren** in de menubalk\n%4$d Selecteer de bestandsindeling: **.csv**\n%5$d Voer je Bitwarden-masterwachtwoord in\n%6$d Klik op %7$@ en bewaar het bestand op een plek waar je het kunt vinden (bijv. het bureaublad)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Open en ontgrendel **%2$s**\n%3$d Selecteer **Bestand → Kluis exporteren** in de menubalk\n%4$d Selecteer de bestandsindeling: **.csv**\n%5$d Voer je Bitwarden-hoofdwachtwoord in\n%6$d Klik op %7$@ en bewaar het bestand op een plek waar je het kunt vinden (bijv. het bureaublad)\n%8$d %9$@" } }, "pl" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Otwórz i odblokuj aplikację **%2$s**\n%3$d Wybierz **Plik → Eksportuj sejf** na pasku menu\n%4$d Wybierz format pliku: **.csv**\n%5$d Wprowadź hasło główne aplikacji Bitwarden\n%6$d Kliknij %7$@ i zapisz plik w łatwo dostępnym miejscu (np. na biurku)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Otwórz i odblokuj aplikację **%2$s**\n%3$d Wybierz **Plik → Eksportuj sejf** na pasku menu\n%4$d Wybierz format pliku: **.csv**\n%5$d Wprowadź hasło główne aplikacji Bitwarden\n%6$d Kliknij %7$@ i zapisz plik w łatwo dostępnym miejscu (np. na pulpicie)\n%8$d %9$@" } }, "pt" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Abre e desbloqueia o **%2$s**\n%3$d Seleciona **Ficheiro → Exportar cofre** na barra de menus\n%4$d Seleciona o formato do ficheiro: **.csv**\n%5$d Introduz a tua palavra-passe mestra do Bitwarden\n%6$d Clica em %7$@ e guarda o ficheiro onde consigas encontrá-lo (por exemplo, no ambiente de trabalho)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Abre e desbloqueia o **%2$s**\n%3$d Seleciona **Ficheiro → Exportar cofre** na barra de menus\n%4$d Seleciona o formato do ficheiro: **.csv**\n%5$d Introduz a tua palavra-passe principal do Bitwarden\n%6$d Clica em %7$@ e guarda o ficheiro onde consigas encontrá-lo (por exemplo, no ambiente de trabalho)\n%8$d %9$@" } }, "ru" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "%1$d Откройте и разблокируйте **%2$s**\n%3$d На панели меню выберите **Файл → Экспортировать хранилище** \n%4$d Выберите формат файла: **.csv**\n%5$d Введите основной пароль к Bitwarden\n%6$d Нажмите %7$@ и сохраните файл там, где вы легко его найдете (например, на рабочем столе)\n%8$d %9$@" } } @@ -25128,8 +25188,8 @@ "localizations" : { "de" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Klicke auf das **%2$s** Symbol in deinem Browser und gib dein Master-Passwort ein\n%3$d Wähle **Meinen Tresor öffnen**\n%4$d Wähle in der Seitenleiste **Erweiterte Optionen → Exportieren**\n%5$d Gib dein LastPass Master-Passwort ein\n%6$d Wähle das Dateiformat: **Comma Delimited Text (.csv)**\n%7$d %8$@" + "state" : "translated", + "value" : "%1$d Klicke auf das **%2$s** Symbol in deinem Browser und gib dein Haupt-Passwort ein\n%3$d Wähle **Meinen Tresor öffnen**\n%4$d Wähle in der Seitenleiste **Erweiterte Optionen → Exportieren**\n%5$d Gib dein LastPass Haupt-Passwort ein\n%6$d Wähle das Dateiformat: **Comma Delimited Text (.csv)**\n%7$d %8$@" } }, "en" : { @@ -25140,44 +25200,44 @@ }, "es" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Haz clic en el icono **%2$s** de tu navegador e introduce tu contraseña maestra\n%3$d Selecciona **Abrir mi caja fuerte**\n%4$d En la barra lateral, selecciona **Opciones avanzadas → Exportar**\n%5$d Introduce tu contraseña maestra de LastPass\n%6$d Selecciona el formato de archivo: **Texto delimitado por comas (.csv)**\n%7$d %8$@." + "state" : "translated", + "value" : "%1$d Haz clic en el icono **%2$s** de tu navegador e introduce tu contraseña principal\n%3$d Selecciona **Abrir mi caja fuerte**\n%4$d En la barra lateral, selecciona **Opciones avanzadas → Exportar**\n%5$d Introduce tu contraseña principal de LastPass\n%6$d Selecciona el formato de archivo: **Texto delimitado por comas (.csv)**\n%7$d %8$@." } }, "fr" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "%1$d Cliquez sur l'icône **%2$s** de votre navigateur et saisissez votre mot de passe principal\n%3$d Sélectionnez **Ouvrir mon coffre-fort**\n%4$d Dans la barre latérale, sélectionnez **Options avancées → Exporter**\n%5$d Saisissez votre mot de passe LastPass principal\n%6$d Sélectionnez le format de fichier** : **Texte séparé par des virgules (.csv)**\n%7$d %8$@" } }, "it" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Fai clic sull'icona **%2$s** nel browser e immetti la master password\n%3$d Seleziona **Apri la mia cassaforte**\n%4$d Dalla barra laterale seleziona **Opzioni avanzate → Esporta\n**%5$d Immetti la master password LastPass\n%6$d Seleziona il formato del file: **Testo delimitato da virgole (.csv)**\n%7$d %8$@" + "state" : "translated", + "value" : "%1$d Clicca sull'icona **%2$s** nel browser e inserisci la tua password principale\n%3$d Seleziona **Apri il Mio Vault**\n%4$d Dalla barra laterale seleziona **Opzioni avanzate → Esporta**\n%5$d Inserisci la tua password principale LastPass\n%6$d Seleziona il formato del file: **Testo delimitato da virgolette (.csv)**\n%7$d %8$@" } }, "nl" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Klik op het pictogram **%2$s** in je browser en voer je masterwachtwoord in\n%3$d Selecteer **Open mijn kluis**\n%4$d Klik in de zijbalk op **Geavanceerde opties → Exporteren**\n%5$d Voer je LastPass-masterwachtwoord in\n%6$d Selecteer de bestandsindeling: **Door komma's gescheiden tekst (.csv)**\n%7$d %8$@" + "state" : "translated", + "value" : "%1$d Klik op het pictogram **%2$s** in je browser en voer je hoofdwachtwoord in\n%3$d Selecteer **Open mijn kluis**\n%4$d Klik in de zijbalk op **Geavanceerde opties → Exporteren**\n%5$d Voer je LastPass-hoofdwachtwoord in\n%6$d Selecteer de bestandsindeling: **Door komma's gescheiden tekst (.csv)**\n%7$d %8$@" } }, "pl" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Kliknij ikonę **%2$s** w przeglądarce i wprowadź hasło główne\n%3$d Wybierz **Open My Vault**\n%4$d Na pasku bocznym wybierz **Advanced Options → Export**\n%5$d Wprowadź hasło główne narzędzia LastPass\n%6$d Wybierz format pliku: **Comma Delimited Text (.csv)**\n%7$d %8$@" + "state" : "translated", + "value" : "%1$d Kliknij ikonę **%2$s** w przeglądarce i wprowadź hasło główne\n%3$d Wybierz **Otwórz mój sejf**\n%4$d Na pasku bocznym wybierz **Opcje zaawansowane → Eksportuj**\n%5$d Wprowadź hasło główne splikacji LastPass\n%6$d Wybierz format pliku: **Tekst rozdzielany przecinkami (.csv)**\n%7$d %8$@" } }, "pt" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Clica no ícone da aplicação **%2$s** no teu navegador e introduz a tua palavra-passe mestra\n%3$d Seleciona **Abrir o meu cofre**\n%4$d Na barra lateral, seleciona **Opções avançadas → Exportar**\n%5$d Introduz a tua palavra-passe mestra da aplicação LastPass\n%6$d Seleciona o formato do ficheiro: **Texto delimitado por vírgula (.csv)**\n%7$d %8$@" + "state" : "translated", + "value" : "%1$d Clica no ícone da aplicação **%2$s** no teu navegador e introduz a tua palavra-passe principal\n%3$d Seleciona **Abrir o meu cofre**\n%4$d Na barra lateral, seleciona **Opções avançadas → Exportar**\n%5$d Introduz a tua palavra-passe principal da aplicação LastPass\n%6$d Seleciona o formato do ficheiro: **Texto delimitado por vírgula (.csv)**\n%7$d %8$@" } }, "ru" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Нажмите значок **%2$s** в браузере и введите основной пароль\n%3$d Выберите меню **Открыть мое хранилище**\n%4$d На боковой панели выберите **Дополнительные опции → Экспортировать**\n%5$d Введите основной пароль к LastPass\n%6$d Сохраните файл в формате: **текст с разделяющими запятыми (.csv)**\n%7$d %8$@" + "state" : "translated", + "value" : "%1$d Нажмите на значок **%2$s** в браузере и введите основной пароль\n%3$d Выберите меню **Открыть мое хранилище**\n%4$d На боковой панели выберите **Дополнительные опции → Экспортировать**\n%5$d Введите основной пароль к LastPass\n%6$d Сохраните файл в формате: **текст с разделяющими запятыми (.csv)**\n%7$d %8$@" } } } @@ -25188,8 +25248,8 @@ "localizations" : { "de" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Öffne und entsperre **%2$s**\n%3$d Wähle den Tresor aus, den du exportieren möchtest (du kannst immer nur einen Tresor auf einmal exportieren)\n%4$d Wähle **Datei → Exportieren → Alle Elemente** aus der Menüleiste\n%5$d Gib dein 1Password Master- oder Account-Passwort ein\n%6$d Wähle das Dateiformat: **iCloud-Schlüsselbund (.csv)**\n%7$d Speichere die Passwortdatei an einem Ort, an dem du sie finden kannst (z. B. auf dem Desktop)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Öffne und entsperre **%2$s**\n%3$d Wähle den Tresor aus, den du exportieren möchtest (du kannst immer nur einen Tresor auf einmal exportieren)\n%4$d Wähle **Datei → Exportieren → Alle Elemente** aus der Menüleiste\n%5$d Gib dein 1Password Haupt- oder Account-Passwort ein\n%6$d Wähle das Dateiformat: **iCloud-Schlüsselbund (.csv)**\n%7$d Speichere die Passwortdatei an einem Ort, an dem du sie finden kannst (z. B. auf dem Desktop)\n%8$d %9$@" } }, "en" : { @@ -25200,43 +25260,43 @@ }, "es" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Abre y desbloquea **%2$s**\n%3$d Selecciona la caja fuerte que quieres exportar (solo puedes exportar una caja fuerte a la vez)\n%4$d Selecciona **Archivo → Exportar → Todos los elementos** en la barra de menú\n%5$d Introduce tu contraseña maestra o de cuenta de 1Password\n%6$d Selecciona el formato de archivo: **Llavero de iCloud (.csv) **\n%7$d Guarda el archivo de contraseñas donde puedas encontrarlo posteriormente (por ejemplo, en el escritorio)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Abre y desbloquea **%2$s**\n%3$d Selecciona la caja fuerte que quieres exportar (solo puedes exportar una caja fuerte a la vez)\n%4$d Selecciona **Archivo → Exportar → Todos los elementos** en la barra de menú\n%5$d Introduce tu contraseña principal o de cuenta de 1Password\n%6$d Selecciona el formato de archivo: **Llavero de iCloud (.csv) **\n%7$d Guarda el archivo de contraseñas donde puedas encontrarlo posteriormente (por ejemplo, en el escritorio)\n%8$d %9$@" } }, "fr" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "%1$d Ouvrez et déverrouillez **%2$s**\n%3$d Sélectionnez le coffre-fort à exporter (vous ne pouvez exporter qu'un seul coffre-fort à la fois)\n%4$d Sélectionnez **Fichier → Exporter → Tous les éléments** dans la barre de menu\n%5$d Saisissez votre mot de passe principal ou celui de votre compte 1Password\n%6$d Sélectionnez le format de fichier :**Trousseau iCloud (.csv)**\n%7$d Enregistrez le fichier des mots de passe à un endroit où le trouver facilement (par exemple, sur le bureau)\n%8$d %9$@" } }, "it" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Apri e sblocca **%2$s\n**%3$d Seleziona la cassaforte da esportare (è possibile esportare solo una cassaforte alla volta)\n%4$d Seleziona **File → Esporta → Tutti gli elementi** dalla Barra dei menu\n%5$d Inserisci la master password o quella dell'account 1Password\n%6$d Seleziona il formato file: **Keychain iCloud (.csv)**\n%7$d Salva il file delle password dove puoi trovarlo (ad esempio, sul desktop)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Apri e sblocca **%2$s**\n%3$d Seleziona il vault da esportare (puoi esportarne solo uno per volta)\n%4$d Seleziona **File → Esporta → Tutti gli elementi** dalla Barra dei menu\n%5$d Inserisci la tua password principale o dell'account 1Password\n%6$d Seleziona il formato del file: **Portachiavi iCloud (.csv)**\n%7$d Salva il file delle password dove puoi trovarlo (ad esempio, sul desktop)\n%8$d %9$@" } }, "nl" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Open en ontgrendel **%2$s**\n%3$d Selecteer de kluis die je wilt exporteren (je kunt slechts één kluis per keer exporteren)\n%4$d Selecteer **Bestand → Exporteren → Alle items** in de menubalk\n%5$d Voer je master- of accountwachtwoord van 1Password in\n%6$d Selecteer de bestandsindeling: **iCloud Keychain (.csv)**\n%7$d Bewaar het bestand met de wachtwoorden op een plek waar je het kunt vinden (bijv. het bureaublad)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Open en ontgrendel **%2$s**\n%3$d Selecteer de kluis die je wilt exporteren (je kunt slechts één kluis per keer exporteren)\n%4$d Selecteer **Bestand → Exporteren → Alle items** in de menubalk\n%5$d Voer je 1Password hoofd- of accountwachtwoord in\n%6$d Selecteer de bestandsindeling: **iCloud Keychain (.csv)**\n%7$d Bewaar het bestand met de wachtwoorden op een plek waar je het kunt vinden (bijv. het bureaublad)\n%8$d %9$@" } }, "pl" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Otwórz i odblokuj aplikację **%2$s**\n%3$d Wybierz sejf, który chcesz wyeksportować (możesz eksportować tylko jeden sejf naraz)\n%4$d Na pasku menu wybierz **File → Export → All Items**\n%5$d Wprowadź hasło główne lub hasło konta 1Password\n%6$d Wybierz format pliku: **iCloud Keychain (.csv)**\n%7$d Zapisz plik haseł w łatwo dostępnym miejscu (np. na biurku)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Otwórz i odblokuj aplikację **%2$s**\n%3$d Wybierz sejf, który chcesz wyeksportować (możesz eksportować tylko jeden sejf naraz)\n%4$d Na pasku menu wybierz **Plik → Eksportuj → Wszystkie elementy**\n%5$d Wprowadź hasło główne lub hasło konta 1Password\n%6$d Wybierz format pliku: **iCloud Keychain (.csv)**\n%7$d Zapisz plik haseł w łatwo dostępnym miejscu (np. na pulpicie)\n%8$d %9$@" } }, "pt" : { "stringUnit" : { - "state" : "needs_review", - "value" : "%1$d Abre e desbloqueia a aplicação **%2$s**\n%3$d Seleciona o cofre que pretendes exportar (só podes exportar um cofre de cada vez)\n%4$d Seleciona **Ficheiro → Exportar → Todos os elementos** na barra de menus\n%5$d Introduz a tua palavra-passe mestra da 1Password ou a palavra-passe da conta\n%6$d Seleciona o formato do ficheiro: **Porta-chaves em iCloud (.csv)**\n%7$d Guarda o ficheiro de palavras-passe onde consigas encontrá-lo (por exemplo, no ambiente de trabalho)\n%8$d %9$@" + "state" : "translated", + "value" : "%1$d Abre e desbloqueia a aplicação **%2$s**\n%3$d Seleciona o cofre que pretendes exportar (só podes exportar um cofre de cada vez)\n%4$d Seleciona **Ficheiro → Exportar → Todos os elementos** na barra de menus\n%5$d Introduz a tua palavra-passe principal da aplicação ou da conta 1Password\n%6$d Seleciona o formato do ficheiro: **Porta-chaves em iCloud (.csv)**\n%7$d Guarda o ficheiro de palavras-passe onde consigas encontrá-lo (por exemplo, no ambiente de trabalho)\n%8$d %9$@" } }, "ru" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "%1$d Откройте и разблокируйте **%2$s**\n%3$d Выберите хранилище, которое вы хотите экспортировать (можно экспортировать только по одному хранилищу за раз)\n%4$d На панели меню выберите опцию **Файл → Экспортировать → Все элементы**\n%5$d Введите основной пароль или пароль к учетной записи 1Password\n%6$d Выберите формат файла: **iCloud Keychain (.csv)**\n%7$d Сохраните файл с паролями там, где вы легко его найдете (например, на рабочем столе)\n%8$d %9$@" } }