diff --git a/DuckDuckGo/Common/Localizables/UserText.swift b/DuckDuckGo/Common/Localizables/UserText.swift index 66e81e8608..5f17e7d9b2 100644 --- a/DuckDuckGo/Common/Localizables/UserText.swift +++ b/DuckDuckGo/Common/Localizables/UserText.swift @@ -147,11 +147,11 @@ struct UserText { static func mainMenuHomeButtonMode(for position: HomeButtonPosition) -> String { switch position { case .hidden: - return NSLocalizedString("Hide", comment: "Main Menu > View > Home Button > None item") + return NSLocalizedString("main.menu.home.button.mode.hide", value: "Hide", comment: "Main Menu > View > Home Button > None item") case .left: - return NSLocalizedString("Show Left of the Back Button", comment: "Main Menu > View > Home Button > left position item") + return NSLocalizedString("main.menu.home.button.mode.left", value: "Show Left of the Back Button", comment: "Main Menu > View > Home Button > left position item") case .right: - return NSLocalizedString("Show Right of the Reload Button", comment: "Main Menu > View > Home Button > right position item") + return NSLocalizedString("main.menu.home.button.mode.right", value: "Show Right of the Reload Button", comment: "Main Menu > View > Home Button > right position item") } } @@ -569,11 +569,11 @@ struct UserText { static func homeButtonMode(for position: HomeButtonPosition) -> String { switch position { case .hidden: - return NSLocalizedString("Hide", comment: "Preferences > Home Button > None item") + return NSLocalizedString("context.menu.home.button.mode.hide", value: "Hide", comment: "Preferences > Home Button > None item") case .left: - return NSLocalizedString("Show left of the back button", comment: "Preferences > Home Button > left position item") + return NSLocalizedString("context.menu.home.button.mode.left", value: "Show left of the back button", comment: "Preferences > Home Button > left position item") case .right: - return NSLocalizedString("Show right of the reload button", comment: "Preferences > Home Button > right position item") + return NSLocalizedString("context.menu.home.button.mode.right", value: "Show right of the reload button", comment: "Preferences > Home Button > right position item") } } diff --git a/DuckDuckGo/Localizable.xcstrings b/DuckDuckGo/Localizable.xcstrings index ce218cd1b2..bcd4fd7fac 100644 --- a/DuckDuckGo/Localizable.xcstrings +++ b/DuckDuckGo/Localizable.xcstrings @@ -10926,6 +10926,186 @@ } } }, + "context.menu.home.button.mode.hide" : { + "comment" : "Preferences > Home Button > None item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ausblenden" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Hide" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Masquer" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nascondi" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verbergen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ukryj" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Скрыть" + } + } + } + }, + "context.menu.home.button.mode.left" : { + "comment" : "Preferences > Home Button > left position item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Links neben der Zurück-Schaltfläche anzeigen" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Show left of the back button" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar a la izquierda del botón Atrás" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher la gauche du bouton de retour" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostra a sinistra del pulsante Indietro" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Links van de 'Terug'-knop weergeven" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pokaż na lewo od przycisku Wstecz" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar à esquerda do botão de retrocesso" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Показывать слева от кнопки «Назад»" + } + } + } + }, + "context.menu.home.button.mode.right" : { + "comment" : "Preferences > Home Button > right position item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechts neben der Schaltfläche „Neu laden“ anzeigen" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Show right of the reload button" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar a la derecha del botón Volver a cargar" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher la droite du bouton de rechargement" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostra a destra del pulsante Ricarica" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechts van de knop 'Opnieuw laden' weergeven" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pokaż na prawo od przycisku ponownego ładowania" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar à direita do botão de recarga" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Показывать справа от кнопки «Перезагрузить»" + } + } + } + }, "copy" : { "comment" : "Copy button", "extractionState" : "extracted_with_value", @@ -24549,361 +24729,715 @@ } } }, - "looking.for.bitwarden" : { - "comment" : "Setup of the integration with Bitwarden app", + "letsmove.alert.message" : { + "comment" : "Message of the alert shown if the app is launched not from the /Applications folder – suggesting to move it there", "extractionState" : "extracted_with_value", "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "Bitwarden nicht installiert …" + "value" : "Die DuckDuckGo-App muss sich im Ordner Anwendungen befinden, damit einige Funktionen richtig funktionieren." } }, "en" : { "stringUnit" : { "state" : "new", - "value" : "Bitwarden not installed…" + "value" : "The DuckDuckGo app needs to be in the Applications folder for some features to work properly." } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Bitwarden no instalado..." + "value" : "La aplicación DuckDuckGo debe estar en la carpeta Aplicaciones para que algunas características funcionen correctamente." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Bitwarden non installée…" + "value" : "L'application DuckDuckGo doit se trouver dans le dossier Applications pour que certaines fonctionnalités marchent correctement." } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Bitwarden non installata…" + "value" : "Affinché alcune funzionalità funzionino correttamente, l'app DuckDuckGo deve essere nella cartella Applicazioni." } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Bitwarden niet geïnstalleerd ..." + "value" : "Sommige functies in de DuckDuckGo-app werken alleen goed als de app in de map 'Applications' staat." } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Nie zainstalowano aplikacji Bitwarden…" + "value" : "Aplikacja DuckDuckGo musi znajdować się w folderze Aplikacje, aby zapewnić prawidłowe działanie określonych funkcji." } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Bitwarden não instalado…" + "value" : "A aplicação DuckDuckGo tem de estar na pasta Aplicações para que algumas funcionalidades funcionem corretamente." } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Приложение Bitwarden не установлено..." + "value" : "Для нормальной работы некоторых функций нужно, чтобы приложение DuckDuckGo находилось в папке «Приложения»." } } } }, - "macOS version" : { - "comment" : "Data import failure Report dialog description of a report field providing user‘s macOS version", + "letsmove.alert.title" : { + "comment" : "Title of the alert shown if the app is launched not from the /Applications folder – suggesting to move it there", + "extractionState" : "extracted_with_value", "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "macOS-Version" + "value" : "Du hast es fast geschafft" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "You‘re almost there" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Versión de macOS" + "value" : "Ya casi estamos." } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Version de macOS" + "value" : "Vous y êtes presque !" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Versione macOS" + "value" : "Ci sei quasi" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "macOS-versie" + "value" : "Je bent er bijna" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Wersja systemu macOS" + "value" : "Prawie gotowe" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Versão do macOS" + "value" : "Estás quase lá" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Версия macOS" + "value" : "Почти готово" } } } }, - "main-menu.app.check-for-updates" : { - "comment" : "Main Menu DuckDuckGo item", + "letsmove.could.not.move" : { + "comment" : "Error message when moving the app to the /Applications folder failed", "extractionState" : "extracted_with_value", "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "Auf Updates prüfen …" + "value" : "Konnte nicht in den Ordner „Anwendungen“ verschoben werden" } }, "en" : { "stringUnit" : { "state" : "new", - "value" : "Check for Updates…" + "value" : "Could not move to Applications folder" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Buscar actualizaciones..." + "value" : "No se ha podido mover a la carpeta Aplicaciones" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Rechercher des mises à jour…" + "value" : "Impossible de déplacer vers le dossier Applications" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Controlla gli aggiornamenti…" + "value" : "Impossibile passare alla cartella Applicazioni" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Controleer op updates ..." + "value" : "Kan de app niet verplaatsen naar de map 'Applications'" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Sprawdź dostępność aktualizacji…" + "value" : "Nie można przenieść do folderu Aplikacje" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Procurar atualizações…" + "value" : "Não foi possível mover para a pasta Aplicações" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Проверить наличие обновлений..." + "value" : "Не удалось перенести DuckDuckGo в папку «Приложения»" } } } }, - "main-menu.app.hide-duck-duck-go" : { - "comment" : "Main Menu DuckDuckGo item", + "letsmove.dont.move.button" : { + "comment" : "Do Not Move to the /Applications folder button title", "extractionState" : "extracted_with_value", "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "DuckDuckGo ausblenden" + "value" : "Nicht bewegen" } }, "en" : { "stringUnit" : { "state" : "new", - "value" : "Hide DuckDuckGo" + "value" : "Do Not Move" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Ocultar DuckDuckGo" + "value" : "No mover" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Masquer DuckDuckGo" + "value" : "Ne pas déplacer" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Nascondi DuckDuckGo" + "value" : "Non spostare" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "DuckDuckGo verbergen" + "value" : "Niet verplaatsen" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Ukryj DuckDuckGo" + "value" : "Nie przenoś" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Ocultar o DuckDuckGo" + "value" : "Não mover" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Скрыть DuckDuckGo" + "value" : "Не переносить" } } } }, - "main-menu.app.hide-others" : { - "comment" : "Main Menu DuckDuckGo item", + "letsmove.move.button" : { + "comment" : "Move the /Applications folder button title", "extractionState" : "extracted_with_value", "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "Andere ausblenden" + "value" : "In den Ordner „Anwendungen“ verschieben" } }, "en" : { "stringUnit" : { "state" : "new", - "value" : "Hide Others" + "value" : "Move to Applications Folder" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Ocultar otros" + "value" : "Mover a la carpeta Aplicaciones" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Masquer les autres" + "value" : "Déplacer vers le dossier Applications" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Nascondi altri" + "value" : "Sposta nella cartella Applicazioni" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Andere verbergen" + "value" : "Verplaatsen naar de map 'Applications'" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Ukryj inne" + "value" : "Przenieś do folderu Aplikacje" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Ocultar outras aplicações" + "value" : "Mover para a pasta Aplicações" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Скрыть остальные" + "value" : "Перенести в папку «Приложения»" } } } }, - "main-menu.app.preferences" : { - "comment" : "Main Menu DuckDuckGo item", - "extractionState" : "extracted_with_value", + "Location:" : { + "comment" : "Add Folder popover: parent folder picker title", + "extractionState" : "stale", "localizations" : { "de" : { "stringUnit" : { "state" : "translated", - "value" : "Einstellungen …" - } - }, - "en" : { - "stringUnit" : { - "state" : "new", - "value" : "Preferences…" + "value" : "Standort:" } }, "es" : { "stringUnit" : { "state" : "translated", - "value" : "Preferencias..." + "value" : "Ubicación:" } }, "fr" : { "stringUnit" : { "state" : "translated", - "value" : "Préférences…" + "value" : "Emplacement :" } }, "it" : { "stringUnit" : { "state" : "translated", - "value" : "Preferenze…" + "value" : "Posizione:" } }, "nl" : { "stringUnit" : { "state" : "translated", - "value" : "Voorkeuren …" + "value" : "Locatie:" } }, "pl" : { "stringUnit" : { "state" : "translated", - "value" : "Preferencje…" + "value" : "Lokalizacja:" } }, "pt" : { "stringUnit" : { "state" : "translated", - "value" : "Preferências…" + "value" : "Localização:" } }, "ru" : { "stringUnit" : { "state" : "translated", - "value" : "Настройки…" + "value" : "Папка:" } } } }, - "main-menu.app.quit-duck-duck-go" : { - "comment" : "Main Menu DuckDuckGo item", + "looking.for.bitwarden" : { + "comment" : "Setup of the integration with Bitwarden app", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitwarden nicht installiert …" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Bitwarden not installed…" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitwarden no instalado..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitwarden non installée…" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitwarden non installata…" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitwarden niet geïnstalleerd ..." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nie zainstalowano aplikacji Bitwarden…" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Bitwarden não instalado…" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Приложение Bitwarden не установлено..." + } + } + } + }, + "macOS version" : { + "comment" : "Data import failure Report dialog description of a report field providing user‘s macOS version", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "macOS-Version" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Versión de macOS" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Version de macOS" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Versione macOS" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "macOS-versie" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Wersja systemu macOS" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Versão do macOS" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Версия macOS" + } + } + } + }, + "main-menu.app.check-for-updates" : { + "comment" : "Main Menu DuckDuckGo item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Auf Updates prüfen …" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Check for Updates…" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Buscar actualizaciones..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechercher des mises à jour…" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Controlla gli aggiornamenti…" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Controleer op updates ..." + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Sprawdź dostępność aktualizacji…" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Procurar atualizações…" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Проверить наличие обновлений..." + } + } + } + }, + "main-menu.app.hide-duck-duck-go" : { + "comment" : "Main Menu DuckDuckGo item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "DuckDuckGo ausblenden" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Hide DuckDuckGo" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar DuckDuckGo" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Masquer DuckDuckGo" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nascondi DuckDuckGo" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "DuckDuckGo verbergen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ukryj DuckDuckGo" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar o DuckDuckGo" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Скрыть DuckDuckGo" + } + } + } + }, + "main-menu.app.hide-others" : { + "comment" : "Main Menu DuckDuckGo item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Andere ausblenden" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Hide Others" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar otros" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Masquer les autres" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nascondi altri" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Andere verbergen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ukryj inne" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar outras aplicações" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Скрыть остальные" + } + } + } + }, + "main-menu.app.preferences" : { + "comment" : "Main Menu DuckDuckGo item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Einstellungen …" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Preferences…" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferencias..." + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Préférences…" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferenze…" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Voorkeuren …" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferencje…" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Preferências…" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Настройки…" + } + } + } + }, + "main-menu.app.quit-duck-duck-go" : { + "comment" : "Main Menu DuckDuckGo item", "extractionState" : "extracted_with_value", "localizations" : { "de" : { @@ -27002,6 +27536,186 @@ } } }, + "main.menu.home.button.mode.hide" : { + "comment" : "Main Menu > View > Home Button > None item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ausblenden" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Hide" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Masquer" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Nascondi" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Verbergen" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ukryj" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ocultar" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Скрыть" + } + } + } + }, + "main.menu.home.button.mode.left" : { + "comment" : "Main Menu > View > Home Button > left position item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Links vom Zurück-Button anzeigen" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Show Left of the Back Button" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar a la izquierda del botón Atrás" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher la gauche du bouton Retour" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostra a sinistra del pulsante Indietro" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Links van de 'Terug'-knop weergeven" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pokaż na lewo od przycisku Wstecz" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar à esquerda do botão Retroceder" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Показывать слева от кнопки «Назад»" + } + } + } + }, + "main.menu.home.button.mode.right" : { + "comment" : "Main Menu > View > Home Button > right position item", + "extractionState" : "extracted_with_value", + "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechts vom Reload-Button anzeigen" + } + }, + "en" : { + "stringUnit" : { + "state" : "new", + "value" : "Show Right of the Reload Button" + } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar a la derecha del botón Volver a cargar" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Afficher la droite du bouton Recharger" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostra a destra del pulsante Ricarica" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Rechts van de knop 'Opnieuw laden' weergeven" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pokaż na prawo od przycisku ponownego ładowania" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Mostrar à direita do botão Recarregar" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Показывать справа от кнопки «Перезагрузить»" + } + } + } + }, "main.menu.show.downloads" : { "comment" : "Show Downloads Popover", "extractionState" : "extracted_with_value", @@ -29426,7 +30140,7 @@ "localizations" : { "de" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "Teile deine Gedanken" } }, @@ -29486,7 +30200,7 @@ "localizations" : { "de" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "Nimm an unserer kurzen Umfrage teil und hilf uns, den besten Browser zu entwickeln." } }, @@ -29546,7 +30260,7 @@ "localizations" : { "de" : { "stringUnit" : { - "state" : "needs_review", + "state" : "translated", "value" : "Sag uns, was dich hierher gebracht hat" } }, @@ -29784,6 +30498,12 @@ "comment" : "Action title of the Day 14 survey of the Set Up section in the home page", "extractionState" : "extracted_with_value", "localizations" : { + "de" : { + "stringUnit" : { + "state" : "translated", + "value" : "Hilf uns, uns zu verbessern" + } + }, "en" : { "stringUnit" : { "state" : "new", @@ -29813,6 +30533,48 @@ "state" : "new", "value" : "Share Your Thoughts With Us" } + }, + "es" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ayúdanos a mejorar" + } + }, + "fr" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aidez-nous à nous améliorer" + } + }, + "it" : { + "stringUnit" : { + "state" : "translated", + "value" : "Aiutaci a migliorare" + } + }, + "nl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Help ons om te verbeteren" + } + }, + "pl" : { + "stringUnit" : { + "state" : "translated", + "value" : "Pomóż nam we wprowadzaniu ulepszeń" + } + }, + "pt" : { + "stringUnit" : { + "state" : "translated", + "value" : "Ajuda-nos a melhorar" + } + }, + "ru" : { + "stringUnit" : { + "state" : "translated", + "value" : "Помогите нам стать лучше" + } } } }, diff --git a/LocalPackages/SyncUI/Sources/SyncUI/Resources/Localizable.xcstrings b/LocalPackages/SyncUI/Sources/SyncUI/Resources/Localizable.xcstrings index f4b5506ac5..a899610e5c 100644 --- a/LocalPackages/SyncUI/Sources/SyncUI/Resources/Localizable.xcstrings +++ b/LocalPackages/SyncUI/Sources/SyncUI/Resources/Localizable.xcstrings @@ -5953,4 +5953,4 @@ } }, "version" : "1.0" -} \ No newline at end of file +} diff --git a/LocalThirdParty/LetsMove1.25/PFMoveApplication.m b/LocalThirdParty/LetsMove1.25/PFMoveApplication.m index 5c650c4f1b..75e8f824a4 100644 --- a/LocalThirdParty/LetsMove1.25/PFMoveApplication.m +++ b/LocalThirdParty/LetsMove1.25/PFMoveApplication.m @@ -23,16 +23,11 @@ + (NSBundle *)bundle { @end // Strings -// These are macros to be able to use custom i18n tools -#define _I10NS(nsstr) NSLocalizedStringFromTableInBundle(nsstr, @"MoveApplication", [LetsMove bundle], nil) -#define kStrMoveApplicationCouldNotMove _I10NS(@"Could not move to Applications folder") -#define kStrMoveApplicationQuestionTitle _I10NS(@"You're almost there") -#define kStrMoveApplicationQuestionTitleHome _I10NS(@"You're almost there") -#define kStrMoveApplicationQuestionMessage _I10NS(@"The DuckDuckGo app needs to be in the Applications folder for some features to work properly.") -#define kStrMoveApplicationButtonMove _I10NS(@"Move to Applications Folder") -#define kStrMoveApplicationButtonDoNotMove _I10NS(@"Do Not Move") -#define kStrMoveApplicationQuestionInfoWillRequirePasswd _I10NS(@"") -#define kStrMoveApplicationQuestionInfoInDownloadsFolder _I10NS(@"") +#define kStrMoveApplicationCouldNotMove NSLocalizedStringWithDefaultValue(@"letsmove.could.not.move", nil, [LetsMove bundle], @"Could not move to Applications folder", @"Error message when moving the app to the /Applications folder failed") +#define kStrMoveApplicationQuestionTitle NSLocalizedStringWithDefaultValue(@"letsmove.alert.title", nil, [LetsMove bundle], @"You‘re almost there", @"Title of the alert shown if the app is launched not from the /Applications folder – suggesting to move it there") +#define kStrMoveApplicationQuestionMessage NSLocalizedStringWithDefaultValue(@"letsmove.alert.message", nil, [LetsMove bundle], @"The DuckDuckGo app needs to be in the Applications folder for some features to work properly.", @"Message of the alert shown if the app is launched not from the /Applications folder – suggesting to move it there") +#define kStrMoveApplicationButtonMove NSLocalizedStringWithDefaultValue(@"letsmove.move.button", nil, [LetsMove bundle], @"Move to Applications Folder", @"Move the /Applications folder button title") +#define kStrMoveApplicationButtonDoNotMove NSLocalizedStringWithDefaultValue(@"letsmove.dont.move.button", nil, [LetsMove bundle], @"Do Not Move", @"Do Not Move to the /Applications folder button title") // Needs to be defined for compiling under 10.5 SDK #ifndef NSAppKitVersionNumber10_5 @@ -51,7 +46,6 @@ + (NSBundle *)bundle { // Helper functions static NSString *PreferredInstallLocation(void); static BOOL IsInApplicationsFolder(NSString *path); -static BOOL IsInDownloadsFolder(NSString *path); static BOOL IsApplicationAtPathRunning(NSString *path); static BOOL IsApplicationAtPathNested(NSString *path); static NSString *ContainingDiskImageDevice(NSString *path); @@ -116,16 +110,6 @@ void PFMoveToApplicationsFolderIfNecessary(BOOL allowAlertSilencing) { informativeText = kStrMoveApplicationQuestionMessage; - if (needAuthorization) { - informativeText = [informativeText stringByAppendingString:@" "]; - informativeText = [informativeText stringByAppendingString:kStrMoveApplicationQuestionInfoWillRequirePasswd]; - } - else if (IsInDownloadsFolder(bundlePath)) { - // Don't mention this stuff if we need authentication. The informative text is long enough as it is in that case. - informativeText = [informativeText stringByAppendingString:@" "]; - informativeText = [informativeText stringByAppendingString:kStrMoveApplicationQuestionInfoInDownloadsFolder]; - } - [alert setInformativeText:informativeText]; // Add accept button @@ -251,15 +235,6 @@ static BOOL IsInApplicationsFolder(NSString *path) { return NO; } -static BOOL IsInDownloadsFolder(NSString *path) { - NSArray *downloadDirs = NSSearchPathForDirectoriesInDomains(NSDownloadsDirectory, NSAllDomainsMask, YES); - for (NSString *downloadsDirPath in downloadDirs) { - if ([path hasPrefix:downloadsDirPath]) return YES; - } - - return NO; -} - static BOOL IsApplicationAtPathRunning(NSString *bundlePath) { bundlePath = [bundlePath stringByStandardizingPath];